
Die Doppel-Dongxian-Break-Strategie ist eine auf der Dongxian-Strecke basierende Quantitative-Trading-Strategie. Die Strategie nutzt eine Kombination aus schnellen und langsamen Dongxian-Strecken, um einen brechenden Handel mit niedrigem Risiko und hohen Erträgen zu erzielen. Eintritt ist ein Plus/Lose, wenn der Preis den langsamen Kanal durchbricht, und ein Stop oder Stop, wenn der Preis den schnellen Kanal erneut durchbricht.
Die Strategie basiert hauptsächlich auf zwei Dongqian-Kanälen, einer langsamer Dongqian-Kanal mit längerer Periode und einer schnelleren Dongqian-Kanal mit kürzerer Periode.
Langsame Dongxian-Kanal hat einen längeren Zyklus, um Marktgeräusche zu beseitigen, und sein Durchbruchsignal hat eine hohe Zuverlässigkeit. Wenn der Preis den langsamen Kanal überschreitet, wird mehr eingegeben; Wenn der Preis den langsamen Kanal überschreitet, wird der Eintritt unterbrochen.
Die kurze Periode des schnellen Tangjian-Kanals ermöglicht eine schnelle Reaktion auf kurzfristige Preisänderungen. Wenn der Preis diesen Kanal erneut durchbricht, ist dies ein Hinweis auf eine Trendwende, die eine sofortige Stop-Loss- oder Stopp-Ausfahrt erfordert.
Darüber hinaus wurde eine Fluktuationsrate-Bedingung als Eintrittsfilter für die Strategie eingestellt. Eintritt wird nur ausgelöst, wenn die Kursbewegung über den vorab gesetzten Schwellenwertprozentsatz hinausgeht. Dies verhindert häufige Eintritte bei der Querverarbeitung.
Diese Risiken können durch Maßnahmen wie Parameteroptimierung, vernünftige Einstellung von Stop-Loss-Punkten und Aufmerksamkeit auf wichtige Ereignisse verringert werden.
Die Double-Dong-Channel-Breakout-Strategie ist insgesamt eine relativ stabile und zuverlässige Trendverfolgungsstrategie. Sie bietet die Vorteile der Trendfangung und Risikokontrolle und ist ein grundlegendes Modul für verschiedene Aktienhandelsstrategien. Durch die Optimierung der Parameter und die Vervollkommnung der Regeln kann die Wirksamkeit der Strategie weiter verbessert werden.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan
//@version=5
strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)
slowLen = input.int(50, title="Slow Donchian")
fastLen = input.int(30, title="Fast Donchian")
volatility = input.int(3, title="Volatility (%)")
longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01
shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)")
ubSlow = ta.highest(close, slowLen)[1]
lbSlow = ta.lowest(close, slowLen)[1]
ubFast = ta.highest(close, fastLen)[1]
lbFast = ta.lowest(close, fastLen)[1]
plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband")
plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband")
plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband")
plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband")
fark = (ubSlow - lbSlow) / lbSlow * 100
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
longCondition = ta.crossover(close, ubSlow) and fark > volatility
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if (shortCondition)
strategy.entry("Short", strategy.short)
if strategy.position_size > 0 and ta.crossunder(close, lbFast)
strategy.close("Long", "Close All")
if strategy.position_size < 0 and ta.crossover(close, ubFast)
strategy.close("Short", "Close All")
// Take Profit
if strategy.position_size > 0
strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)
if strategy.position_size < 0
strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)