Chiến lược chéo của đường trung bình động và mức kháng cự đột phá

Tác giả:ChaoZhang, Ngày: 2024-01-31 14:34:16
Tags:

img

Tổng quan

Chiến lược này tích hợp các kỹ thuật của đường chéo trung bình động và mức độ kháng cự để thiết lập tín hiệu mua và bán cho giao dịch tự động. Khi đường trung bình động ngắn hạn vượt qua đường trung bình động trung hạn từ dưới, và giá cổ phiếu vượt qua mức kháng cự, một tín hiệu mua được tạo ra. Chiến lược đặt lợi nhuận tăng 15% và giảm 3% để kiểm soát rủi ro. Chiến lược giao dịch định lượng trưởng thành này có thể tự động xác định xu hướng thị trường và vào vị trí khi các tín hiệu kỹ thuật xuất hiện, với quản lý rủi ro thích hợp.

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

Chiến lược tạo ra các tín hiệu giao dịch chủ yếu dựa trên các chỉ số và đánh giá kỹ thuật sau:

  1. Kỹ thuật chéo trung bình động: Trung bình động đơn giản 20 ngày và 44 ngày được tính toán. Khi SMA 20 ngày vượt qua đường 44 ngày, nó được đánh giá là thị trường đang có xu hướng tăng, tạo ra tín hiệu mua.

  2. Kỹ thuật phá vỡ mức kháng cự: Mức giá mà giá cổ phiếu đã nhiều lần đạt đến nhưng không thể vượt qua được gọi là mức kháng cự. Bước qua chúng cho thấy giá đang bước vào xu hướng tăng mới. Chiến lược này coi một sự phá vỡ trên 0,7% của mức đóng trước đó là một sự phá vỡ kháng cự.

  3. RSI Oscillator: Chỉ số sức mạnh tương đối, một chỉ số động lực để xác định các điều kiện mua quá mức và bán quá mức. Chiến lược này sử dụng giá trị RSI 14 ngày trên 50 như một tín hiệu mua quá mức.

  4. Phân tích khối lượng: khối lượng vượt quá mức trung bình 10 ngày trước thường cho thấy sự quan tâm mua hoặc bán mạnh hơn và đà chuyển động giá.

  5. Tín hiệu mua: Được kích hoạt khi SMA ngắn vượt qua SMA trung bình, với giá trị RSI mua quá mức và cao hơn khối lượng giao dịch trung bình, cho thấy xu hướng tăng.

  6. Các tín hiệu bán: 15% lợi nhuận từ giá nhập cảnh, 3% dừng lỗ.

Chiến lược giao dịch định lượng trưởng thành này tích hợp nhiều phương pháp phân tích kỹ thuật để xác định cấu trúc và xu hướng thị trường, tự động tạo ra các tín hiệu giao dịch trong quá trình hình thành xu hướng, với quản lý rủi ro thích hợp.

Ưu điểm của Chiến lược

  1. Bắt được xu hướng thị trường trơn tru với kỹ thuật trung bình động.

  2. Tránh mở các vị trí trong khi phá vỡ sai bằng cách kết hợp phân tích khối lượng.

  3. Kiểm soát rủi ro hiệu quả bằng cách thiết lập stop-loss và take-profit, tối ưu hóa tỷ lệ rủi ro-lợi nhuận.

  4. Nhìn chung, đánh giá cấu trúc thị trường tuyệt vời, các quy tắc giao dịch nghiêm ngặt và kiểm soát rủi ro làm cho đây là một chiến lược giao dịch định lượng mạnh mẽ.

Rủi ro của chiến lược

  1. Hệ thống trung bình di chuyển kép có thể nhạy cảm với điều chỉnh tham số cho các khoảng thời gian khác nhau.

  2. Các hệ thống theo xu hướng không thể phản ứng nhanh chóng với các sự kiện cơ bản đột ngột, phải đối mặt với rủi ro dừng lỗ.

  3. Mặc dù đã thiết lập lệnh dừng lỗ, tần suất giao dịch cao dẫn đến số lượng lệnh dừng lỗ không thể tránh khỏi, dẫn đến mức lợi nhuận không đồng đều.

  4. Các tín hiệu từ các chỉ số kỹ thuật thường tụt lại phía sau các điểm đảo ngược tốt nhất của thị trường.

Hướng dẫn tối ưu hóa

  1. Tối ưu hóa các tham số như độ dài trung bình chuyển động, mục tiêu dừng lỗ / lợi nhuận bằng các phương pháp điều chỉnh tham số để tìm tối ưu.

  2. Thêm các chỉ số kỹ thuật khác như Bollinger Bands để phát hiện phạm vi, MACD để phát hiện sự khác biệt v.v. để cải thiện độ chính xác tín hiệu.

  3. Bao gồm các tín hiệu cơ bản và các tín hiệu do sự kiện để tránh dừng lỗ do tin tức tiêu cực.

  4. Tối ưu hóa quản lý tiền bằng số lượng cố định, phương pháp tỷ lệ phần trăm cố định để kiểm soát rủi ro theo thương mại.

Kết luận

Chiến lược này thể hiện hoạt động trơn tru, phán đoán chính xác và các quy tắc giao dịch nghiêm ngặt, đại diện cho một trong những kỹ thuật giao dịch định lượng hiệu quả hơn. Nhưng phân tích kỹ thuật một mình có những hạn chế trong việc đọc thị trường, vì vậy những cải tiến hơn nữa nằm trong việc kết hợp nhiều chỉ số và tín hiệu cơ bản / sự kiện, tối ưu hóa mức dừng lỗ / lợi nhuận và cơ chế quản lý tiền. Tóm lại, chiến lược này đã đạt đến mức cao trong số các chiến lược phân tích kỹ thuật, nhưng nên hướng tới các chiến lược giao dịch theo chu kỳ cơ bản / sự kiện trong các bước phát triển tiếp theo.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Advanced Strategy with Conditional Stop Loss", overlay=true)

// Parameters
ma_length_20 = 20
ma_length_44 = 44
ma_length_100 = 100
rsi_length = 14
volume_length = 10
profit_target = 1.15 // 15% above the buy price
stop_loss_target = 0.97 // 3% below the buy price
wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met

// Indicators
moving_average_20 = ta.sma(close, ma_length_20)
moving_average_44 = ta.sma(close, ma_length_44)
moving_average_100 = ta.sma(close, ma_length_100)
rsi = ta.rsi(close, rsi_length)
volumeAvg = ta.sma(volume, volume_length)

// Variables to manage the wait period after a sell
var int last_sell_candle = 0

// Update last sell candle
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
    last_sell_candle := bar_index

// Trend identification
uptrend = close > moving_average_20
above_ma20_by_1_percent = close > moving_average_20 * 1.01
ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44)
close_near_high = (close >= high * 0.993) and (close <= high)

// Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter)
can_buy_after_cross = ma_cross and close > high[1]
can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles
buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high

// Entry
if (buy_condition and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long)

// Exit conditions
if (strategy.position_size > 0)
    // Profit target
    profit_level = strategy.position_avg_price * profit_target
    strategy.exit("Take Profit", "Buy", limit=profit_level)

    // Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price
    stop_loss_level = strategy.position_avg_price * stop_loss_target
    if (low < stop_loss_level)
        strategy.close("Buy", comment="Stop Loss")

// Plotting
plot(moving_average_20, color=color.green, title="20-Day Moving Average")
plot(moving_average_44, color=color.blue, title="44-Day Moving Average")
plot(moving_average_100, color=color.red, title="100-Day Moving Average")


Thêm nữa