Cette stratégie est basée sur le croisement de la moyenne mobile sur plusieurs délais pour suivre les tendances à moyen et long terme. Elle adopte une position pyramidale pour poursuivre les hausses et atteindre une croissance exponentielle du capital.
Ci-dessus est la logique de base du trading.
La stratégie est très adaptée pour capturer les tendances à moyen et long terme. Les entrées pyramidales en lots peuvent atteindre un ratio risque-rendement très élevé. Il existe également certains risques d'exploitation, qui doivent être contrôlés par ajustement des paramètres. Dans l'ensemble, il s'agit d'une stratégie prometteuse qui vaut la peine d'être vérifiée et optimisée.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 1m basePeriod: 1m 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/ // © Coinrule //@version=3 strategy(shorttitle='Pyramiding Entry On Early Trends',title='Pyramiding Entry On Early Trends (by Coinrule)', overlay=false, pyramiding= 7, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month") fromDay = input(defval = 10, title = "From Day") fromYear = input(defval = 2020, title = "From Year") thruMonth = input(defval = 1, title = "Thru Month") thruDay = input(defval = 1, title = "Thru Day") thruYear = input(defval = 2112, title = "Thru Year") showDate = input(defval = true, title = "Show Date Range") start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" //MA inputs and calculations inSignal=input(9, title='MAfast') inlong1=input(100, title='MAslow') inlong2=input(200, title='MAlong') MAfast= sma(close, inSignal) MAslow= sma(close, inlong1) MAlong= sma(close, inlong2) Bullish = crossover(close, MAfast) longsignal = (Bullish and MAfast > MAslow and MAslow < MAlong and window()) //set take profit ProfitTarget_Percent = input(3) Profit_Ticks = (close * (ProfitTarget_Percent / 100)) / syminfo.mintick //set take profit LossTarget_Percent = input(3) Loss_Ticks = (close * (LossTarget_Percent / 100)) / syminfo.mintick //Order Placing strategy.entry("Entry 1", strategy.long, when = (strategy.opentrades == 0) and longsignal) strategy.entry("Entry 2", strategy.long, when = (strategy.opentrades == 1) and longsignal) strategy.entry("Entry 3", strategy.long, when = (strategy.opentrades == 2) and longsignal) strategy.entry("Entry 4", strategy.long, when = (strategy.opentrades == 3) and longsignal) strategy.entry("Entry 5", strategy.long, when = (strategy.opentrades == 4) and longsignal) strategy.entry("Entry 6", strategy.long, when = (strategy.opentrades == 5) and longsignal) strategy.entry("Entry 7", strategy.long, when = (strategy.opentrades == 6) and longsignal) if (strategy.position_size > 0) strategy.exit(id="Exit 1", from_entry = "Entry 1", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 2", from_entry = "Entry 2", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 3", from_entry = "Entry 3", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 4", from_entry = "Entry 4", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 5", from_entry = "Entry 5", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 6", from_entry = "Entry 6", profit = Profit_Ticks, loss = Loss_Ticks) strategy.exit(id="Exit 7", from_entry = "Entry 7", profit = Profit_Ticks, loss = Loss_Ticks)