80% Profitable (34 mila barre 1M - TP fisso 400€ - SL 600€)

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • CIVT
    Senior Member
    • Dec 2009
    • 813

    #31
    Originariamente Scritto da Smash
    Innanzi tutto, grazie mille per il grandissimo !!!

    Non ho capito se vorresti scrivere il trading system su Fiuto Pro in modo tale da mandare tutto in automatico ... il che però non è proprio così semplice!
    Altrimenti le funzioni evolute di hedging presenti in FiutoPro si possono attivare e disattivare anche a mano.
    Immagino che non sia semplice riscrivere le stesse condizioni in linguaggio script ma quello è il mio obbiettivo anche perchè vorrei iniziare a prendere un pò di confidenza con la mia bestia nera ovvero il linguaggio basic..... lo script è al momento l\'unica soluzione percorribile per replicare fedelmente il TS in FiutoPro perchè provando ad utilizzare il Workflow trovo evidenti limiti che potenzialmente possono compromettere il TS, penso ad esempio all\'impossibilità di eseguire il check sul numero di barre esterne al trigger, su bT questo lo verifico facilmente con un semplice COUNTIF mentre in FiutoPro dovrei utilizzare una media mobile che replica questa condizione.....un\'altro grosso limite è che dopo aver scritto 4 condizioni non riesco ad aggiungerne di nuove perchè manca la barra di scorrimento verticale, questa cosa l\'avevo segnalata ad Andrea ma poi è nata/o beetrader e le attenzioni si sono spostate sul nuovo nato....inizio ad essere geloso!!!

    Andrea/Max/Tiziano o altri che "Workflowano" avete in mente come poter aggirare questo ostacolo?
    Click image for larger version

Name:	FUORISCALA.JPG
Views:	1
Size:	70.4 KB
ID:	150338

    Comment

    • CIVT
      Senior Member
      • Dec 2009
      • 813

      #32
      2nd trade forward test

      E alla fine aveva ragione lui a rientrare ieri sera! Il secondo trade in forward test è andato a segno subito questa mattina con un DrawDown massimo di 20€

      Click image for larger version

