Strategi Pandangan Dagangan Henti Rugi Dinamik


Tarikh penciptaan: 2023-09-18 17:20:06 Akhirnya diubah suai: 2023-09-18 17:20:06
Salin: 0 Bilangan klik: 901
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menunjukkan bagaimana menggunakan pembolehubah dinamik TradingView untuk menyampaikan harga hentian dalam amaran dan melakukan perdagangan di platform MT4/5 melalui TradingConnector. Strategi ini menggunakan penunjuk Stochastic untuk menentukan masa masuk, secara dinamik menetapkan rintangan sokongan terkini sebagai titik hentian, dan juga boleh berhenti sebahagiannya.

Prinsip Strategi

Garis K dan Garis D dalam indikator Stochastic bertolak ansur, dan Garis Mati bertolak ansur. Ia mengira titik rintangan sokongan terdekat sebagai harga hentian. Selepas masuk, harga hentian dihantar kepada broker secara langsung melalui pembolehubah dinamik.

Analisis kelebihan

  • Hentian dinamik membolehkan harga hentian ditetapkan dengan tepat
  • Sebahagian daripada penangguhan untuk meningkatkan kecekapan penggunaan dana
  • Penghantaran terhad kepada akaun broker
  • Pengesanan Stop Loss Berhampiran dengan Disk, Simulasi Realistis

Analisis risiko

  • Indeks Stochastic berlainan arah
  • Penangguhan bahagian terlalu kerap mempengaruhi pegangan
  • Variabel dinamik berbeza pada bingkai masa yang berbeza
  • Peratusan yang perlu dioptimumkan untuk penangguhan

Siklus parameter Stochastic boleh disingkat dengan sewajarnya, menyesuaikan perkadaran perhentian sebahagian, dan sebagainya untuk mengawal risiko.

Arah pengoptimuman

  • Uji kombinasi parameter Stochastic yang berbeza
  • Pengaturan nisbah yang mengoptimumkan penangguhan bahagian
  • Cubalah pelbagai cara untuk menghentikan kerugian, seperti berhenti bergerak.
  • Ujian dalam pelbagai pasaran dan pelbagai varieti

ringkaskan

Strategi ini menunjukkan bagaimana untuk menggunakan fungsi baru TradingView untuk melakukan perdagangan stop loss secara dinamik di MT4 / 5. Ia boleh digunakan sebagai kerangka asas untuk backtesting lebih lanjut.

Kod sumber strategi
/*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")