Strategi Perdagangan Rata-rata Pergerakan Ganda Momentum


Tanggal Pembuatan: 2023-12-01 18:13:21 Akhirnya memodifikasi: 2023-12-01 18:13:21
menyalin: 1 Jumlah klik: 568
1
fokus pada
1619
Pengikut

Strategi Perdagangan Rata-rata Pergerakan Ganda Momentum

Ringkasan

Strategi perdagangan linier dinamis adalah strategi perdagangan garis pendek yang memanfaatkan pergerakan harga dan indikator tren secara bersamaan. Strategi ini menggunakan berbagai indikator seperti harga penutupan, harga pembukaan, saluran harga, dan RSI cepat untuk menghasilkan sinyal perdagangan. Strategi ini akan membangun posisi panjang atau pendek ketika ada lonjakan harga atau sinyal indikator.

Prinsip Strategi

Strategi ini didasarkan pada beberapa indikator penilaian:

  1. Saluran harga: menghitung harga tertinggi dan terendah dari 30 garis K terakhir, untuk mendapatkan ruang lingkup saluran. Ketika harga penutupan lebih tinggi dari garis tengah saluran dianggap sebagai bullish, dan ketika harga penutupan lebih rendah dari garis tengah saluran dianggap sebagai bearish.

  2. RSI cepat: menghitung nilai RSI dari 2 garis K, RSI di bawah 25 dianggap sebagai oversold, di atas 75 dianggap sebagai overbought.

  3. Penilaian Garis Sinar: Menghitung ukuran entitas dari 2 garis K terakhir. 2 Garis Sinar dianggap sebagai sinyal turun, 2 Garis Sinar dianggap sebagai sinyal naik.

  4. Kondisi Stop Loss: Stop loss akan dipaksakan jika kerugian mencapai proporsi tertentu.

Berdasarkan beberapa indikator penilaian di atas, strategi dapat menguasai tren, momentum, dan overbought dan oversold sekaligus, menghasilkan sinyal perdagangan di titik balik, yang merupakan strategi perdagangan garis pendek khas.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan:

  1. Menggunakan berbagai indikator untuk menilai, meningkatkan akurasi sinyal. Satu indikator mudah menghasilkan sinyal palsu, kombinasi dapat saling diverifikasi, memfilter beberapa noise.

  2. RSI cepat lebih sensitif dan dapat menangkap turning point tepat waktu. RSI biasa mudah terlambat dan kehilangan waktu masuk yang optimal.

  3. Parameter strategi telah dioptimalkan melalui beberapa kali pengujian untuk mencapai stabilitas yang tinggi. Kinerja yang dapat diandalkan dalam berbagai varietas dan periode waktu.

  4. Mekanisme penghentian kerugian otomatis mengendalikan kerugian. Tidak akan dilacak tanpa batas, dapat mengurangi kerugian yang melebihi perkiraan.

Analisis risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. Penetapan parameter saluran harga yang tidak tepat dapat memicu kejutan. Jika jarak saluran dipilih terlalu kecil, kemungkinan terjadinya terobosan palsu.

  2. Periode kepemilikan posisi bisa terlalu lama. Periode kepemilikan posisi akan lebih lama dari yang diharapkan ketika tren sangat kuat.

  3. Stop loss yang tidak tepat juga akan memperbesar kerugian. Parameter ini harus diatur dengan hati-hati, terlalu besar atau terlalu kecil tidak menguntungkan.

Untuk risiko di atas, dapat dihindari dan dikurangi dengan menyesuaikan parameter saluran, mengoptimalkan waktu masuk, dan secara dinamis menyesuaikan titik berhenti.

Arah optimasi

Strategi ini juga memiliki beberapa hal yang dapat dioptimalkan:

  1. Menambahkan algoritma pembelajaran mesin untuk mengoptimalkan parameter secara otomatis. Strategi yang lebih cerdas dan adaptif dapat dilatih.

  2. Menggabungkan lebih banyak sumber data, seperti informasi berita, untuk meningkatkan keputusan perdagangan. Ini dapat meningkatkan akurasi sinyal.

  3. Mengembangkan mekanisme manajemen posisi dinamis, yang secara otomatis menyesuaikan posisi sesuai dengan kondisi pasar. Hal ini dapat mengontrol risiko.

  4. Meningkatkan perdagangan futures, memperluas jangkauan strategi. Ini dapat menghasilkan keuntungan mutlak yang lebih tinggi.

Meringkaskan

Strategi ini mengintegrasikan penggunaan berbagai cara teknis, seperti harga terobosan, sinyal indikator, dan stop loss. Strategi ini memiliki kinerja yang baik dan stabilitas yang tinggi dalam proses retrospeksi dan real-time. Dengan perkembangan teknologi algoritma dan data, ruang strategi masih sangat besar dan layak untuk terus dioptimalkan dan diperbaiki.

Kode Sumber Strategi
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Price Channel Strategy v1.2", shorttitle = "Price Channel str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 100000, title = "capital, %")
uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")
usersi = input(true, defval = true, title = "Use RSI strategy")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel Period")
showcl = input(true, defval = true, title = "Price Channel")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
src = close

//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
trend = low > center ? 1 : high < center ? -1 : trend[1]
col = showcl ? blue : na
col2 = showcl ? black : na
plot(lasthigh, color = col2, linewidth = 2)
plot(lastlow, color = col2, linewidth = 2)
plot(center, color = col, linewidth = 2)

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Signals
body = abs(close - open)
abody = sma(body, 10)
up1 = rbars and close > center and uset
dn1 = gbars and close < center and uset
up2 = close <= lastlow and close < open and usect
dn2 = close >= lasthigh and close > open and usect
up3 = fastrsi < 25 and close > center and usersi
dn3 = fastrsi > 75 and close < center and usersi
exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2)
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Trading
if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()