De eerste 7 bars van de sessie vormen een opening range, en een long wordt getriggerd wanneer TEMA(5) boven de high daarvan kruist. Shorts vereisen een TEMA-kruising onder de low plus een close onder de close van gisteren. Stop en doel zijn beide gelijk aan de hoogte van de range, en open trades sluiten op de eerste bar van de volgende sessie.
| startingCapital Accountgrootte die voor de sizing wordt gebruikt | 10000 |
| riskFraction Deel van het kapitaal dat per trade wordt geriskeerd | 0.01 |
| sizingStopPoints Aangenomen stop-afstand bij het bepalen van de size, in punten | 10 |
| rangeBars Bars na de eerste bar van de sessie die de opening range vormen | 6 |
| temaPeriod TEMA-lengte voor het breakout-signaal | 5 |
De 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
Nog 32 regels: de instap- en uitstapregels.
Opzet
Vragen
Het is geschreven voor ProOrder, maar het is niet op compileerfouten gecontroleerd of gebacktest. Test het eerst op demo.
Nog geen. Er zijn geen resultaten op deze site.
De code bepaalt de size van trades uit 10000 kapitaal, 1% risico en een sizing-stop van 10 punten. Controleer wat dat betekent voor het instrument dat je handelt, want de werkelijke stop is de hoogte van de range.
De range wordt opgebouwd uit bars, dus het tijdframe bepaalt de lengte ervan. Een snellere grafiek geeft een korter openingsvenster, een langzamere een bredere range met grotere stops.
Gerelateerd
De ProRealAlgos community krijgt de volledige regels, de complete code en de geautomatiseerde portefeuille.