Cette stratégie démontre le passage de prix de stop loss dynamiques via des alertes TradingView pour l'exécution dans les plateformes MT4/5 à l'aide de TradingConnector. Les entrées sont déterminées à l'aide de l'indicateur stochastique avec des arrêts dynamiques définis aux pivots récents. Une prise de profit partielle est également possible.
Les entrées longues et courtes sur les croisements des lignes stochastiques K et D. Les hauts / bas de pivot récents sont calculés sous forme de prix de stop loss dynamiques. Ceux-ci sont transmis en temps réel au courtier via des alertes à l'entrée. Des bénéfices partiels sont pris à un certain pourcentage de la distance de stop loss. Les prix de profit peuvent également être alertés dynamiquement.
Les risques peuvent être gérés en ajustant les paramètres stochastiques, en ajustant le ratio de profit partiel, etc.
Cette stratégie démontre l'exécution dynamique des opérations de stop loss de TradingView à MT4/5 en utilisant de nouvelles fonctionnalités.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy(title="TradingView Alerts to MT4 MT5 Strategy example", commission_type=strategy.commission.cash_per_order, commission_value=0.00003, overlay=false, default_qty_value=100000, initial_capital=1000) // study(title="TradingView Alerts to MT4 MT5 Strategy example") //uncomment this line and comment previous one to make it a study producing alerts // // This script was created for educational purposes only. // It is showing how to use dynamic variables in TradingView alerts. // And how to execute them in Forex, indices and commodities markets // thanks to www.tradingconnector.com TakeProfitLevel=input(400) TakePartialProfitLevel=input(150) // **** Entries logic **** { periodK = input(14, title="K", minval=1) periodD = input(3, title="D", minval=1) smoothK = input(4, title="Smooth", minval=1) k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) plot(k, title="%K", color=color.blue) plot(d, title="%D", color=color.orange) h0 = hline(80) h1 = hline(20) fill(h0, h1, color=color.purple, transp=75) GoLong=crossover(k,d)// and k<80 GoShort=crossunder(k,d)// and k>20 // } End of entries logic // **** Pivot-points and stop-loss logic **** { piv_high = pivothigh(high,1,1) piv_low = pivotlow(low,1,1) var float stoploss_long=low var float stoploss_short=high pl=valuewhen(piv_low,piv_low,0) ph=valuewhen(piv_high,piv_high,0) if GoLong stoploss_long := low<pl ? low : pl if GoShort stoploss_short := high>ph ? high : ph // } End of Pivot-points and stop-loss logic // **** Trade counter and partial closing mechanism **** { var int trade_id=0 if GoLong or GoShort trade_id:=trade_id[1]+1 TakePartialProfitLong = barssince(GoLong)<barssince(GoShort) and crossover(high,(valuewhen(GoLong,close,0)+TakePartialProfitLevel*syminfo.mintick)) TakePartialProfitShort = barssince(GoLong)>barssince(GoShort) and crossunder(low,(valuewhen(GoShort,close,0)-TakePartialProfitLevel*syminfo.mintick)) // } End of Trade counter and partial closing mechanism strategy.entry("Long", strategy.long, when=GoLong) strategy.exit("XPartLong", from_entry="Long", qty_percent=50, profit=TakePartialProfitLevel) strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel) strategy.entry("Short", strategy.short, when=GoShort) strategy.exit("XPartShort", from_entry="Short", qty_percent=50, profit=TakePartialProfitLevel) strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel) // alertcondition("Long", when=GoLong, message="long slprice={{stoploss_long}} tradeid={{trade_id}} tp=TakeProfitLevel") // alertcondition("Short", when=GoShort, message="short slprice={{stoploss_short}} tradeid={{trade_id}} tp=TakeProfitLevel") // alertcondition("ClosePartLong", when=TakePartialProfitLong, message="closepart tradeit={{trade_id}} part=0.5") // alertcondition("ClosePartShort", when=TakePartialProfitShort, message="closepart tradeit={{trade_id}} part=0.5")