Chiến lược Trailing Moving Average Gap


Ngày tạo: 2023-10-26 16:05:01 sửa đổi lần cuối: 2023-10-26 16:05:01
sao chép: 0 Số nhấp chuột: 700
1
tập trung vào
1617
Người theo dõi

Chiến lược Trailing Moving Average Gap

Bài viết này phân tích chi tiết về chiến lược trượt trung bình di chuyển theo dõi của Noro. Chiến lược này tính toán mức độ lệch của giá đóng với trung bình di chuyển đơn giản, để đánh giá thời gian biến đổi xu hướng thị trường và đạt được mức giá thấp.

Nguyên tắc chiến lược

Chiến lược này đầu tiên tính toán trung bình di chuyển đơn giản 3 ngày sma. Sau đó tính toán tỷ lệ giá đóng cửa gần với sma, sau đó trừ đi 1, để có được một chỉ số ind. Khi ind vượt quá giới hạn tham số mặc định, cho thấy giá đóng cửa đã vượt quá sma rõ rệt, xem xét làm nhiều hơn; khi ind vượt quá giới hạn, cho thấy giá đóng cửa đã thấp hơn sma rất nhiều, xem xét làm trống.

Chiến lược cũng vẽ trục 0, trục giới hạn và trục giới hạn. Các chỉ số ind ở các khu vực khác nhau được tô màu khác nhau để hỗ trợ phán đoán. Khi chỉ số ind đi qua giới hạn hoặc giới hạn, báo hiệu có nhiều hoặc ít.

Khi tạo ra tín hiệu tháo lỗ hoặc tháo lỗ, chiến lược sẽ thanh toán các vị trí nắm giữ ngược lại hướng hiện tại, sau đó mở vị trí tháo lỗ hoặc tháo lỗ. Khi chỉ số ind trở lại giữa trục 0, tất cả các vị trí nắm giữ sẽ được thanh toán.

Lợi thế chiến lược

  1. Sử dụng nguyên tắc nhảy vọt, khi giá xuất hiện rõ ràng rời khỏi đường trung bình di chuyển, hành động ngược lại được thực hiện, điều này khác với theo dõi xu hướng, chiến lược nhảy vọt theo đuổi điểm biến.

  2. Vẽ trục chỉ số, trực quan đánh giá vị trí và đường đi của chỉ số.

  3. Tối ưu hóa logic vị thế bằng phẳng, mở vị trí mới chỉ sau khi bằng phẳng vị trí hiện tại, tránh giữ vị trí ngược không cần thiết.

  4. Thiết lập khoảng thời gian giao dịch để tránh các vị trí qua đêm không cần thiết.

  5. Cho phép thiết lập các chuyển đổi giao dịch để truy cập vào nhiều không gian ở cả hai bên, chỉ có thể làm nhiều hoặc chỉ có thể làm trống.

Rủi ro chiến lược

  1. Theo dõi chiến lược trung bình di chuyển dễ gây ra nhiều giao dịch thua lỗ và phù hợp với việc giữ vị trí kiên nhẫn.

  2. Mức trung bình di chuyển là một chỉ số phán đoán thiếu linh hoạt và không thể phản ánh sự thay đổi giá cả kịp thời.

  3. Các tham số giới hạn mặc định là tĩnh, cần điều chỉnh theo các giống và môi trường thị trường khác nhau.

  4. Theo dõi trung bình di chuyển không thể nhận ra biến động trong xu hướng, nên được sử dụng kết hợp với các chỉ số dao động.

  5. Cần tối ưu hóa các quy tắc giữ vị trí, chẳng hạn như thiết lập dừng lỗ, dừng; hoặc chỉ bắt trượt khi xu hướng bắt đầu.

Hướng tối ưu hóa chiến lược

  1. Các thiết lập tham số khác nhau có thể được thử nghiệm, chẳng hạn như chu kỳ sma; hoặc sử dụng trung bình di chuyển thích nghi như trung bình di chuyển chỉ số.

  2. Có thể thêm định hướng, góc, v.v. của đường trung bình di chuyển để tránh giao dịch vô nghĩa trong thời gian của nền tảng.

  3. Có thể xem xét kết hợp với chỉ số biến động, chẳng hạn như BRI, để tạm dừng giao dịch khi biến động tăng lên.

  4. Có thể thiết lập các quy tắc quản lý vị trí, chẳng hạn như mở số lượng cố định, gia tăng vị trí, quản lý tiền.

  5. Bạn có thể thiết lập một trạm dừng lỗ hoặc tạm dừng đặt hàng mới khi dừng lỗ tỷ lệ cố định để kiểm soát rủi ro đơn lẻ.

Tóm tắt

Bài viết này phân tích chi tiết về chiến lược trượt trung bình di chuyển theo dõi của Noro. Chiến lược này sử dụng các đặc điểm của trung bình di chuyển nhảy vọt, thiết kế trục chỉ số và vẽ màu sắc để đánh giá thời gian nhập. Đồng thời tối ưu hóa logic thứ tự vị trí bằng phẳng, thiết lập phạm vi thời gian giao dịch.

Mã nguồn chiến lược
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Shift Close Strategy v1.0", shorttitle = "Shift Close 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//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, %")
limit = input(10)
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")

//Shift MA
sma = sma(ohlc4, 3)
ind = ((close / sma) - 1) * 100

//Oscilator
plot(3 * limit, color = na, transp = 0)
plot(limit, color = black, transp = 0)
plot(0, color = black, transp = 0)
plot(-1 * limit, color = black, transp = 0)
plot(-3 * limit, color = na, transp = 0)
plot(ind, linewidth = 3, transp = 0)
col = ind > limit ? red : ind < -1 * limit ? lime : na
bgcolor(col, transp = 0)

//Signals
size = strategy.position_size
up = ind < -1 * limit
dn = ind > limit
exit = ind > -1 * limit and ind < limit

//Trading
lot = 0.0 
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up
    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 dn
    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 exit
    strategy.close_all()