
Strategi ini menggunakan teori rata-rata untuk membangun sistem perdagangan grid, menilai tren pasar melalui kombinasi rata-rata JMA dari berbagai parameter, dan membuka perdagangan grid pada titik pergeseran tren untuk mendapatkan keuntungan dari konversi tren garis panjang di pasar.
Menggunakan 1-20 siklus rata-rata JMA untuk membentuk kombinasi rata-rata, menilai tren pasar. Ketika rata-rata periode pendek lebih tinggi dari rata-rata periode panjang, penilaian sebagai tren naik, sebaliknya, tren turun.
Pada titik perubahan tren, yaitu ketika garis rata-rata pendek melewati garis rata-rata panjang dari atas ke bawah atau dari bawah ke garis rata-rata panjang, bukalah perdagangan grid. Bangun satuan kosong secara bertahap dalam tren naik; Bangun beberapa unit secara bertahap dalam tren turun.
Anda dapat memilih untuk memfilter berdasarkan warna entitas garis K, jika diaktifkan, hanya membeli di garis K merah dan menjual di garis K hijau, jika tidak, tidak mempertimbangkan warna garis K dan hanya berdagang saat perubahan tren.
Stop loss adalah cara yang digunakan untuk melacak stop loss atau expiry stop loss. Stop loss expiry adalah strategi yang digunakan untuk menutup semua posisi pada akhir siklus operasinya.
Menggunakan sistem garis rata untuk menilai tren, dapat secara efektif menilai titik balik pergerakan garis panjang di pasar.
Perdagangan grid dapat mengambil keuntungan dari pasar yang bergoyang ketika tidak ada tren yang jelas. Selain itu, stop loss dapat dikonfigurasi untuk mengendalikan risiko.
Parameter garis rata-rata JMA dapat disesuaikan, dapat dioptimalkan untuk siklus yang berbeda, dan memiliki fleksibilitas yang tinggi.
Anda dapat memilih untuk memfilter atau tidak dengan warna entitas K-line, untuk menghindari kesalahan penembusan palsu.
Risiko stop loss lebih tinggi di pasar yang sangat bergejolak dan tidak memiliki tren yang jelas.
Kesalahan penilaian sistem rata-rata mungkin menyebabkan kesalahan sinyal perdagangan.
Jika Anda mengaktifkan filter K-line, Anda mungkin akan kehilangan beberapa peluang trading.
Jika jarak jaringannya terlalu besar, maka Anda tidak akan mendapatkan keuntungan yang cukup; jika terlalu kecil, maka Anda akan memiliki terlalu banyak posisi dan tekanan biaya yang besar.
Lebih banyak kombinasi parameter yang dapat diuji untuk menemukan kombinasi JMA rata-rata yang lebih cocok untuk berbagai varietas.
Filter dapat dikombinasikan dengan indikator lain, seperti saluran BOLL, KD, dll, untuk meningkatkan kualitas sinyal.
Parameter yang dapat mengoptimalkan konfigurasi perdagangan grid, seperti jarak grid, jumlah gudang yang dibangun, dan sebagainya.
Lebih banyak jenis stop loss yang dapat dipertimbangkan, seperti stop jump, trace stop, dan lain-lain.
Strategi ini menggunakan teori garis rata JMA untuk menilai pembalikan tren, dan membuka perdagangan grid pada titik pembalikan. Anda dapat memperoleh keuntungan dari pembalikan tren garis panjang di pasar. Anda dapat memperoleh kinerja strategi yang lebih baik dengan mengoptimalkan parameter. Secara keseluruhan, strategi ini cocok untuk memegang jangka menengah dan panjang, dan secara bertahap melacak tren untuk mendapatkan keuntungan.
/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=3
strategy(title = "Noro's Fishnet Strategy", shorttitle = "Fishnet str", 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 = 10000, title = "Lot")
usecf = input(false, defval = false, title = "Use Color-filter")
fromyear = input(1900, defval = 1900, 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")
//JMA
jmax(src, len) =>
beta = 0.45*(len-1)/(0.45*(len-1)+2)
alpha = pow(beta, 3)
L0=0.0, L1=0.0, L2=0.0, L3=0.0, L4=0.0
L0 := (1-alpha)*src + alpha*nz(L0[1])
L1 := (src - L0[0])*(1-beta) + beta*nz(L1[1])
L2 := L0[0] + L1[0]
L3 := (L2[0] - nz(L4[1]))*((1-alpha)*(1-alpha)) + (alpha*alpha)*nz(L3[1])
L4 := nz(L4[1]) + L3[0]
L4
ma01 = jmax(close, 10)
ma02 = jmax(close, 20)
ma03 = jmax(close, 30)
ma04 = jmax(close, 40)
ma05 = jmax(close, 50)
ma06 = jmax(close, 60)
ma07 = jmax(close, 70)
ma08 = jmax(close, 80)
ma09 = jmax(close, 90)
ma10 = jmax(close, 100)
ma11 = jmax(close, 110)
ma12 = jmax(close, 120)
ma13 = jmax(close, 130)
ma14 = jmax(close, 140)
ma15 = jmax(close, 150)
ma16 = jmax(close, 160)
ma17 = jmax(close, 170)
ma18 = jmax(close, 180)
ma19 = jmax(close, 190)
ma20 = jmax(close, 200)
trend = 0
trend := ma01 > ma20 ? 1 : ma01 < ma20 ? -1 : trend[1]
col = trend == 1 ? #00FF7F : #DC143C
plot(ma01, transp = 0, color = col)
plot(ma02, transp = 0, color = col)
plot(ma03, transp = 0, color = col)
plot(ma04, transp = 0, color = col)
plot(ma05, transp = 0, color = col)
plot(ma06, transp = 0, color = col)
plot(ma07, transp = 0, color = col)
plot(ma08, transp = 0, color = col)
plot(ma09, transp = 0, color = col)
plot(ma10, transp = 0, color = col)
plot(ma11, transp = 0, color = col)
plot(ma12, transp = 0, color = col)
plot(ma13, transp = 0, color = col)
plot(ma14, transp = 0, color = col)
plot(ma15, transp = 0, color = col)
plot(ma16, transp = 0, color = col)
plot(ma17, transp = 0, color = col)
plot(ma18, transp = 0, color = col)
plot(ma19, transp = 0, color = col)
plot(ma20, transp = 0, color = col)
//Trading
lot = 0.0
lot := strategy.equity / close * capital / 100
if trend == 1 and (close < open or usecf == false)
strategy.entry("Long", strategy.long, needlong ? lot : na)
if trend == -1 and (close > open or usecf == false)
strategy.entry("Short", strategy.short, needshort ? lot : na)