Strategi Perdagangan Teknikal Komposit Tiga Naga


Tarikh penciptaan: 2023-12-21 11:56:31 Akhirnya diubah suai: 2023-12-21 11:56:31
Salin: 0 Bilangan klik: 636
1
fokus pada
1621
Pengikut

Strategi Perdagangan Teknikal Komposit Tiga Naga

Gambaran keseluruhan

Sistem SamRong adalah strategi perdagangan teknologi gabungan yang menggabungkan indikator trend kuantiti harga lanjutan, indikator saluran Dongxian, dan indikator SAR paras. Strategi ini menggunakan kelebihan saling melengkapi ketiga-tiga indikator untuk mengenal pasti arah trend pasaran dan isyarat jual beli yang berpotensi.

Prinsip Strategi

Strategi ini mula-mula menggunakan indikator trend kuantiti harga lanjutan dan saluran Dongxian untuk menentukan arah trend pasaran. Apabila indikator trend kuantiti harga lanjutan berada di atas garis asas dan harga lebih tinggi daripada saluran Dongxian, ia menunjukkan trend naik; sebaliknya, apabila indikator trend kuantiti harga lanjutan berada di bawah garis asas dan harga lebih rendah daripada saluran Dongxian, ia menunjukkan trend menurun.

Selepas mengenal pasti arah trend pasaran, strategi ini memperkenalkan penunjuk SAR paras paras untuk mengenal pasti masa pembelian dan penjualan tertentu. Apabila penunjuk SAR paras melintasi harga di bawah, ia menghasilkan isyarat beli; apabila penunjuk SAR paras melintasi harga di atas, ia menghasilkan isyarat jual.

Untuk mengesahkan isyarat lebih lanjut, strategi ini juga mengesahkan arah trend dalam beberapa tempoh masa, untuk mengelakkan masuk ke dalam pasaran semasa turun naik pasaran yang kuat. Di samping itu, strategi ini juga menetapkan pelbagai tahap berhenti untuk mengunci keuntungan dan mengawal risiko.

Analisis kelebihan

Kelebihan terbesar sistem Sanlong adalah penggunaan tiga jenis penunjuk yang saling melengkapi antara satu sama lain, yang dapat menentukan pergerakan pasaran dengan lebih tepat. Secara khusus, kelebihan utama adalah:

  1. Penunjuk trend harga kuantitatif yang diperpanjang dapat mengenal pasti titik perubahan trend dan kekuatan trend, asasnya baik;
  2. Indeks saluran Dongxian dapat menentukan arah trend dengan jelas, dan lebih baik menangkap trend;
  3. Garis paralon SAR digabungkan dengan indikator trend untuk lebih tepat mengenal pasti titik jual beli.

Melalui gabungan organik penunjuk, kelebihan setiap penunjuk dapat dimanfaatkan sepenuhnya, membolehkan sistem Samsung menilai dengan tepat pergerakan garis besar dan panjang, dan mengenal pasti titik jual beli dengan lebih tepat, sehingga dapat memperoleh nisbah keuntungan risiko yang lebih baik.

Analisis risiko

Sebagai strategi gabungan indikator, risiko keseluruhan boleh dikawal, tetapi terdapat risiko tertentu yang perlu diperhatikan:

  1. Penambahbaikan trend harga kuantitatif untuk menilai risiko kesilapan dalam kes penembusan palsu dan pembalikan kuantiti besar;
  2. Dalam proses pengumpulan gempa, saluran Dongjian mungkin menyempit, dan kemungkinan besar akan menghasilkan isyarat yang salah;
  3. Tetapan parameter SAR paras paras yang tidak betul juga akan memberi kesan kepada pengenalan titik jual beli.

Untuk risiko di atas, kami mencadangkan agar parameter penunjuk disesuaikan dengan betul, dan penilaian tambahan merujuk kepada penunjuk lain, untuk mengurangkan kemungkinan kegagalan penunjuk tunggal. Di samping itu, pengurusan hentian dan kedudukan yang munasabah juga penting untuk kawalan risiko keseluruhan strategi.

Pengoptimuman Strategi

