Diese Strategie baut lange und kurze Kanäle auf und backtests systematisch Kanal-Breakouts.
Bauen Sie einen langen Kanal mit den höchsten Preisen über einen Zeitraum und einen kurzen Kanal mit den niedrigsten Preisen.
Kaufen, wenn der Preis über die oberen Kanallinien bricht.
Verkaufen, wenn der Preis unter die unteren Kanallinien fällt.
Kann einen Backtest-Datumbereich festlegen, um die Strategie zu überprüfen.
Einfache und klare Regeln für den Handel mit Ausbrüchen.
Die Kanäle definieren die Preisbereiche optisch.
Hohe Wahrscheinlichkeit einer Aufwärtsdynamik nach Ausbrüchen.
Das Backtesting überprüft historisch die Wirksamkeit der Strategie.
Das Kanal-Breakout-Konzept ist einfach und intuitiv.
Konkisser Code, leicht zu modifizieren und zu optimieren.
Risiken falscher Ausbrüche und Rückzüge nach dem ersten Ausbruch.
Es gibt keine wirksame Möglichkeit, Stopps und Ausgänge festzulegen.
Falsche Kanalparameter beeinträchtigen die Leistung negativ.
Die Ergebnisse der Backtests können eine Vorhersage haben.
Die tatsächliche Handelsleistung kann sich stark von der des Backtests unterscheiden.
Testparameter, um optimale Kombinationen zu finden.
Fügen Sie andere Faktoren hinzu, um falsche Ausbrüche auszufiltern.
Einbau von Stop-Loss- und Take-Profit-Mechanismen.
Verarbeiten Sie die Daten des Backtests ordnungsgemäß, um Verzerrungen zu beseitigen.
Überprüfung der Strategie unter verschiedenen Marktbedingungen durch Backtest.
Papierhandel zur Konfiguration von Parametern für den Live-Handel.
Diese Strategie backtests einfache Kanal-Breakout-Regeln, die einfach zu bedienen sind, aber für Stabilität verfeinert werden müssen.
/*backtest start: 2023-08-20 00:00:00 end: 2023-08-30 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //strategy(title = "Backtest Donchian Teixeira", default_qty_type = strategy.fixed, default_qty_value = 100, overlay = true, commission_type = strategy.commission.cash_per_order, commission_value = 2.50, precision = 2, calc_on_every_tick = true, pyramiding = 0, initial_capital = 10000) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 00, 00) testEndYear = input(2018, "Backtest End Year") testEndMonth = input(12, "Backtest End Month") testEndDay = input(1, "Backtest End Day") testPeriodEnd = timestamp(testStartYear, testStartMonth, testStartDay, 23, 59) window() => true //nao funciona length1 = input(20, minval=1, title="Upper Channel") length2 = input(20, minval=1, title="Lower Channel") dcUpper = highest(length1) dcLower = lowest(length2) plot(dcLower, style=line, linewidth=1, color=red, offset=1) plot(dcUpper, style=line, linewidth=1, color=lime, offset=1) plot(dcLower, style=line, linewidth=1, color=gray) if (strategy.position_size == 0) strategy.entry("COMPRA", true, stop = dcUpper) if (strategy.position_size > 0) strategy.exit("VENDA", stop = dcLower)