Chiến lược theo xu hướng dựa trên đường trung bình động động


Ngày tạo: 2024-01-02 10:44:53 sửa đổi lần cuối: 2024-01-02 10:44:53
sao chép: 0 Số nhấp chuột: 559
1
tập trung vào
1621
Người theo dõi

Chiến lược theo xu hướng dựa trên đường trung bình động động

Tổng quan

Chiến lược này dựa trên chỉ số đường trung bình động, theo dõi xu hướng giá theo thời gian thực, phát ra tín hiệu giao dịch bằng cách phá vỡ đường trung bình. Ưu điểm của chiến lược là thiết lập tham số đơn giản, tín hiệu phán đoán rõ ràng, phù hợp cho các vị trí đường trung và dài.

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

Chiến lược này sử dụng các chỉ số đường trung bình động, bao gồm nhiều loại đường trung bình như ALMA, EMA, SMA. Nguyên tắc cơ bản là, khi giá vượt qua đường trung bình, hãy làm nhiều hơn; khi giá vượt qua đường trung bình, hãy làm trống.

Cụ thể, chiến lược sử dụng đường trung bình hình thành từ điểm cao thấp, sau đó sử dụng đường trung bình của điểm thấp làm đường tín hiệu đa, và đường trung bình của điểm cao làm đường tín hiệu ngắn. Khi giá đóng cửa cao hơn đường trung bình của điểm thấp, hãy làm nhiều; Khi giá đóng cửa thấp hơn đường trung bình của điểm cao, hãy làm trống.

Bằng cách này, sử dụng chỉ số đường trung bình để xác định xu hướng giá, sau đó kết hợp với nguyên tắc phá vỡ để phát tín hiệu, tạo thành một chiến lược theo dõi xu hướng thực tế đơn giản.

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

  • Sử dụng chỉ số trung bình để đánh giá, thiết lập tham số đơn giản, dễ sử dụng
  • Các quy tắc đánh giá tín hiệu rõ ràng, không tạo ra tín hiệu giả
  • Có thể tự do lựa chọn thuật toán đồng tuyến, linh hoạt đối phó với sự thay đổi của thị trường
  • Các tham số đường trung bình có thể điều chỉnh để phù hợp với xu hướng của các chu kỳ khác nhau
  • Có thể xác minh tín hiệu trong nhiều khung thời gian, tăng độ tin cậy

Rủi ro và giải pháp

  • Chỉ số đường trung bình bị tụt hậu, có thể bỏ lỡ một số cơ hội
    • Giảm thời gian trung bình thích hợp, hoặc sử dụng chỉ số trung bình di chuyển EMA
  • Vận động lớn trong thời gian ngắn, nguy cơ dừng lỗ
    • Giảm mức độ lỗ hổng để đảm bảo có đủ không gian di chuyển
  • Có thể sẽ không dừng lại kịp thời.
    • Kết hợp với các chỉ số khác, tránh theo đuổi những đà tăng và giảm

Tối ưu hóa chiến lược

  • Điều chỉnh thuật toán và tham số theo đặc điểm của các giống khác nhau
  • Tăng khả năng đánh giá các chỉ số phụ, nâng cao hiệu quả chiến lược
  • Thêm hệ thống chống hỏng
  • Đánh giá độ tin cậy tín hiệu trong nhiều khung thời gian
  • Tìm kiếm các tham số tốt hơn kết hợp với công nghệ học máy

Tóm tắt

Chiến lược này sử dụng các chỉ số đường trung bình để xác định xu hướng giá, phát ra tín hiệu giao dịch dựa trên lý thuyết đột phá. Ưu điểm là đơn giản, dễ sử dụng, phù hợp với vị trí dài và trung bình, có thể điều chỉnh thông qua tham số để thích ứng với sự thay đổi của thị trường. Cần chú ý đến việc phòng ngừa rủi ro trong thời gian ngắn và rủi ro trong thời gian dài, có thể được giải quyết bằng cách dừng lỗ.

Mã nguồn chiến lược
/*backtest
start: 2023-12-02 00:00:00
end: 2024-01-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Baseline Strategy - evo", shorttitle="Baseline", overlay=true)

//INPUTS
mat =               input("ALMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "ALMA"])
baseline =          input(55, title="MA Length")
src =               input(ohlc4, title="Closing Source")

offset =            input(0.85, step=0.05, title="Offset (alma only)")
sigma =             input(10, title="Sigma (alma only)")

useCurrentRes =     input(true, title="Use Current Resolution")
resCustom =         input("1440", title="Timeframe")

showsignals =       input(false, title="Show Signals ?")

//BASELINE
baselinehigh = 

 mat=="SMA" ? sma(high,baseline) : 
 mat=="EMA" ? ema(high,baseline) : 
 mat=="WMA" ? wma(high,baseline) : 
 mat=="HMA" ? wma(2*wma(high, baseline/2)-wma(high, baseline), round(sqrt(baseline))) : 
 mat=="VWMA" ? vwma(high,baseline) : 
 mat=="RMA" ? rma(high,baseline) :
 mat=="ALMA" ? alma(high, baseline, offset, sigma) : na

baselinelow = 

 mat=="SMA" ? sma(low,baseline) : 
 mat=="EMA" ? ema(low,baseline) : 
 mat=="WMA" ? wma(low,baseline) : 
 mat=="HMA" ? wma(2*wma(low, baseline/2)-wma(low, baseline), round(sqrt(baseline))) : 
 mat=="VWMA" ? vwma(low,baseline) : 
 mat=="RMA" ? rma(low,baseline) : 
 mat=="ALMA" ? alma(low, baseline, offset, sigma) : na

//RESOLUTION
res =               useCurrentRes ? timeframe.period : resCustom

mtfhigh =           security(syminfo.tickerid, res, baselinehigh)
mtflow =            security(syminfo.tickerid, res, baselinelow)

//PLOTS
plot(mtfhigh, color=color.navy, linewidth=2, transp=0, title="Baseline High")
plot(mtflow, color=color.navy, linewidth=2, transp=0, title="Baseline Low")

long =              src > mtfhigh
short =             src < mtflow

barcolor(long ? #ffe0b2 : short ? #2a2e39 : not long and not short ? #b09e82 : na, title="BaseLine BarColor")

signal = 0
signal := long ? 1 : short ? 2 : nz(signal[1])

plotshape(showsignals ? (signal != signal[1] and long ? mtflow : na) : na, title="Long", location=location.absolute, size=size.small, style=shape.labelup, text="Long", textcolor=color.black, transp=40, color=#00ff00)
plotshape(showsignals ? (signal != signal[1] and short ? mtfhigh : na) : na, title="Short", location=location.absolute, size=size.small, style=shape.labeldown, text="Short", textcolor=color.white, transp=40, color=#ff0000)

alertcondition(signal != signal[1], title="Trend Change !", message="Trend Change !")

if (long)
    strategy.entry("Long", strategy.long)
if (short)
    strategy.entry("Short", strategy.short)