Quando il canale a 15 barre è ampio più di 60 punti, la strategia piazza un buy stop a un quarto sopra il fondo del canale, purché l'istogramma MACD sia in salita. Il target è il punto medio del canale e lo stop è il fondo del canale. Prende al massimo un'operazione al giorno e non è ancora stata testata in backtest.
| positionSize Contratti base per operazione | 3 |
| channelPeriod Lunghezza del canale Donchian | 15 |
| minChannelWidth Il canale deve essere ampio almeno questo numero di punti | 60 |
| quadrantDivisor La linea di ingresso si trova a un quarto sopra il fondo del canale | 4 |
| targetDivisor Il target si trova a 1/targetDivisor del canale (2 = punto medio) | 2 |
| lossMultiplier Moltiplicatore della dimensione dell'ordine dopo un'operazione perdente | 2.5 |
| winDivisor Divisore della dimensione dell'ordine dopo un'operazione vincente | 1.5 |
| macdFast Lunghezza MACD veloce | 12 |
| macdSlow Lunghezza MACD lenta | 26 |
| macdSignalPeriod Lunghezza del segnale MACD | 9 |
Il codice
// ============================================================ // 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
Altre 42 righe: le regole di ingresso e di uscita.
Configurazione
Domande
Il codice usa ProOrder con un ingresso buy stop, ma non è testato né verificato in compilazione. Fai prima un backtest e considera di rimuovere il dimensionamento a martingala.
Nulla per ora. Il filtro di ampiezza di 60 punti è dimensionato per un indice ampio come il DAX.
Non c'è ancora una cifra di drawdown. Poiché la dimensione parte da 3 contratti e aumenta dopo le perdite, il capitale necessario può crescere rapidamente.
Dopo qualsiasi operazione chiusa il sistema attende il giorno successivo, il che limita quante volte la martingala sale di livello in una singola sessione.
Correlati
La community ProRealAlgos ottiene le regole complete, il codice completo e il portafoglio automatizzato.