Longs gaan af wanneer de close boven de vorige 9-bar high uitbreekt terwijl het MACD-histogram stijgt, RSI(4) boven 63 staat en de prijs boven de 50 SMA blijft. Shorts gebruiken een 7-bar low, een dalend histogram, RSI(4) onder 31 en de 500 SMA. Posities stappen uit aan de tegenoverliggende kanaalrand zonder winstdoel.
| positionSize Aandelen per trade, zoals gepubliceerd | 2 |
| longChannelPeriod Donchian-lengte voor long-instappen en de long stop | 9 |
| shortChannelPeriod Donchian-lengte voor short-instappen en de short stop | 7 |
| macdFast MACD snelle lengte | 12 |
| macdSlow MACD langzame lengte | 26 |
| macdSignalPeriod MACD signaallengte | 9 |
| rsiPeriod RSI-lengte | 4 |
| longRsiLevel RSI moet hierboven staan om te kopen | 63 |
| shortRsiLevel RSI moet hieronder staan om short te gaan | 31 |
| longTrendPeriod SMA waarop of waarboven de close moet staan om te kopen | 50 |
| shortTrendPeriod SMA waarop of waaronder de close moet staan om short te gaan | 500 |
De code
// ============================================================ // Donchian MACD Breakout // ProRealAlgos Strategy Library | prorealalgos.com // Type: Breakout // Direction: Long & short // Timeframe tested: Not yet tested // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false DEFPARAM PreloadBars = 50000 // --- Parameters --- positionSize = 2 // shares per trade, as published longChannelPeriod = 9 // Donchian length for long entries and the long stop shortChannelPeriod = 7 // Donchian length for short entries and the short stop macdFast = 12 // MACD fast length macdSlow = 26 // MACD slow length macdSignalPeriod = 9 // MACD signal length rsiPeriod = 4 // RSI length longRsiLevel = 63 // RSI must be above this to buy shortRsiLevel = 31 // RSI must be below this to short longTrendPeriod = 50 // SMA the close must be at or above to buy shortTrendPeriod = 500 // SMA the close must be at or below to short // --- Indicators --- macdHistogram = MACD[macdFast, macdSlow, macdSignalPeriod](close) longChannelHigh = Highest[longChannelPeriod](high) longChannelLow = Lowest[longChannelPeriod](low) shortChannelHigh = Highest[shortChannelPeriod](high) shortChannelLow = Lowest[shortChannelPeriod](low) rsiValue = RSI[rsiPeriod](close) longTrendMA = Average[longTrendPeriod](close) shortTrendMA = Average[shortTrendPeriod](close)
Nog 20 regels: de instap- en uitstapregels.
Opzet
Vragen
De regels zijn geschreven voor ProOrder, maar de herschreven code is niet op compileren gecontroleerd of gebacktest. Beschouw het als een startpunt voor je eigen tests.
Nog geen. Hij is op deze site niet gebacktest.
De standaard is 2 per trade, ingesteld door de parameter positionSize. Zonder backtest is er geen drawdown-cijfer, dus houd de positie klein tot je je eigen resultaten hebt.
Het 500 SMA-filter op shorts heeft veel historie nodig, dus een tijdframe met lange datadekking is logisch. Hier is nog geen tijdframe getest.
Gerelateerd
De ProRealAlgos community krijgt de volledige regels, de complete code en de geautomatiseerde portefeuille.