
Chiến lược này sử dụng lý thuyết đường thẳng để xây dựng hệ thống giao dịch lưới, đánh giá xu hướng thị trường thông qua các kết hợp đường thẳng JMA của nhiều tham số khác nhau và mở giao dịch lưới tại điểm biến xu hướng nhằm lấy lợi nhuận từ chuyển đổi xu hướng đường dài trong thị trường.
Sử dụng đường trung bình JMA từ 1 đến 20 chu kỳ khác nhau để tạo thành một kết hợp đường trung bình để xác định xu hướng thị trường. Khi đường trung bình ngắn hạn cao hơn đường trung bình dài hạn, nó được đánh giá là xu hướng tăng, ngược lại, xu hướng giảm.
Khởi động giao dịch lưới tại điểm chuyển hướng, tức là đường trung bình ngắn đi từ trên xuống đường trung bình dài hoặc đi từ dưới lên đường trung bình dài. Xây dựng đơn vị trống dần dần trong xu hướng tăng; Xây dựng nhiều đơn vị dần dần trong xu hướng giảm.
Có thể chọn lọc theo màu sắc thực thể của K-line, nếu được bật, chỉ mua trên đường K-line đỏ và bán trên đường K-line xanh, nếu không, không xem xét màu sắc của K-line và chỉ giao dịch khi xu hướng đảo ngược.
Phương pháp dừng lỗ là theo dõi dừng lỗ hoặc dừng lỗ khi hết hạn. Hết hạn là khi chiến lược kết thúc chu kỳ hoạt động và thanh toán tất cả các vị trí.
Sử dụng hệ thống đường trung bình để đánh giá xu hướng, bạn có thể đánh giá hiệu quả các bước chuyển đổi đường dài trong thị trường.
Giao dịch lưới có thể lấy lợi nhuận từ thị trường chấn động khi không có xu hướng rõ ràng. Ngoài ra, có thể thiết lập lỗ dừng để kiểm soát rủi ro.
Các tham số đường trung bình của JMA có thể được tùy chỉnh, có thể được tối ưu hóa cho các chu kỳ khác nhau và có tính linh hoạt cao.
Có thể chọn lọc theo màu sắc của thực thể K-line để tránh bị lừa dối bởi đột phá giả.
Trong một thị trường có nhiều biến động và không có xu hướng rõ ràng, rủi ro dừng lỗ là lớn hơn.
Hệ thống trung bình có thể dẫn đến tín hiệu giao dịch bị lỗi.
Nếu K-Line được kích hoạt, bạn có nguy cơ bỏ lỡ một số cơ hội giao dịch.
Nếu thiết lập khoảng cách lưới quá lớn, bạn sẽ không thể có đủ lợi nhuận; nếu quá nhỏ, bạn sẽ có quá nhiều vị trí và áp lực chi phí.
Các tham số có thể được thử nghiệm với nhiều kết hợp hơn để tìm ra kết hợp trung bình JMA phù hợp hơn với các giống khác nhau.
Filter có thể được kết hợp với các chỉ số khác, như kênh BOLL, KD, v.v., để cải thiện chất lượng tín hiệu.
Các tham số có thể tối ưu hóa cấu hình giao dịch lưới, chẳng hạn như khoảng cách lưới, số lượng kho được xây dựng.
Có thể xem xét nhiều loại dừng lỗ hơn, chẳng hạn như dừng nhảy, dừng theo dõi, v.v.
Chiến lược này sử dụng lý thuyết đường trung bình của JMA để đánh giá xu hướng, mở giao dịch lưới tại điểm biến đổi. Bạn có thể nhận được lợi nhuận từ chuyển đổi xu hướng đường dài trong thị trường. Bạn có thể nhận được hiệu suất chiến lược tốt hơn bằng cách tối ưu hóa tham số.
/*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)