Wenn der 15-Bar-Kanal mehr als 60 Punkte breit ist, platziert die Strategie einen Buy-Stop ein Viertel über der Kanalunterseite, sofern das MACD-Histogramm steigt. Das Ziel ist der Kanalmittelpunkt und der Stop die Kanalunterseite. Sie geht höchstens einen Trade pro Tag ein und wurde noch nicht gebacktestet.
| positionSize Basis-Kontrakte pro Trade | 3 |
| channelPeriod Länge des Donchian-Kanals | 15 |
| minChannelWidth Der Kanal muss mindestens so viele Punkte breit sein | 60 |
| quadrantDivisor Die Einstiegslinie liegt ein Viertel über der Kanalunterseite | 4 |
| targetDivisor Das Ziel liegt bei 1/targetDivisor des Kanals (2 = Mittelpunkt) | 2 |
| lossMultiplier Multiplikator der Ordergröße nach einem Verlust-Trade | 2.5 |
| winDivisor Divisor der Ordergröße nach einem Gewinn-Trade | 1.5 |
| macdFast MACD schnelle Länge | 12 |
| macdSlow MACD langsame Länge | 26 |
| macdSignalPeriod MACD Signallänge | 9 |
Der Code
// ============================================================ // 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 weitere Zeilen: die Einstiegs- und Ausstiegsregeln.
Setup
Fragen
Der Code verwendet ProOrder mit einem Buy-Stop-Einstieg, aber er ist ungetestet und nicht auf Kompilierfähigkeit geprüft. Backtesten Sie ihn zuerst und erwägen Sie, die Größenanpassung im Martingale-Stil zu entfernen.
Noch nichts. Der Breitenfilter von 60 Punkten ist für einen großen Index wie den DAX ausgelegt.
Es gibt noch keine drawdown-Zahl. Da die Größe bei 3 Kontrakten beginnt und nach Verlusten steigt, kann das benötigte Kapital schnell wachsen.
Nach jedem geschlossenen Trade wartet das System auf den nächsten Tag, was begrenzt, wie oft der Martingale in einer einzelnen Sitzung hochstuft.
Verwandt
Die ProRealAlgos Community erhält die vollständigen Regeln, den kompletten Code und das automatisierte Portfolio.