Name:	2ndTrade.jpg
Views:	1
Size:	104.5 KB
ID:	150340

      Comment

      • Smash
        Senior Member

        • Feb 2012
        • 351

        #33
        Originariamente Scritto da CIVT
        Immagino che non sia semplice riscrivere le stesse condizioni in linguaggio script ma quello è il mio obbiettivo anche perchè vorrei iniziare a prendere un pò di confidenza con la mia bestia nera ovvero il linguaggio basic..... lo script è al momento l\'unica soluzione percorribile per replicare fedelmente il TS in FiutoPro perchè provando ad utilizzare il Workflow trovo evidenti limiti che potenzialmente possono compromettere il TS, penso ad esempio all\'impossibilità di eseguire il check sul numero di barre esterne al trigger, su bT questo lo verifico facilmente con un semplice COUNTIF mentre in FiutoPro dovrei utilizzare una media mobile che replica questa condizione.....un\'altro grosso limite è che dopo aver scritto 4 condizioni non riesco ad aggiungerne di nuove perchè manca la barra di scorrimento verticale, questa cosa l\'avevo segnalata ad Andrea ma poi è nata/o beetrader e le attenzioni si sono spostate sul nuovo nato....inizio ad essere geloso!!!

        Andrea/Max/Tiziano o altri che "Workflowano" avete in mente come poter aggirare questo ostacolo?
        [ATTACH=CONFIG]14088[/ATTACH]

        Con lo script però hai una difficoltà in più, che va oltre la semplice programmazione in Basic:
        tutte le volte che vorresti usare nello script un singolo indicatore, dovresti prima eseguire la procedura che è stata spiegata qui

        Questa discussione è dedicata alla pubblicazione di semplici scripts di esempio realizzati dagli utenti.


        Dovresti poi ripetere la procedura per ogni indicatore che intendi usare; infine dovresti verificare di non aver commesso errori.

        Fatto tutto questo, allora potresti passare alla programmazione dello script!

        Comment

        • Smash
          Senior Member

          • Feb 2012
          • 351

          #34
          Originariamente Scritto da CIVT
          Grazie Denis! Vedo che sei sempre sul pezzo!

          Incollo anche il codice per chi vuole discutere eventuali modifiche

          BUY SCRIPT
          Codice:
          # REQUIRED_BARS is used to adjust how many periods will be used to initialize calculations. Default value is 50 periods.
          # Un-comment and edit the line below to set your own value.
          # SET REQUIRED_BARS = 50
          
          INPUTS: @price(CLOSE), @fastPeriods(100), @slowPeriods(350), @matype(SIMPLE), @exitTemp(2500), @Amp(28), @entryBars(9)
          INPUTS: @MaxStd(30), @LRSignalExit(600), @LRexitBars(10) @SlopeEntryPeriod(100), @SlopeExitPeriod(600), @STDperiods(60)
          INPUTS: @STOP(600), @TAKE(200)
          
          SET STOP_LOSS = @STOP
          SET TAKE_PROFIT = @TAKE
          
          SET REQUIRED_BARS = 600
          
          SET fast = MovingAverage(@price, @fastPeriods, @matype)
          SET slow = MovingAverage(@price, @slowPeriods, @matype)
          
          SET STD = StandardDeviations(@price, @STDperiods, 1, @matype)
          SET StdMod = IF(STD > @MaxStd, 10, STD)
          
          SET TodayUP = TODAYOPEN() + @Amp + StdMod
          SET TodayDown = TODAYOPEN() - @Amp - StdMod
          
          SET LrSlope = LinearRegressionSlope(CLOSE, @SlopeEntryPeriod)
          SET SlopeExit = LinearRegressionSlope(CLOSE, @SlopeExitPeriod)
          
          SET CrossUP =  CROSSOVER(CLOSE, TodayUP)
          SET ContCrossUP = LASTIF(CrossUP)
          
          SET BUY = ContCrossUP = @entryBars AND CLOSE > TodayUP AND fast > slow AND REF(LrSlope, 1) < LrSlope
          # AND TIME > 200 AND TIME < 1030
          
          BUY

          SELL SCRIPT
          Codice:
          SET fast = MovingAverage(@price, @fastPeriods, @matype)
          SET slow = MovingAverage(@price, @slowPeriods, @matype)
          
          SET STD = StandardDeviations(@price, @STDperiods, 1, @matype)
          SET StdMod = IF(STD > @MaxStd, 10, STD)
          
          SET TodayUP = TODAYOPEN() + @Amp + StdMod
          SET TodayDown = TODAYOPEN() - @Amp - StdMod
          
          SET LrSlope = LinearRegressionSlope(CLOSE, @SlopeEntryPeriod)
          SET SlopeExit = LinearRegressionSlope(CLOSE, @SlopeExitPeriod)
          
          SET CrossDown =  CROSSOVER(TodayDown, CLOSE)
          SET ContCrossDown = LASTIF(CrossDown)
          
          SET SELL = ContCrossDown = @entryBars AND CLOSE < TodayDown AND slow > fast AND REF(LrSlope, 1) > LrSlope
          # AND TIME > 200 AND TIME < 1030
          SELL

          EXIT BUY
          Codice:
          SET fast = MovingAverage(@price, @fastPeriods, @matype)
          SET slow = MovingAverage(@price, @slowPeriods, @matype)
          
          SET STD = StandardDeviations(@price, @STDperiods, 1, @matype)
          SET StdMod = IF(STD > @MaxStd, 10, STD)
          
          SET TodayUP = TODAYOPEN() + @Amp + StdMod
          SET TodayDown = TODAYOPEN() - @Amp - StdMod
          
          SET LrSlope = LinearRegressionSlope(CLOSE, @SlopeEntryPeriod)
          SET SlopeExit = LinearRegressionSlope(CLOSE, @SlopeExitPeriod)
          
          SET CrossUP =  CROSSOVER(CLOSE, TodayUP)
          SET ContCrossUP = LASTIF(CrossUP)
          
          SET BUY = ContCrossUP > @entryBars AND CLOSE > TodayUP AND fast > slow AND REF(LrSlope, 1) < LrSlope
          # AND TIME > 200 AND TIME < 1030
          SET ContaBUY = LASTIF(BUY)
          
          
          SET SignalLine = LR(CLOSE, @LRSignalExit)
          # Usiamo il LASTIF che misura il numero di barre da quando la SignalLine è verde
          SET barre = LASTIF(SignalLine > REF(SignalLine, 1))
          # barre > 3 significa che le ultime 2 barre la SignalLine e\' stata verde ed anche
          # la Slope della SignalLine corrente è negativa
          SET ExitLong = barre = @LRexitBars AND SlopeExit < 0
          
          ContaBUY > @exitTemp AND ExitLong
          EXIT SHORT
          Codice:
          SET fast = MovingAverage(@price, @fastPeriods, @matype)
          SET slow = MovingAverage(@price, @slowPeriods, @matype)
          
          SET STD = StandardDeviations(@price, @STDperiods, 1, @matype)
          SET StdMod = IF(STD > @MaxStd, 10, STD)
          
          SET TodayUP = TODAYOPEN() + @Amp + StdMod
          SET TodayDown = TODAYOPEN() - @Amp - StdMod
          
          SET LrSlope = LinearRegressionSlope(CLOSE, @SlopeEntryPeriod)
          SET SlopeExit = LinearRegressionSlope(CLOSE, @SlopeExitPeriod)
          
          SET CrossDown =  CROSSOVER(TodayDown, CLOSE)
          SET ContCrossDown = LASTIF(CrossDown)
          
          SET SELL = ContCrossDown = @entryBars AND CLOSE < TodayDown AND slow > fast AND REF(LrSlope, 1) > LrSlope
          # AND TIME > 200 AND TIME < 1030
          
          SET ContaSELL = LASTIF(SELL)
          
          SET SignalLine = LR(CLOSE, @LRSignalExit)
          # Usiamo il LASTIF che misura il numero di barre da quando la SignalLine è verde
          SET barre = LASTIF(SignalLine < REF(SignalLine, 1))
          # barre > 3 significa che le ultime 2 barre la SignalLine e\' stata verde ed anche
          # la Slope della SignalLine corrente è negativa
          SET ExitShort = barre > @LRexitBars AND SlopeExit > 0
          ContaSELL > @exitTemp AND ExitShort

          Ciao CIVT,

          approfittando di un po\' tempo libero, mi sono divertito ad analizzare il tuo TS.

          Volevo chiederti: nell\'ExitLong Script non dovrebbero esserci

          Codice:
          SET BUY = ContCrossUP = @entryBars AND CLOSE > TodayUP AND fast > slow AND REF(LrSlope, 1) < LrSlope
          e

          Codice:
          SET ExitLong = barre > @LRexitBars AND SlopeExit < 0
          anche per uniformità con l\'ExitShort Script?

          Comment

          • CIVT
            Senior Member
            • Dec 2009
            • 813

            #35
            Originariamente Scritto da Smash
            Ciao CIVT,

            approfittando di un po\' tempo libero, mi sono divertito ad analizzare il tuo TS.

            Volevo chiederti: nell\'ExitLong Script non dovrebbero esserci

            Codice:
            SET BUY = ContCrossUP = @entryBars AND CLOSE > TodayUP AND fast > slow AND REF(LrSlope, 1) < LrSlope
            e

            Codice:
            SET ExitLong = barre > @LRexitBars AND SlopeExit < 0
            anche per uniformità con l\'ExitShort Script?
            Hai ragione Smash! E\' un mio refuso, le condizioni che hai postato sono giustissime (ora modifico il post iniziale) il conteggio temporale per lavorare correttamente deve prendere come riferimento l\'intera condizione di entrata BUY/SELL che va quindi ricopiata pari pari nella condizione di uscita.

            Appofitto di questo intervento per riflettere sui limiti di questa funzione perchè come avrai notato il conteggio delle barre non tiene conto del sabato e domenica perchè non sono presenti nello storico, sarebbe quindi interessante sostituire questa funzione con qualcosa di meno aleatorio ma al momento non mi viene in mente nulla, hai qualche suggerimento in merito? Stò provando a fare qualcosa con la funzione DATE ma fatico a legarla alla condizione di setup BUY/SELL...

            Comment

            • Smash
              Senior Member

              • Feb 2012
              • 351

              #36
              Originariamente Scritto da CIVT
              Appofitto di questo intervento per riflettere sui limiti di questa funzione perchè come avrai notato il conteggio delle barre non tiene conto del sabato e domenica perchè non sono presenti nello storico, sarebbe quindi interessante sostituire questa funzione con qualcosa di meno aleatorio ma al momento non mi viene in mente nulla, hai qualche suggerimento in merito? Stò provando a fare qualcosa con la funzione DATE ma fatico a legarla alla condizione di setup BUY/SELL...
              Non capisco ... perchè vorresti inserire anche il sabato e la domenica nel conteggio?

              Comment

              • CIVT
                Senior Member
                • Dec 2009
                • 813

                #37
                Originariamente Scritto da Smash
                Non capisco ... perchè vorresti inserire anche il sabato e la domenica nel conteggio?
                Perchè se pensiamo di utilizzare i segnali del TS per creare strategie in opzioni è necessario considerare tutti i giorni di calendario per evitare che il decadimento temporale comprometta l\'uscita in guadagno di un\'eventuale opzione comperata, inoltre con data feed Barchart vedo che il numero delle barre non viene mantenuto costante per tutto il periodo considerato, se mi sposto indietro nel tempo le barre tendono a ridursi.

                Se osservi lo screen qui sotto si contano 277 barre in 6 giorni contro 295 per il giorno del 3 Dicembre!
                Click image for larger version

