Die ersten 7 Bars der Session bilden eine Opening Range, und ein Long wird ausgelöst, wenn TEMA(5) über deren Hoch kreuzt. Shorts benötigen eine TEMA-Kreuzung unter das Tief sowie einen Schlusskurs unter dem Schlusskurs von gestern. Stop und Ziel entsprechen beide der Höhe der Range, und offene Trades werden auf dem ersten Bar der nächsten Session geschlossen.
| startingCapital Für die Größenberechnung verwendete Kontogröße | 10000 |
| riskFraction Anteil des pro Trade riskierten Kapitals | 0.01 |
| sizingStopPoints Beim Sizing angenommener Stop-Abstand, in Punkten | 10 |
| rangeBars Bars nach dem ersten Bar der Session, die die Opening Range bilden | 6 |
| temaPeriod TEMA-Länge für das Breakout Signal | 5 |
Der 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 weitere Zeilen: die Einstiegs- und Ausstiegsregeln.
Setup
Fragen
Es ist für ProOrder geschrieben, wurde aber keiner Compile-Prüfung unterzogen und nicht gebacktestet. Testen Sie es zuerst auf Demo.
Noch keine. Es gibt keine Ergebnisse auf dieser Website.
Der Code dimensioniert Trades aus 10000 Kapital, 1% Risiko und einem 10-Punkte-Sizing-Stop. Prüfen Sie, was das für das von Ihnen gehandelte Instrument bedeutet, da der tatsächliche Stop die Höhe der Range ist.
Die Range wird aus Bars gebildet, daher bestimmt die Zeiteinheit ihre Länge. Ein schnellerer Chart ergibt ein kürzeres Eröffnungsfenster, ein langsamerer eine weitere Range mit größeren Stops.
Verwandt
Die ProRealAlgos Community erhält die vollständigen Regeln, den kompletten Code und das automatisierte Portfolio.