Chiến lược này tạo ra các tín hiệu giao dịch dựa trên sự chéo chéo của trung bình động 9 ngày và 15 ngày, kết hợp với một số mẫu nến thông thường trong ngày. Nó sẽ dài khi MA nhanh vượt qua trên MA chậm và đáp ứng các điều kiện góc và mẫu nến nhất định. Nó sẽ ngắn khi MA nhanh vượt qua dưới MA chậm.
Chiến lược này kết hợp các chỉ số trung bình động và các mô hình nến trong ngày để lọc hiệu quả tiếng ồn và làm cho tín hiệu giao dịch đáng tin cậy hơn. Đặc biệt với ngưỡng góc, nó đảm bảo có đủ đà thay đổi giá trước khi tạo tín hiệu, tránh các tín hiệu sai không cần thiết. Ngoài ra, mức dừng lỗ và lấy lợi nhuận có thể tự động hạn chế lỗ tối đa và rút lợi nhuận.
Là một chỉ số theo xu hướng, đường trung bình động có thể nắm bắt xu hướng giá trung hạn đến dài hạn. Các ngọn nến trong ngày phản ánh sự so sánh sức mạnh của những người tham gia thị trường ngắn hạn. Sử dụng chúng cùng nhau có thể có tác động giao dịch trên các khung thời gian khác nhau. Chiến lược này tích hợp các điểm mạnh của nhiều chỉ số và nên đạt được hiệu suất tốt trong giao dịch thực tế.
Những rủi ro chính của chiến lược này bao gồm:
Rủi ro đảo ngược xu hướng. Mức trung bình động không thể đưa ra cảnh báo sớm về sự đảo ngược xu hướng. Giữ các vị trí ở đây có thể dẫn đến tổn thất lớn. Rủi ro này có thể được kiểm soát thông qua lệnh dừng lỗ nghiêm ngặt.
Rủi ro tối ưu hóa tham số. Các thị trường khác nhau thích nghi khác nhau với các thiết lập tham số. Việc áp dụng trực tiếp một tập các tham số mà không điều chỉnh có thể dẫn đến tổn thất. Các tham số thích hợp cần phải được tìm thấy thông qua backtesting và giao dịch giấy.
Nói chung, chiến lược này có thể tạo ra một số tín hiệu sai và theo đuổi rủi ro cao / thấp mà không xem xét điều kiện thị trường.
Các khía cạnh sau đây của chiến lược này có thể được cải thiện thêm:
Thêm phân tích các xu hướng chính, ví dụ: xác nhận các kênh trung hạn / dài hạn, để tránh giao dịch chống lại xu hướng.
Kết hợp phân tích cơ bản. Chọn cổ phiếu với triển vọng và lợi nhuận cải thiện để cải thiện tỷ lệ chiến thắng.
Kiểm tra các thông số dừng lỗ / lấy lợi nhuận. Đặt tỷ lệ giảm giá sổ lệnh dựa trên kết quả backtest để đạt được tỷ lệ rủi ro-lợi nhuận tối ưu.
Các hướng tối ưu hóa trên sẽ cải thiện đáng kể cả lợi nhuận và sự ổn định của chiến lược này.
Tóm lại, chiến lược này kết hợp các điểm mạnh của đường trung bình động và các mẫu nến được chọn. Các tín hiệu giao dịch được tạo ra với các tiêu chí tương đối nghiêm ngặt, lọc ra nhiều tiếng ồn và cải thiện chất lượng tín hiệu.
Bước tiếp theo là cải thiện hơn nữa tỷ lệ thắng và lợi nhuận thông qua tối ưu hóa tham số. Thêm thêm các chỉ số cũng có thể tăng cường độ bền. Với các thử nghiệm giao dịch giấy nghiêm ngặt, chiến lược này có tiềm năng trở thành một công cụ định lượng hiệu quả tạo ra lợi nhuận ổn định.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true) // Define input parameters fast_length = input(9, "Fast MA Length") slow_length = input(15, "Slow MA Length") stop_loss_percent = input(0.25, "Stop Loss (%)") target_percent = input(0.25, "Target (%)") angle_threshold = input(30, "Angle Threshold (degrees)") // Calculate moving averages fast_ma = sma(close, fast_length) slow_ma = sma(close, slow_length) // Define candlestick patterns is_pin_bar() => pin_bar = abs(open - close) > 2 * abs(open[1] - close[1]) high_tail = max(open, close) - high > abs(open - close) * 1.5 low_tail = low - min(open, close) > abs(open - close) * 1.5 pin_bar and high_tail and low_tail is_marubozu() => marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75 no_upper_shadow = high == max(open, close) no_lower_shadow = low == min(open, close) marubozu and no_upper_shadow and no_lower_shadow is_full_body() => full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95 full_body // Plot moving averages plot(fast_ma, color=color.blue, title="Fast MA") plot(slow_ma, color=color.red, title="Slow MA") // Calculate angle of slow moving average ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159)) // Generate buy/sell signals based on angle condition and candlestick patterns buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body()) sell_signal = crossunder(fast_ma, slow_ma) // Calculate stop-loss and target levels stop_loss_level = close * (1 - stop_loss_percent / 100) target_level = close * (1 + target_percent / 100) // Execute trades based on signals with stop-loss and target strategy.entry("Buy", strategy.long, when=buy_signal) strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level) // Plot buy/sell signals on chart (optional) plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Plot angle line hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)