Les 7 premiers bars de la séance forment une plage d'ouverture, et un long se déclenche quand TEMA(5) croise au-dessus de son plus haut. Les shorts exigent un croisement du TEMA sous le plus bas plus une clôture sous la clôture d'hier. Le stop et l'objectif sont tous deux égaux à la hauteur de la plage, et les trades ouverts sont fermés au premier bar de la séance suivante.
| startingCapital Taille du compte utilisée pour le dimensionnement | 10000 |
| riskFraction Part du capital risquée par trade | 0.01 |
| sizingStopPoints Distance de stop supposée lors du dimensionnement, en points | 10 |
| rangeBars Bars après le premier bar de la séance qui construisent la plage d'ouverture | 6 |
| temaPeriod Longueur du TEMA pour le signal de breakout | 5 |
Le code
// ============================================================ // 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
32 lignes de plus : les règles d'entrée et de sortie.
Configuration
Questions
Elle est écrite pour ProOrder, mais elle n'a pas été vérifiée à la compilation ni backtestée. Testez-la d'abord en démo.
Aucun pour l'instant. Il n'y a pas de résultats sur ce site.
Le code dimensionne les trades à partir d'un capital de 10000, d'un risque de 1% et d'un stop de dimensionnement de 10 points. Vérifiez ce que cela implique pour l'instrument que vous tradez, car le stop réel est la hauteur de la plage.
La plage est construite à partir de bars, donc l'unité de temps détermine sa longueur. Un graphique plus rapide donne une fenêtre d'ouverture plus courte, un plus lent une plage plus large avec des stops plus grands.
Voir aussi
La communauté ProRealAlgos obtient les règles complètes, le code complet et le portefeuille automatisé.