Cette stratégie permet de déterminer la direction de la tendance actuelle en calculant les moyennes mobiles des prix et l’écart standard CHANNEL, formant ainsi une trajectoire ascendante et descendante dynamique, et en combinant les valeurs moyennes des prix les plus élevés et les plus bas pour former une trajectoire intermédiaire. La stratégie consiste à négocier en fonction des changements de tendance lorsque les prix franchissent la trajectoire ascendante et baissent lorsque les prix franchissent la trajectoire descendante.
L’idée générale de la stratégie est claire et compréhensible, elle capture les tendances via des canaux dynamiques et génère des signaux de trading en combinant une conception de plusieurs voies centrales. Elle permet de suivre efficacement la direction de la tendance et d’obtenir de meilleurs rendements de trading. Dans la pratique, il est nécessaire de prêter attention à la stratégie de stop-loss, à la gestion des fonds et à l’optimisation des paramètres pour obtenir des gains stables à long terme.
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 4h
basePeriod: 15m
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/
// © ErdemDemir
//@version=4
strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true)
src = close
mult = 2.0
basis = sma(src, 20)
dev = mult * stdev(src, 20)
upper = basis + dev
lower = basis - dev
offset = 0
lower2 = lowest(20)
upper2 = highest(20)
basis2 = avg(upper2, lower2)
MB= (basis+basis2)/2
col1=close>MB
col3=MB>close
colorE = col1 ? color.blue : col3 ? color.red : color.yellow
p3=plot(MB, color=colorE, linewidth=3)
// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)
// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)
// Buy only if the buy signal is triggered and we are not already long
buySignal = not isLong and crossover(close,MB)
// Sell only if the sell signal is triggered and we are not already short
sellSignal= not isShort and crossover(MB,close)
if (buySignal)
isLong := true
isShort := false
if (sellSignal)
isLong := false
isShort := true
/// LONG
strategy.entry("long", true , when = buySignal, comment="Open Long")
strategy.close("long", when=sellSignal, comment = "Close Long")
/// SHORT
strategy.entry("short", false, when = sellSignal, comment="Open Short")
strategy.close("short", when=buySignal, comment = "Close Short")