Cette stratégie adopte une rupture dynamique des canaux d'oscillation pour déterminer les points d'entrée et d'arrêt de perte basés sur le mouvement des prix.
La stratégie calcule d'abord le plus haut et le plus bas des 20 derniers jours pour obtenir un canal d'oscillation dynamique. Ensuite, elle calcule les moyennes mobiles exponentielles de 8 jours et 32 jours. Lorsque le prix de clôture franchit la bande supérieure du canal et que l'EMA de 8 jours est au-dessus de l'EMA de 32 jours, il va long. Lorsque le prix franchit la bande inférieure ou que l'EMA de 8 jours franchit l'EMA de 32 jours, il sort. Le stop loss est défini en dessous de la bande moyenne du canal.
Les conditions d'entrée sont les suivantes:
Le prix de clôture franchit la bande supérieure dynamique formée par le plus haut niveau des 20 derniers jours.
L'EMA à 8 jours est supérieure à l'EMA à 32 jours.
Les conditions de sortie sont les suivantes:
Stop loss déclenché lorsque le prix tombe en dessous de la bande moyenne.
L'EMA à 8 jours passe sous l'EMA à 32 jours.
La stratégie identifie la direction de la tendance en utilisant le canal dynamique et l'état actuel de la tendance haussière en utilisant le croisement EMA.
Les risques peuvent être gérés en optimisant la période de canal, les périodes EMA et le positionnement stop loss.
La stratégie de rupture de l'oscillation dynamique a une logique claire pour identifier la tendance et entrer en fonction de la rupture du canal et du croisement de l'EMA. Le stop loss aide à contrôler le risque.
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Robrecht99 //@version=5 strategy("My Strategy", overlay=true, margin_long=100, margin_short=100) fast = ta.sma(close, 8) slow = ta.sma(close, 32) plot(fast, color=color.red) plot(slow, color=color.navy) entrycondition1 = ta.crossover(fast, slow) entrycondition2 = fast > slow sellcondition1 = ta.crossunder(fast, slow) sellcondition2 = slow > fast atr = ta.atr(14) //Donchian Channels days = 20 h1 = ta.highest(high[1], days) l1 = ta.lowest(low[1], days) mid = math.avg(h1, l1) plot(mid, "channel", color=#FF6D00) u = plot(h1, "Upper", color=#2962FF) l = plot(l1, "Lower", color=#2962FF) fill(u, l, color.new(color.blue, 90)) if (close > h1 and entrycondition2) strategy.entry("long", strategy.long) stoploss = close - atr * 3 trail = close - atr * 3 strategy.exit("exit", "long", stop=stoploss, trail_offset=trail) if (sellcondition1 and sellcondition2) strategy.close(id="long")