Strategi ini menunjukkan lulus harga stop loss dinamik melalui amaran TradingView untuk pelaksanaan di platform MT4/5 menggunakan TradingConnector. Entri ditentukan menggunakan penunjuk Stochastic dengan berhenti dinamik ditetapkan pada pivot baru-baru ini. Pengambilan keuntungan separa juga mungkin.
Entri panjang dan pendek pada persimpangan garis Stochastic K dan D. Pivot tinggi / rendah baru-baru ini dikira sebagai harga stop loss dinamik. Ini diteruskan dalam masa nyata kepada broker melalui amaran semasa masuk. Keuntungan separa diambil pada peratusan tertentu jarak stop loss. Harga keuntungan juga boleh dimaklumkan secara dinamik.
Risiko boleh dikendalikan dengan menyesuaikan parameter Stochastic, menyesuaikan nisbah keuntungan separa dan lain-lain.
Strategi ini menunjukkan pelaksanaan perdagangan stop loss dinamik dari TradingView ke MT4/5 menggunakan ciri-ciri baru. Ia boleh berfungsi sebagai rangka kerja untuk pengujian belakang yang lebih lanjut. Pengoptimuman diperlukan untuk aset tertentu.
/*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")