Namun, terdapat ruang untuk pengoptimuman yang lebih lanjut:

  1. Algoritma pembelajaran mesin boleh memperkenalkan parameter penunjuk yang dioptimumkan secara automatik;
  2. Ia boleh mempertimbangkan untuk memperkenalkan penunjuk kadar turun naik untuk membantu penilaian dan meningkatkan kestabilan strategi;
  3. Ia boleh digabungkan dengan penunjuk emosi untuk menilai kesan perubahan emosi awam terhadap strategi.

Dengan pengoptimuman parameter algoritma, penilaian gabungan pelbagai parameter dan analisis kuantitatif tingkah laku, kami menjangkakan akan meningkatkan lagi keuntungan dan kestabilan sistem Sanlong. Kami akan terus memberi perhatian kepada teknologi terdepan dalam industri dan terus mengoptimumkan sistem strategi penambahbaikan.

ringkaskan

Sistem Sanlong adalah strategi gabungan petunjuk teknikal, menilai pergerakan pasaran dan mencari titik jual beli dengan menggunakan indikator trend kuantiti harga lanjutan, indikator saluran Dongxian dan indikator SAR garis paralisis. Strategi ini menilai dengan tepat, boleh dikawal risiko, disahkan berulang kali, dan merupakan sistem strategi yang berkesan untuk pelabur garis panjang dan sederhana.

Kod sumber strategi
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="TRIPLE DRAGON SYSTEM", overlay=true,default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=1000,pyramiding=0,commission_value=0.01)
/////////////// DRAG-ON ///// EMA'S /////////////// 
emar = ta.ema(close,5)
plot(emar, color=color.blue, title="S-Fast EMA")
//EMAlengthTRF = input.int(200, minval=1,title = "EMA Filter")
//ematrf = ta.ema(close,EMAlengthTRF)
//plot(ematrf, "EMA-TREND FILTER", color=color.red,linewidth = 4)
/////////////// 1-DRAG-ON /////EXTENDED PRICE VOLUME TREND /////////////// 
lenght = input(200,"EPVT - Trend Lenght")   
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
    runtime.error("No volume is provided by the data vendor.")
src = close

vt = ta.cum(ta.change(src)/src[1]*volume)
upx = ta.highest(vt,lenght)
downx = ta.lowest(vt,lenght)
basex = (upx +downx)/2
VTX = vt - basex

/////////////// 2-DRAG-ON ///// DON TREND /////////////// 

length = input.int(200, minval=1, title = "Donchian Lenght")
lower = ta.lowest(length)
upper = ta.highest(length)
basis = math.avg(upper, lower)

updiff = upper - close
downdiff = lower - close
dontrend = -(updiff + downdiff)   

xupx = ta.highest(dontrend,length) >0 ? ta.highest(dontrend,length) : 0 

xdownx = ta.lowest(dontrend,length) < 0 ?ta.lowest(dontrend,length) :0 
xxbasisxx = math.avg(xdownx, xupx)

inversedragup = xupx[1]  
inversedragdown = xdownx[1]  
inversedragon = (inversedragup+inversedragdown)/2

/////////////// 3-DRAG-ON ///// SUPER SAR-X /////////////// 
start = input(0.02)
increment = input(0.02)
maximum = input(0.8)
entry_bars = input(1, title='Entry on Nth trend bar')

atr = ta.atr(14)

atr := na(atr) ? ta.tr : atr

psar = 0.0  // PSAR
af = 0.0  // Acceleration Factor
trend_dir = 0  // Current direction of PSAR
ep = 0.0  // Extreme point
trend_bars = 0

sar_long_to_short = trend_dir[1] == 1 and close <= psar[1]  // PSAR switches from long to short
sar_short_to_long = trend_dir[1] == -1 and close >= psar[1]  // PSAR switches from short to long

trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long

// Calculate trend direction
trend_dir := barstate.isfirst[1] and close[1] > open[1] ? 1 : barstate.isfirst[1] and close[1] <= open[1] ? -1 : sar_long_to_short ? -1 : sar_short_to_long ? 1 : nz(trend_dir[1])

trend_bars := sar_long_to_short ? -1 : sar_short_to_long ? 1 : trend_dir == 1 ? nz(trend_bars[1]) + 1 : trend_dir == -1 ? nz(trend_bars[1]) - 1 : nz(trend_bars[1])

