Sessionens första 7 barer bildar ett opening range, och en long triggas när TEMA(5) korsar över dess högsta. Shorts kräver en TEMA-korsning under det lägsta plus en stängning under gårdagens stängning. Stopp och mål är båda lika med intervallets höjd, och öppna affärer stängs på nästa sessions första bar.
| startingCapital Kontostorlek som används för storleksberäkning | 10000 |
| riskFraction Andel av kapitalet som riskeras per affär | 0.01 |
| sizingStopPoints Antaget stoppavstånd vid storleksberäkning, i punkter | 10 |
| rangeBars Barer efter sessionens första bar som bygger upp opening range | 6 |
| temaPeriod TEMA-längd för breakout-signalen | 5 |
Koden
// ============================================================ // 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 rader till: entry- och exitreglerna.
Uppsättning
Frågor
Den är skriven för ProOrder, men den har inte kompileringskontrollerats eller backtestats. Testa den på demo först.
Inga ännu. Det finns inga resultat på den här sidan.
Koden storleksbestämmer affärer utifrån 10000 i kapital, 1% risk och ett stopp på 10 punkter för storleksberäkningen. Kontrollera vad det innebär för instrumentet du handlar, eftersom det faktiska stoppet är intervallets höjd.
Intervallet byggs av barer, så tidsramen sätter dess längd. Ett snabbare diagram ger ett kortare öppningsfönster, ett långsammare ett bredare intervall med större stopp.
Relaterat
ProRealAlgos-communityn får de fullständiga reglerna, den kompletta koden och den automatiserade portföljen.