Strategi perdagangan pembelajaran mesin di luar kotak


Tarikh penciptaan: 2024-01-29 11:20:42 Akhirnya diubah suai: 2024-01-29 11:20:42
Salin: 0 Bilangan klik: 401
1
fokus pada
1166
Pengikut

Strategi perdagangan pembelajaran mesin di luar kotak

Gambaran keseluruhan

Strategi ini menggunakan kaedah pembelajaran mesin untuk mewujudkan strategi perdagangan automatik yang boleh digunakan di luar kotak. Ia mengintegrasikan pelbagai petunjuk dan model yang dapat menghasilkan isyarat perdagangan secara automatik dan melakukan pembelian dan penjualan berdasarkan isyarat tersebut.

Prinsip Strategi

Strategi ini adalah berdasarkan kepada beberapa perkara:

  1. Menggunakan garis rata-rata hull untuk menentukan arah trend pasaran
  2. Menggunakan EMA untuk menilai trend jangka pendek dan pertengahan
  3. Menggunakan saluran entiti K untuk menentukan kedudukan SUPPORT/RESISTANCE yang penting
  4. Menggunakan harga pembukaan dan penutupan SECURITY untuk membuat keputusan

Khususnya, strategi ini akan memetakan garis purata hull, EMA 13 kitaran dan EMA 21 kitaran. Dengan keadaan kosong EMA, arah trend jangka pendek dan jangka menengah akan ditentukan. Kemudian dengan gabungan garis purata hull, arah trend untuk tempoh yang lebih lama akan ditentukan. Ini memberikan panduan arah besar untuk isyarat perdagangan seterusnya.

Sebelum menyesuaikan kedudukan, strategi akan merujuk kepada harga tertinggi dan harga terendah dalam saluran entiti yang sesuai dengan tahap sokongan dan rintangan. Ini dapat mengelakkan menghasilkan isyarat perdagangan di kawasan harga utama.

Akhirnya, strategi akan memanggil harga pembukaan dan harga penutupan 60 kitaran, menghasilkan isyarat beli apabila harga penutupan melintasi harga pembukaan dan isyarat jual apabila ia melintasi. Dengan demikian, keseluruhan logik perdagangan selesai.

Analisis kelebihan strategi

Kelebihan utama strategi ini adalah bahawa ia menggabungkan pembelajaran mesin dan analisis teknikal untuk mewujudkan program perdagangan automatik yang jelas, parameter yang boleh disesuaikan dan mudah dikendalikan.

  1. Kombinasi pelbagai indikator untuk meningkatkan ketepatan isyarat

Strategi ini tidak hanya bergantung pada satu atau dua petunjuk, tetapi mempertimbangkan pelbagai faktor seperti trend, rintangan sokongan, dan harga yang pecah, yang meningkatkan kebolehpercayaan dan ketepatan isyarat.

  1. Tetapan parameter yang fleksibel

Panjang garis purata hull, bilangan kitaran EMA, bilangan kitaran persilangan penutupan penutupan bukaan boleh disesuaikan dengan parameter, menjadikan strategi fleksibel untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

  1. Isyarat perdagangan automatik

Isyarat dagangan berdasarkan penunjuk dan harga silang boleh mencetuskan pembelian dan penjualan secara automatik, tanpa penilaian manual, mengurangkan kesukaran operasi.

  1. Pemandangan visual

Grafik dalam strategi dapat menunjukkan struktur pasaran, keadaan trend dan harga utama dengan jelas, secara intuitif menunjukkan asas penilaian strategi.

Analisis risiko

Walaupun strategi ini telah dioptimumkan secara pelbagai cara, terdapat beberapa risiko yang mungkin berlaku:

  1. Tidak dapat dikesan

Dalam keadaan harga yang bergelombang, indikator mungkin tidak berfungsi atau tertunda, menyebabkan strategi tidak dapat mengesan perubahan harga dalam masa yang tepat. Parameter perlu dioptimumkan untuk menyesuaikan diri dengan keadaan ini.

  1. Kesalahan isyarat

Berdasarkan isyarat perdagangan indikator dan model, lebih atau kurang terdapat beberapa kesalahan atau kekurangan. Ini memerlukan peningkatan kualiti isyarat dengan menggabungkan lebih banyak isyarat tambahan.

  1. Risiko MIX pelbagai ruang

Strategi melakukan banyak shorting pada masa yang sama, jika keputusan yang salah, risiko kerugian dua hala akan dihadapi. Ini memerlukan pemotongan kerugian yang ketat atau menurunkan kedudukan untuk mengawal.

  1. Risiko yang terlalu optimum

Tetapan parameter terlalu rumit dan berisiko terlalu optimum. Ini memerlukan penyederhanaan sistem, mengawal jumlah kombinasi parameter.

Arah pengoptimuman strategi

Strategi ini masih mempunyai ruang untuk pengoptimuman, terutamanya dari segi berikut:

  1. Tambah lebih banyak isyarat penunjuk

Di samping indikator sedia ada, lebih banyak indikator tambahan boleh diperkenalkan, seperti saluran BOLL, indikator KD, dan lain-lain, untuk memperkaya dasar penilaian sistem.

  1. Menggunakan model pembelajaran mendalam

Menggunakan indikator mudah sebagai ciri, melatih model pembelajaran mendalam seperti LSTM untuk meningkatkan kualiti isyarat.

  1. Gabungan data asas

Menambah faktor asas seperti data ekonomi makro, maklumat dasar, dan mengoptimumkan keputusan kitaran besar.

  1. Pengurusan Risiko dan Kedudukan

Memperkenalkan strategi hentikan kerugian, menyesuaikan saiz kedudukan secara dinamik mengikut kadar turun naik keuntungan strategi, dan mengawal risiko dengan ketat.

ringkaskan

Strategi ini mengintegrasikan pelbagai petunjuk seperti trend, sokongan, rintangan, dan penembusan, menggunakan kaedah pembelajaran mesin untuk mewujudkan rancangan perdagangan kuantitatif yang automatik. Ia mempunyai kelebihan seperti kepelbagaian portofolio petunjuk, parameter yang boleh disesuaikan, automasi isyarat, tetapi juga menghadapi beberapa masalah seperti penyimpangan penjejakan, ralat isyarat, dan banyak ruang MIX.

Kod sumber strategi
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Period=input('60')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close")
plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open")

///////////////////////////////////////////////////////////////////////////////////////////