Strategi perdagangan pembelajaran mesin yang siap pakai


Tanggal Pembuatan: 2024-01-29 11:20:42 Akhirnya memodifikasi: 2024-01-29 11:20:42
menyalin: 0 Jumlah klik: 723
1
fokus pada
1617
Pengikut

Strategi perdagangan pembelajaran mesin yang siap pakai

Ringkasan

Strategi ini menggunakan metode pembelajaran mesin untuk mewujudkan strategi perdagangan otomatis yang siap pakai. Ini mengintegrasikan beberapa indikator dan model yang dapat secara otomatis menghasilkan sinyal perdagangan dan melakukan pembelian dan penjualan berdasarkan sinyal.

Prinsip Strategi

Strategi ini didasarkan pada beberapa poin utama:

  1. Menggunakan garis rata-rata hull untuk menentukan arah tren pasar
  2. Menggunakan EMA untuk menilai tren jangka pendek dan menengah
  3. Menggunakan saluran entitas K untuk menentukan posisi SUPPORT/RESISTANCE
  4. Menggunakan SECURITY berdurasi panjang untuk membuat keputusan

Secara khusus, strategi akan memetakan garis rata-rata Hull, EMA 13 siklus dan EMA 21 siklus. Menggunakan EMA yang kosong untuk menentukan arah tren jangka pendek dan menengah. Kemudian menggabungkan garis rata-rata Hull untuk menentukan tren periode yang lebih panjang.

Sebelum menyesuaikan posisi, strategi akan merujuk pada harga tertinggi dan harga terendah dalam saluran entitas yang sesuai dengan level dukungan dan resistensi. Ini dapat menghindari sinyal perdagangan di area harga kunci.

Akhirnya, strategi ini akan memanggil 60 siklus harga pembukaan dan harga penutupan, menghasilkan sinyal beli ketika harga penutupan melewati harga pembukaan, menghasilkan sinyal jual ketika harga penutupan melewati harga pembukaan. Dengan demikian, seluruh logika perdagangan selesai.

Analisis Keunggulan Strategi

Keuntungan terbesar dari strategi ini adalah kombinasi dari pembelajaran mesin dan analisis teknis untuk menghasilkan skema perdagangan otomatis yang logis, parameter yang dapat disesuaikan, dan mudah dioperasikan.

  1. Kombinasi multi-indikator untuk meningkatkan akurasi sinyal

Strategi ini tidak hanya mengandalkan satu atau dua indikator, tetapi secara komprehensif mempertimbangkan beberapa faktor seperti tren, resistensi dukungan, dan terobosan harga, yang secara signifikan meningkatkan keandalan dan akurasi sinyal.

  1. Pengaturan parameter yang fleksibel

Panjang garis rata-rata hull, jumlah siklus EMA, dan jumlah siklus penutupan penutupan terbuka dapat disesuaikan dengan parameter, sehingga strategi dapat beradaptasi secara fleksibel dengan lingkungan pasar yang berbeda.

  1. Sinyal perdagangan otomatis

Sinyal perdagangan berdasarkan indikator dan harga silang dapat memicu pembelian dan penjualan secara otomatis, tanpa penilaian manual, mengurangi kesulitan operasi.

  1. Pembuatan visual

Grafik dalam strategi dapat dengan jelas menunjukkan struktur pasar, status tren dan harga kunci, secara intuitif menunjukkan dasar penilaian strategi.

Analisis risiko

Meskipun strategi ini telah dioptimalkan secara multi-dimensi, masih ada beberapa risiko yang mungkin terjadi:

  1. Tidak dapat dilacak.

Dalam situasi harga yang sangat berfluktuasi, indikator mungkin akan gagal atau tertunda, sehingga strategi tidak dapat melacak perubahan harga secara tepat waktu. Parameter harus dioptimalkan untuk menyesuaikan diri dengan situasi ini.

  1. Kesalahan sinyal

Berdasarkan indikator dan model sinyal perdagangan, lebih atau kurang akan ada beberapa misreporting atau missreporting. Ini perlu untuk meningkatkan kualitas sinyal dengan menggabungkan lebih banyak sinyal tambahan.

  1. Risiko MIX multi ruang

Strategi melakukan lebih banyak shorting pada saat yang sama, jika penilaian salah, risiko kerugian dua arah akan terjadi. Hal ini memerlukan pemotongan kerugian yang ketat atau menurunkan posisi untuk mengendalikan.

  1. Risiko yang Terlalu Optimal

Pengaturan parameter terlalu rumit dan berisiko terlalu dioptimalkan. Hal ini memerlukan penyederhanaan sistem dan pengendalian jumlah kombinasi parameter.

Arah optimasi strategi

Strategi ini memiliki beberapa ruang untuk pengoptimalan, terutama dari beberapa aspek berikut:

  1. Tambahkan lebih banyak sinyal indikator

Selain indikator yang sudah ada, juga dapat diperkenalkan lebih banyak indikator tambahan, seperti saluran BOLL, indikator KD, dan lain-lain, untuk memperkaya dasar penilaian sistem.

  1. Menggunakan Deep Learning Model

Menggunakan indikator sederhana sebagai fitur, melatih model pembelajaran mendalam seperti LSTM untuk meningkatkan kualitas sinyal.

  1. Tergabung dengan data dasar

Menambahkan data makroekonomi, informasi kebijakan dan faktor-faktor dasar lainnya untuk mengoptimalkan keputusan siklus besar.

  1. Manajemen Risiko dan Posisi

Memperkenalkan strategi stop loss, menyesuaikan ukuran posisi secara dinamis sesuai dengan volatilitas keuntungan strategi, dan mengendalikan risiko secara ketat.

Meringkaskan

Strategi ini mengintegrasikan beberapa indikator seperti tren, dukungan, resistensi, dan terobosan, dan menggunakan metode pembelajaran mesin untuk mewujudkan skema perdagangan kuantitatif otomatis yang terbuka. Ini memiliki keuntungan seperti keragaman portofolio indikator, kemampuan pengaturan parameter, dan otomatisasi sinyal, tetapi juga menghadapi beberapa masalah seperti tracking bias, kesalahan sinyal, dan MIX banyak ruang.

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

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