Peringatan Stop Loss Dinamis TradingView Strategi

Penulis:ChaoZhang, Tarikh: 2023-09-18 17:20:06
Tag:

Ringkasan

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.

Logika Strategi

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.

Kelebihan

  • Perhentian dinamik membolehkan penempatan kehilangan berhenti pembedahan
  • Mengambil keuntungan separa meningkatkan kecekapan modal
  • Pemindahan harga stop loss ke akaun broker dalam masa nyata
  • Backtested stop loss meniru hidup, simulasi realistik

Risiko

  • Lag wujud dalam penunjuk Stochastic
  • Pengambilan keuntungan separa yang kerap mengganggu pegangan
  • Peralihan dinamik berperilaku berbeza dalam jangka masa
  • Peratusan keuntungan separa memerlukan pengoptimuman

Risiko boleh dikendalikan dengan menyesuaikan parameter Stochastic, menyesuaikan nisbah keuntungan separa dan lain-lain.

Peningkatan

  • Uji kombinasi parameter Stochastic yang berbeza
  • Mengoptimumkan nisbah mengambil keuntungan separa
  • Meneroka pendekatan stop loss lain seperti trailing stop
  • Uji ketahanan merentasi pasaran dan produk

Kesimpulan

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")


Lebih lanjut