Når 15-bars kanalen er mer enn 60 poeng bred, legger strategien inn en buy stop en fjerdedel opp fra kanalbunnen, forutsatt at MACD-histogrammet stiger. Målet er kanalens midtpunkt og stoppen er kanalbunnen. Den tar maksimalt én handel per dag og er ikke backtestet ennå.
| positionSize Basiskontrakter per handel | 3 |
| channelPeriod Lengde på Donchian-kanalen | 15 |
| minChannelWidth Kanalen må være minst så mange poeng bred | 60 |
| quadrantDivisor Inngangslinjen ligger en fjerdedel opp fra kanalbunnen | 4 |
| targetDivisor Målet ligger på 1/targetDivisor av kanalen (2 = midtpunktet) | 2 |
| lossMultiplier Multiplikator for ordrestørrelse etter en tapende handel | 2.5 |
| winDivisor Divisor for ordrestørrelse etter en vinnende handel | 1.5 |
| macdFast MACD rask lengde | 12 |
| macdSlow MACD langsom lengde | 26 |
| macdSignalPeriod MACD signallengde | 9 |
Koden
// ============================================================ // Quadrant Channel // ProRealAlgos Strategy Library | prorealalgos.com // Type: Breakout // Direction: Long only // Timeframe tested: Not yet tested // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false DEFPARAM PreloadBars = 50000 // --- Parameters --- positionSize = 3 // base contracts per trade channelPeriod = 15 // Donchian channel length minChannelWidth = 60 // channel must be at least this many points wide quadrantDivisor = 4 // entry line sits one quarter up from the channel bottom targetDivisor = 2 // target sits at 1/targetDivisor of the channel (2 = midpoint) lossMultiplier = 2.5 // order size multiplier after a losing trade winDivisor = 1.5 // order size divisor after a winning trade macdFast = 12 // MACD fast length macdSlow = 26 // MACD slow length macdSignalPeriod = 9 // MACD signal length // --- Indicators --- // Size cap as in the original: two losses in a row on top of the base size. maxOrderSize = lossMultiplier * lossMultiplier * positionSize + positionSize ONCE orderSize = positionSize ONCE bestProfit = 0 ONCE entryBlocked = 0 newDay = 0 IF Date <> Date[1] THEN newDay = 1 ENDIF // Daily reset: back to base size only when equity is at a new high. IF newDay THEN IF StrategyProfit > bestProfit THEN orderSize = positionSize bestProfit = StrategyProfit ENDIF entryBlocked = 0 ENDIF
42 linjer til: inngangs- og utgangsreglene.
Oppsett
Spørsmål
Koden bruker ProOrder med en buy stop-inngang, men den er utestet og ikke kompileringssjekket. Backtest den først og vurder å fjerne martingale-størrelsesberegningen.
Ingenting ennå. Breddefilteret på 60 poeng er dimensjonert for en stor indeks som DAX.
Det finnes ingen drawdown-tall ennå. Fordi størrelsen starter på 3 kontrakter og øker etter tap, kan kapitalbehovet vokse raskt.
Etter enhver lukket handel venter systemet til neste dag, noe som begrenser hvor ofte martingalen trappes opp i én enkelt sesjon.
Relatert
ProRealAlgos-fellesskapet får de fullstendige reglene, hele koden og den automatiserte porteføljen.