
Chiến lược này kết hợp lý thuyết biến động Elliott và chỉ số đường trung bình 200 ngày để thực hiện giao dịch tự động theo dõi xu hướng và quay trở lại lợi nhuận. Lập luận cơ bản của nó là xác định hướng xu hướng khi mô hình biến động tạo thành Elliott 5 sóng xuất hiện và phát tín hiệu giao dịch với đường trung bình 200 ngày làm điều kiện hỗ trợ.
Lý thuyết sóng Elliott phân chia biến động giá của thị trường thành 5 làn sóng, sóng kỳ lạ là sóng động lực, sóng chẵn là sóng quay trở lại. Khi các điểm cao của Wave1, Wave3 và Wave5 lần lượt tăng và Wave2 và Wave4 lần lượt quay trở lại hiệu quả, thì chiến lược này được coi là một sự kết hợp sóng tăng, thuộc về thị trường đa đầu. Ngược lại, khi các điểm thấp của Wave1, Wave3 và Wave5 lần lượt giảm và Wave2 và Wave4 lần lượt quay trở lại hiệu quả, được coi là một sự kết hợp sóng trống, thuộc về thị trường trống, thì chiến lược này được coi là trống.
Chiến lược này cũng giới thiệu chỉ số đường trung bình 200 ngày như một điều kiện phán đoán phụ trợ. Chỉ khi phán đoán kết hợp sóng đa đầu hoặc sóng trống, người mua có thể làm nhiều hơn khi giá mua vào cuối ngày vượt quá đường trung bình 200 ngày phía trên và người mua vào cuối ngày giảm xuống dưới đường trung bình 200 ngày.
Sau khi phát tín hiệu tháo dỡ nhiều hơn, hãy rút khỏi vị trí bằng năm sóng ngược lại.
Chiến lược này tích hợp các ưu điểm của lý thuyết biến động và các chỉ số theo dõi xu hướng, hoạt động tốt trong việc nắm bắt các điểm mấu chốt của thị trường và kiểm soát rủi ro giao dịch. Tuy nhiên, hiệu quả trong các tình huống phức tạp vẫn cần được tối ưu hóa vì chỉ xem xét thông tin giá.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Elliott Wave Strategy with 200 SMA", overlay=true)
// Elliott Wave Strategy
wave1High = high[1]
wave1Low = low[1]
wave2High = high[2]
wave2Low = low[2]
wave3High = high[3]
wave3Low = low[3]
wave4High = high[4]
wave4Low = low[4]
wave5High = high[5]
wave5Low = low[5]
bullishWavePattern = wave3High > wave1High and wave4Low > wave2Low and wave5High > wave3High
bearishWavePattern = wave3Low < wave1Low and wave4High < wave2High and wave5Low < wave3Low
enterLong = bullishWavePattern and close > sma(close, 200)
exitLong = bearishWavePattern
enterShort = bearishWavePattern and close < sma(close, 200)
exitShort = bullishWavePattern
// Plotting 200 SMA
sma200 = sma(close, 200)
plot(sma200, color=color.blue, title="Moving Average 200")
// Displaying "Razer Moving 200" message on chart
if (enterLong)
label.new(bar_index, low, "Long on Moving 200", color=color.green, textcolor=color.white)
if (enterShort)
label.new(bar_index, high, "Short on Moving 200", color=color.red, textcolor=color.white)
if (enterLong)
strategy.entry("Long", strategy.long)
if (exitLong)
strategy.close("Long")
if (enterShort)
strategy.entry("Short", strategy.short)
if (exitShort)
strategy.close("Short")