Le prime 7 barre della sessione formano un opening range, e un long si attiva quando TEMA(5) incrocia al rialzo il suo massimo. Gli short richiedono un incrocio della TEMA sotto il minimo più una chiusura sotto la chiusura di ieri. Stop e target sono entrambi pari all'altezza del range, e le operazioni aperte si chiudono alla prima barra della sessione successiva.
| startingCapital Dimensione del conto usata per il sizing | 10000 |
| riskFraction Quota di capitale rischiata per operazione | 0.01 |
| sizingStopPoints Distanza dello stop assunta nel dimensionamento, in punti | 10 |
| rangeBars Barre dopo la prima barra della sessione che formano l'opening range | 6 |
| temaPeriod Lunghezza della TEMA per il segnale di breakout | 5 |
Il codice
// ============================================================ // Opening Range Breakout TEMA // ProRealAlgos Strategy Library | prorealalgos.com // Type: Breakout // Direction: Long & short // Timeframe tested: Not yet tested // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false DEFPARAM PreloadBars = 1000 // --- Parameters --- startingCapital = 10000 // account size used for sizing riskFraction = 0.01 // share of capital risked per trade sizingStopPoints = 10 // stop distance assumed when sizing, in points rangeBars = 6 // bars after the session's first bar that build the opening range temaPeriod = 5 // TEMA length for the breakout signal ONCE dayBar = 0 ONCE longTrades = 0 ONCE shortTrades = 0 // --- Indicators --- // Size is fixed once on the first bar from capital, risk and the sizing stop. ONCE equity = startingCapital + StrategyProfit ONCE maxRisk = round(equity * riskFraction) ONCE positionSize = abs(round((maxRisk / sizingStopPoints) / PointValue) * PipSize) // Bar counter within the session, 0 on the first bar of a new day. IF Day <> Day[1] THEN dayBar = 0 ELSE dayBar = dayBar + 1 ENDIF temaValue = TEMA[temaPeriod](close) prevDayClose = DClose(1) // Opening range, plus a stop and target equal to its height. IF dayBar <= rangeBars THEN IF dayBar = 0 THEN rangeHigh = high rangeLow = low ENDIF IF high > rangeHigh THEN rangeHigh = high ENDIF IF low < rangeLow THEN rangeLow = low ENDIF stopDistance = rangeHigh - rangeLow targetDistance = stopDistance longTrades = 0 shortTrades = 0 ENDIF
Altre 32 righe: le regole di ingresso e di uscita.
Configurazione
Domande
È scritta per ProOrder, ma non è stata verificata in compilazione né testata in backtest. Testala prima su demo.
Nessuna per ora. Non ci sono risultati su questo sito.
Il codice dimensiona le operazioni da 10000 di capitale, 1% di rischio e uno stop di dimensionamento di 10 punti. Verifica cosa significa per lo strumento che operi, poiché lo stop effettivo è l'altezza del range.
Il range è costruito dalle barre, quindi il timeframe ne determina la lunghezza. Un grafico più rapido dà una finestra di apertura più breve, uno più lento un range più ampio con stop più grandi.
Correlati
La community ProRealAlgos ottiene le regole complete, il codice completo e il portafoglio automatizzato.