Name:	barre.jpg
Views:	1
Size:	152.0 KB
ID:	150364
                Last edited by CIVT; 17-02-14, 11:44.

                Comment

                • Smash
                  Senior Member

                  • Feb 2012
                  • 351

                  #38
                  Originariamente Scritto da CIVT
                  Perchè se pensiamo di utilizzare i segnali del TS per creare strategie in opzioni è necessario considerare tutti i giorni di calendario per evitare che il decadimento temporale comprometta l\'uscita in guadagno di un\'eventuale opzione comperata, inoltre con data feed Barchart vedo che il numero delle barre non viene mantenuto costante per tutto il periodo considerato, se mi sposto indietro nel tempo le barre tendono a ridursi.

                  Se osservi lo screen qui sotto si contano 277 barre in 6 giorni contro 295 per il giorno del 3 Dicembre!
                  [ATTACH=CONFIG]14127[/ATTACH]

                  Il problema dei vuoti negli storici quando la scadenza del future è lontana si fa sentire tanto di più quanto più diminuisci il time frame.

                  Dato che mi sembra che il data feed Barchart ti permetta di richiedere gli storici anche dei future già scaduti, allora probabilmente potresti ovviare al problema in questo modo:

                  - crei un nuovo grafico, ad esempio per il future Eurostoxx 50, partendo ad esempio con quello avente simbolo FXH10
                  (scadenza marzo 2010)
                  - dopodichè modifichi via via il simbolo (FXH10, FXM10, FXU10, FXZ10, FXH11, FXM11, FXU11, FXZ11, FXH12, .......)
                  e richiedi ogni volta per il grafico all\'incirca 3 mesi di storico, quanto serve per passare da una scadenza alla successiva.

                  In questo modo beeTrader dovrebbe accodare i dati nuovi a quelli già richiesti in precedenza, e alla fine dovresti avere uno storico che ha l\'unico difetto di poter avere dei salti di prezzo in corrispondenza dei passaggi da una scadenza del future alla successiva.

                  Andrebbe provato .... !

                  Comment

                  • Smash
                    Senior Member

                    • Feb 2012
                    • 351

                    #39
                    Originariamente Scritto da CIVT
                    Appofitto di questo intervento per riflettere sui limiti di questa funzione perchè come avrai notato il conteggio delle barre non tiene conto del sabato e domenica perchè non sono presenti nello storico, sarebbe quindi interessante sostituire questa funzione con qualcosa di meno aleatorio ma al momento non mi viene in mente nulla, hai qualche suggerimento in merito? Stò provando a fare qualcosa con la funzione DATE ma fatico a legarla alla condizione di setup BUY/SELL...

                    I valori dei vettori che hai chiamato BUY e SELL valgono 1 quando si verifica la condizione, altrimenti mentre valgono sempre zero.
                    Se moltiplichi questi vettori per i vettori DATE e TIME e poi utilizzi la funzione CHANGEIF andresti a creare dei vettori che memorizzano la data e l\'ora in cui c\'è stato il segnale di BUY o di SELL.
                    Sottraendoli ai DATE e TIME attuali potresti calcolare quanto tempo è trascorso .......

                    Comment

                    • CIVT
                      Senior Member
                      • Dec 2009
                      • 813

                      #40
                      Originariamente Scritto da Smash
                      I valori dei vettori che hai chiamato BUY e SELL valgono 1 quando si verifica la condizione, altrimenti mentre valgono sempre zero.
                      Se moltiplichi questi vettori per i vettori DATE e TIME e poi utilizzi la funzione CHANGEIF andresti a creare dei vettori che memorizzano la data e l\'ora in cui c\'è stato il segnale di BUY o di SELL.
                      Sottraendoli ai DATE e TIME attuali potresti calcolare quanto tempo è trascorso .......
                      Smash ma sei un piccolo genio!!! Appena ho due minuti provo entrame le tue proposte!!! GRAZIE

                      Comment

                      Working...