// Calculate  Acceleration Factor
af := trend_change ? start : trend_dir == 1 and high > ep[1] or trend_dir == -1 and low < ep[1] ? math.min(maximum, af[1] + increment) : af[1]

// Calculate extreme point
ep := trend_change and trend_dir == 1 ? high : trend_change and trend_dir == -1 ? low : trend_dir == 1 ? math.max(ep[1], high) : math.min(ep[1], low)

// Calculate PSAR
psar := barstate.isfirst[1] and close[1] > open[1] ? low[1] : barstate.isfirst[1] and close[1] <= open[1] ? high[1] : trend_change ? ep[1] : trend_dir == 1 ? psar[1] + af * atr : psar[1] - af * atr

//////////////// MELODY ///////////////////
VTY = ta.valuewhen(ta.cross(VTX,0),close,0)
//plot(VTY, color=color.black, title="Extended-PVT")

//DONTRENDX = ta.valuewhen(ta.cross(dontrend,0),close,0)
//plot(DONTRENDX, color=color.red, title="DONCHIAN TREND")

SSARX = ta.valuewhen(ta.cross(psar,close),close,0)
//plot(SSARX, color=color.black, title="SSAR-X")

MAXDRAG = math.max(SSARX,VTY)
//plot(MAXDRAG, color=color.black, title="MAX DRAG")
MINDRAG = math.min(SSARX,VTY)
//plot(MINDRAG, color=color.black, title="MIN DRAG")
BASEDRAG = math.avg(MAXDRAG,MINDRAG)
//plot(BASEDRAG, color=color.red, title="BASE DRAG")


/////BUY AND SELL LOGIC ///////////
DRAGONBUY = (ta.crossover(close,MAXDRAG) or ta.crossover(close,MINDRAG) )
DRAGONBUYSTOP = (ta.crossunder(close,MAXDRAG) or ta.crossunder(close,MINDRAG)) 
DRAGONBUYPLOT = ta.valuewhen(DRAGONBUY==true,close,0)
plot(DRAGONBUYPLOT, color=color.red, title="BUY LINE")

DRAGONSELL = (ta.crossunder(close,MAXDRAG) or ta.crossunder(close,MINDRAG) ) 
DRAGONSELLSTOP = (ta.crossover(close,MAXDRAG) or ta.crossover(close,MINDRAG))
DRAGONSELLPLOT = ta.valuewhen(DRAGONSELL==true,close,0)
plot(DRAGONSELLPLOT, color=color.red, title="SELL LINE")

/////TAKE PROFIT LOGIC ///////////
tp1 = input.int(5, minval=1,title = "TP-1")
tp2 = input.int(10, minval=1,title = "TP-2")
tp3 = input.int(15, minval=1,title = "TP-3")

TPTAKA1B = DRAGONBUYPLOT*(1+tp1/100)
//plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1)
TPTAKA2B = DRAGONBUYPLOT*(1+tp2/100)
//plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1)
TPTAKA3B = DRAGONBUYPLOT*(1+tp3/100)
//plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1)

TPTAKA1S = DRAGONSELLPLOT*(1-tp1/100)
//plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1)
TPTAKA2S = DRAGONSELLPLOT*(1-tp2/100)
//plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1)
TPTAKA3S = DRAGONSELLPLOT*(1-tp3/100)
//plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1)


BUYTP = ta.crossunder(emar,TPTAKA1B) or ta.crossunder(emar,TPTAKA2B) or ta.crossunder(emar,TPTAKA3B) 
SELLTP = ta.crossover(emar,TPTAKA1B) or ta.crossover(emar,TPTAKA2B) or ta.crossover(emar,TPTAKA3B)

/////STRATEGY ///////////
// Enter condition 
longCondition = DRAGONBUY==true 
if longCondition
    strategy.entry('Long', strategy.long, comment = "ENTER-LONG")

// Exit condition 
strategy.close('Long', when=DRAGONBUYSTOP, comment = "EXIT-LONG")

// Enter condition 
ShortCondition = DRAGONSELL  
if ShortCondition
    strategy.entry('Short', strategy.short, comment = "ENTER-SHORT")

// Exit condition 
strategy.close('Short', when=DRAGONSELLSTOP, comment = "EXIT-SHORT")
///// END OF STRATEGY ///////////