Aiuto strategia
Forums › ProRealTime forum Italiano › Supporto ProOrder › Aiuto strategia
- This topic has 13 replies, 3 voices, and was last updated 7 years ago by R05.
-
-
09/24/2017 at 3:29 PM #47145
Buon pomeriggio, stavo facendo delle prove, partendo da una strategia, e ho ricavato il seguente codice. Vi allego anche il backtest su time frame orario (niente male da inizio anno).
Questa strategia va solo long alle 9 per chiudere in positivo alle 22 o in negativo con 30 euro di passivo.
La domanda è: come mai va solo long? Per andare anche short come faccio?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051DEFPARAM FLATAFTER=215500 // replace closetime conditionRangeMultiplier=0.1BegTime=090000EndTime=105500MyContracts=1if intradaybarindex=0 thenmaxSetup = 0minSetup = 0tradethisday=0elseif barindex=tradeindex thentradethisday=1endifendif//individuo maz e minimo prima oraif time = 090500 thenmaxprimaora=Highminprimaora=Lowendifif time > 090000 and time <= 090500 thenif High > maxprimaora thenmaxprimaora = Highendifif Low < minprimaora thenminprimaora = LowendifendifIf Time >= BegTime and Time <= EndTime and tradethisday=0 thenif maxSetup=0 thenmaxSetup = maxprimaora + RangeMultiplier * (dhigh(1) - dlow(1))slshort=minprimaoraendifif minsetup=0 thenminSetup = minprimaora - RangeMultiplier * (dhigh(1) - dlow(1))sllong = maxprimaoraendifBuy mycontracts contract at maxSetup stopSell at slshort stopSellShort mycontracts contract at minSetup stopExitShort at sllong stopendifset stop ploss 3009/27/2017 at 4:03 PM #4755109/28/2017 at 8:53 AM #4760409/28/2017 at 9:24 AM #47606L’ho provato su DAX ed EUR/USD con TF 5 minuti ed il codice funziona benissimo sia Short che Long.
09/28/2017 at 9:50 AM #4761809/28/2017 at 10:12 AM #47622Aggiungendo le istruzioni indicate da Nicolas potrai vedere i valori delle variabili e renderti conto dove può essere l’errore.
Ad ogni modo è una strategia fatta per TF di 5 minuti (o 1 minuto), non per 1 ora!
Andrebbe riscritta dall’inizio, magari ci posso provare, ma devi indicarmi sul quale TF la vuoi usare e su quale strumento e dirmi le condizioni per entrare LONG e SHORT.
09/28/2017 at 10:55 AM #47631Ti ringrazio tanto Roberto, il fatto è che avevo preso una strategia, che è quella postata, e mi stavo dilettando a cambiare dei valori, e nel fare un backtest mi è uscito uno veramente interessante ma andava solo long, sicuramente dopo la barra della prima ora.
Comunque, in generale stavo studiando delle strategie di breakout della prima ora delle 8, solo che oltre a prendere il primo breakout si può prendere anche il secondo, non solo ma vorrei vedere anche se evitando di prendere il primo breakout si prende solo il secondo e vedere come va.
Mi spiego meglio:
- se il prezzo rompe il minimo è il primo breakout (e viceversa); il secondo breakout è quello che va dal lato long e quindi quello che cerca di rompere il massimo non quello che prova a rompere nuovamente il minimo.
Ti ringrazio come sempre.
09/28/2017 at 11:20 AM #4763609/28/2017 at 4:16 PM #47693Prova questa strategia, su DAX, TF h1:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849// Definition of code parametersDEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 210000DEFPARAM PreLoadBars = 2000// initialization of variablesONCE nLots = 1ONCE TradingON = 0ONCE MaxPrice = 0ONCE MinPrice = 0ONCE BreakMax = 0ONCE BreakMin = 0ONCE BreakOutTime = 090000ONCE BeginTrading = 090000ONCE StopTrading = 130000// check the correct time to tradeIF time >= BeginTrading AND time <= StopTrading THENTradingON = 1 //enable Trading when within desired timeELSETradingON = 0 //reset variables when outside trading timeMaxPrice = 0MinPrice = 0ENDIF// at BreakOut Time store LOW & HIGH for later use on BreakOutIF time = BreakOutTime THENMaxPrice = highMinPrice = lowBreakMax = 0BreakMin = 0ENDIF// LONGa = close > MaxPriceIF BreakMax = 0 THENBreakMax = a //Set FIRST BreakOut (long)ENDIFIF a AND BreakMin AND TradingON THEN //Trade at Trading Time and when FIRST BO already occurredBUY nLots CONTRACT AT MARKETENDIF// SHORTb = close < MinPriceIF BreakMin = 0 THENBreakMin = b //Set FIRST BreakOut (short)ENDIFIF b AND BreakMax AND TradingON THEN //Trade at Trading Time and when FIRST BO already occurredSELLSHORT nLots CONTRACT AT MARKETENDIF// Target Profit & Stop LossSET target pprofit 80 //80SET STOP pLOSS 30 //30l’ho provata poco, verifica bene che entri solo al secondo Break Out.
09/28/2017 at 8:49 PM #4772909/29/2017 at 3:16 PM #47824Ho verificato le ultime due operazioni ed entra effettivamente solo al SECONDO breakout.
Per quanto riguarda il prezzo è chiaro che dopo il breakout la candela, che dura un’ora, può avere fatto anche diversi Pips, ma il trigger c’è stato. Per questo inconveniente occorre utilizzare TF inferiori, oppure piazzare ordini pendenti.
Vedo se riesco a farcela adesso a convertire la strategia con ordini pendenti.
09/29/2017 at 3:24 PM #4782509/29/2017 at 3:42 PM #47829Questa è una versione modificata per entrare con ordini pendenti, però è veramente poco performante. Il problema è che entra alla rottura dei Minimi/Massimi anche in corso di candela, però capita sovente che alla chiusura il prezzo abbia ritracciato e sia tornato sotto/sopra i Massimi/Minimi, ma a quel punto l’operazione è in corso e deve terminare, probabilmente in stop loss.
Quindi ha il vantaggio di non perdere Pips in entrata, ma ha quello che la candela NON è chiusa ed il prezzo non è detto vada davvero in quella direzione!
Secondo me la soluzione migliore è la prima, magari provando ad abbassare il TF.
Buon trading e buon fine settimana!
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061// Definition of code parametersDEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 210000DEFPARAM PreLoadBars = 2000// initialization of variablesONCE nLots = 1ONCE TradingON = 0ONCE MaxPrice = 0ONCE MinPrice = 0ONCE BreakMax = 0ONCE BreakMin = 0ONCE BreakOutTime = 090000ONCE BeginTrading = 090000ONCE StopTrading = 130000// check the correct time to tradeIF time >= BeginTrading AND time <= StopTrading THENTradingON = 1 //enable Trading when within desired timeELSETradingON = 0 //reset variables when outside trading timeMaxPrice = 0MinPrice = 0BreakMax = 0BreakMin = 0ENDIF// at BreakOut Time store LOW & HIGH for later use on BreakOutIF time = BreakOutTime THENMaxPrice = highMinPrice = lowBreakMax = 0BreakMin = 0ENDIF//IF OnMarket THENTradingON = 0 //reset variables after any tradeMaxPrice = 0MinPrice = 0BreakMax = 0BreakMin = 0ENDIF// LONGa = close > MaxPriceIF BreakMax = 0 THENBreakMax = a //Set FIRST BreakOut (long)ENDIFIF BreakMin AND TradingON THEN //Trade at Trading Time and when FIRST BO already occurredBUY nLots CONTRACT AT MaxPrice STOPENDIF// SHORTb = close < MinPriceIF BreakMin = 0 THENBreakMin = b //Set FIRST BreakOut (short)ENDIFIF BreakMax AND TradingON THEN //Trade at Trading Time and when FIRST BO already occurredSELLSHORT nLots CONTRACT AT MinPrice STOPENDIF// Target Profit & Stop LossSET target pprofit 95 //95SET STOP pLOSS 145 //145//GRAPH MaxPrice//GRAPH MinPrice09/29/2017 at 3:47 PM #47830 -
AuthorPosts
Find exclusive trading pro-tools on