Esta estratégia demonstra passar preços de stop loss dinâmicos através de alertas do TradingView para execução em plataformas MT4/5 usando o TradingConnector. As entradas são determinadas usando o indicador estocástico com paradas dinâmicas definidas em pivots recentes.
Entradas longas e curtas em cruzes de linhas estocásticas K e D. Os altos / baixos recentes do pivô são calculados como preços de stop loss dinâmicos. Estes são transmitidos em tempo real ao corretor através de alertas na entrada. Lucros parciais são tomados em uma certa porcentagem da distância de stop loss. Os preços de lucro também podem ser alertas dinamicamente.
Os riscos podem ser geridos ajustando os parâmetros estocásticos, ajustando o rácio de lucro parcial, etc.
Esta estratégia demonstra a execução de negociações de stop loss dinâmicas do TradingView para o MT4/5 usando novos recursos.
/*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")