Chiến lược động lượng SMA kép


Ngày tạo: 2024-01-17 15:05:08 sửa đổi lần cuối: 2024-01-17 15:05:08
sao chép: 1 Số nhấp chuột: 629
1
tập trung vào
1617
Người theo dõi

Chiến lược động lượng SMA kép

Tổng quan

Chiến lược động lượng SMA kép là một chiến lược giao dịch dựa trên phân tích kỹ thuật, nó tạo ra tín hiệu mua và bán dựa trên hai chỉ số trung bình di chuyển đơn giản (SMA). Nó nhằm mục đích nắm bắt các động lượng giá ngắn hạn đến trung hạn của cổ phiếu.

Chiến lược Logic

Chiến lược này sử dụng hai chỉ số SMA, tức là cửa sổ thời gian ngắn và dài - SMA nhanh (dài 9 chu kỳ) và SMA chậm (dài 45 chu kỳ).

Khi giá đóng cửa của cổ phiếu phá vỡ đường trung bình của SMA nhanh và SMA chậm, biểu thị bắt đầu có xu hướng tăng, chiến lược này tạo ra tín hiệu mua / mua nhiều đầu vào thời điểm này và vào vị trí nhiều đầu.

Khi giá giảm xuống hai đường SMA, một xu hướng giảm sẽ bắt đầu, và chiến lược này sẽ tạo ra một tín hiệu bán / bán và đi vào vị trí bán.

Mức dừng lỗ động được thiết lập là điểm cao nhất của ngày trước ((thương mại đối với đầu trắng) và điểm thấp nhất của ngày trước ((thương mại đối với nhiều đầu).

Phân tích lợi thế

Những ưu điểm chính của chiến lược này là:

  1. Kết hợp sử dụng SMA ngắn hạn và dài hạn để nắm bắt xu hướng trung hạn mới xuất hiện
  2. Đặt điểm dừng thích ứng có thể làm giảm rủi ro và giữ lợi nhuận hoạt động
  3. Dễ hiểu và dễ thực hiện
  4. Các hoạt động nổi bật trong các hoạt động xu hướng

Tuy nhiên, giống như tất cả các chiến lược phân tích kỹ thuật, tín hiệu thường xuyên bị lỗi trong tình huống chấn động. Có thể cải thiện bằng cách thêm các chỉ số khác như RSI.

Phân tích rủi ro

Những rủi ro chính của chiến lược này là:

  1. Dễ bị ảnh hưởng bởi sự dao động và tín hiệu sai: Chỉ phụ thuộc vào giao SMA, tín hiệu tùy ý có thể xuất hiện trong tình huống cân bằng hoặc dao động, dẫn đến chi phí giao dịch không cần thiết. Điều này có thể được giảm bớt bằng cách kết hợp với các chỉ số khác như RSI.

  2. vulnerable to sudden trend reversals: Một sự đảo ngược nhanh chóng sau khi vào thị trường có thể nhanh chóng phá vỡ điểm dừng. Bạn có thể giảm rủi ro này bằng cách tối ưu hóa chiều dài SMA hoặc thêm các bộ lọc khác.

  3. Rủi ro quá phù hợp của các tham số tối ưu hóa: Tối ưu hóa rộng rãi cho chiều dài SMA và các tham số khác có thể dẫn đến hiệu suất đĩa cứng kém. Cần kiểm tra lại một cách vững chắc trong một khoảng thời gian dài.

Hướng tối ưu hóa

Chiến lược này có thể được tăng cường bằng cách:

  1. Thêm các chỉ số khác như RSI để xác nhận thêm để tăng độ chính xác của tín hiệu
  2. Sử dụng phương pháp dừng động như ATR hoặc Hạ lỗ trên không để thích ứng tốt hơn với biến động của thị trường
  3. Tối ưu hóa độ dài SMA dựa trên biến động lịch sử và phạm vi thời gian giao dịch của các cổ phiếu khác nhau
  4. Thêm các quy tắc quản lý tiền và vị trí hợp lý để tối đa hóa lợi nhuận và hạn chế rút tiền

Tóm tắt

Nói tóm lại, chiến lược động lực hai SMA cung cấp một cách để bắt trực tiếp các xu hướng ngắn đến trung hạn. Mặc dù phương pháp của nó rất cơ bản, nhưng việc thêm các bộ lọc bổ sung, dừng động và tối ưu hóa thận trọng có thể giúp cải thiện lợi nhuận điều chỉnh rủi ro của nó.

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

//@version=5
strategy("SMA Crossover Strategy", overlay=true)

// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")

// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)

// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)

// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)

// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na

strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)

strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)