Chiến lược này là một chiến lược giao dịch chéo trung bình di chuyển đơn giản dựa trên chéo trung bình di chuyển ngắn hạn và dài hạn. Nó sử dụng trung bình di chuyển 34 giai đoạn và 89 giai đoạn để quan sát chéo của chúng trong phiên buổi sáng như tín hiệu mua và bán. Khi trung bình di chuyển ngắn hạn vượt qua trên trung bình di chuyển dài hạn từ dưới, một tín hiệu mua được tạo ra. Khi nó vượt qua dưới từ trên, một tín hiệu bán được tạo ra.
Định nghĩa cơ bản của chiến lược này dựa trên sự giao thoa giữa trung bình di chuyển ngắn hạn và dài hạn như là tín hiệu giao dịch. Cụ thể, chiến lược xác định trung bình di chuyển đơn giản ngắn hạn và dài hạn (SMA) 34 giai đoạn và 89 giai đoạn. Nó chỉ quan sát sự giao thoa giữa hai SMA này trong phiên buổi sáng (08:00 - 10:00). Khi SMA ngắn hạn vượt qua trên SMA dài hạn từ dưới, thị trường được coi là có xu hướng tăng, do đó tạo ra tín hiệu mua. Khi SMA ngắn hạn vượt qua dưới SMA dài hạn từ trên, thị trường được coi là có xu hướng giảm, do đó tạo ra tín hiệu bán.
Sau khi nhận được tín hiệu mua hoặc bán, chiến lược sẽ nhập vào một vị trí và đặt điều kiện để thoát khỏi vị trí, đó là kiếm lợi nhuận sau khi nắm giữ một số lượng nến được chỉ định (mục tiêu là 3 nến) kể từ khi nhập vào. Điều này cho phép khóa lợi nhuận một phần và tránh tổn thất thêm.
Cần lưu ý rằng chiến lược chỉ xác định các tín hiệu chéo trong phiên buổi sáng. Điều này là do khung thời gian này có khối lượng giao dịch cao hơn và các tín hiệu thay đổi xu hướng đáng tin cậy hơn. Các khung thời gian khác có biến động giá lớn hơn và dễ tạo ra tín hiệu sai hơn.
Chiến lược có những lợi thế sau:
Sử dụng các quy tắc chéo trung bình động đơn giản và phổ biến, dễ hiểu, phù hợp cho người mới bắt đầu
Chỉ xác định tín hiệu trong buổi sáng khi tín hiệu chất lượng dồi dào, lọc ra các tín hiệu sai trong các khung thời gian khác
Có các điều kiện dừng lỗ cho phép dừng lỗ kịp thời, khóa lợi nhuận một phần và giảm rủi ro mất mát
Nhiều thông số tùy chỉnh có thể được điều chỉnh dựa trên điều kiện thị trường và phong cách giao dịch cá nhân
Dễ mở rộng để kết hợp với các chỉ số khác để thiết kế các chiến lược phức tạp hơn
Chiến lược này cũng có một số rủi ro, chủ yếu từ các khía cạnh sau:
Đường trung bình di chuyển có các thuộc tính chậm hơn, có thể bỏ lỡ các điểm đảo ngược giá ngắn hạn
Chỉ dựa trên các chỉ số đơn giản, dễ bị thất bại trong một số môi trường thị trường nhất định (sốc xu hướng, giới hạn phạm vi, v.v.)
Vị trí dừng lỗ không chính xác có thể gây ra tổn thất không cần thiết
Các thiết lập tham số không chính xác (thời gian trung bình động, thời gian giữ, v.v.) cũng có thể ảnh hưởng đến hiệu suất chiến lược
Các giải pháp tương ứng:
Kết hợp các chỉ số hàng đầu khác để cải thiện độ nhạy cảm với những thay đổi ngắn hạn
Thêm các điều kiện lọc để tránh bị ảnh hưởng bởi các tín hiệu sai trong các cú sốc và thị trường giới hạn phạm vi
Tối ưu hóa logic dừng lỗ và điều chỉnh động phạm vi dừng lỗ dựa trên biến động thị trường
Tối ưu hóa đa tham số để tìm các thiết lập tham số tối ưu
Chiến lược cũng có tiềm năng tối ưu hóa lớn, chủ yếu là từ các khía cạnh sau:
Thêm các điều kiện lọc khác để tránh tín hiệu sai trong các cú sốc và thị trường giới hạn phạm vi
Kết hợp các chỉ số động lực để xác định các tín hiệu đột phá mạnh hơn
Tối ưu hóa các thông số thời gian trung bình động để tìm kết hợp thông số tốt nhất
Tự động tối ưu hóa phạm vi dừng lỗ dựa trên biến động thị trường
Cố gắng tự động tối ưu hóa toàn bộ chiến lược dựa trên các kỹ thuật học máy
Cố gắng kết hợp với các chiến lược khác để thiết kế các hệ thống đa chiến lược phức tạp hơn
Nói chung, chiến lược này tương đối đơn giản và thực tế, phù hợp cho người mới bắt đầu học hỏi. Nó thể hiện mô hình điển hình của các chiến lược chéo trung bình động và sử dụng dừng để kiểm soát rủi ro. Tuy nhiên, có thể tối ưu hóa thêm để cải thiện hiệu suất cho nhiều điều kiện thị trường hơn. Các nhà đầu tư có thể tận dụng khuôn khổ cơ bản này để thiết kế các chiến lược giao dịch định lượng tiên tiến hơn.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("34 89 SMA Crossover Strategy", overlay=true) // Define the length for the SMAs short_length = input(34, title="Short SMA Length") long_length = input(89, title="Long SMA Length") exit_candles = input(3, title="Exit after how many candles?") exit_at_open = input(true, title="Exit at Open?") // Define morning session morning_session = input("0800-1000", "Morning Session") // Calculate SMAs short_sma = ta.sma(close, short_length) long_sma = ta.sma(close, long_length) // Function to check if current time is within specified session in_session(session) => session_start = na(time(timeframe.period, "0800-1000")) ? na : true session_start // Condition for buy signal (short SMA crosses over long SMA) within specified trading hours buy_signal = ta.crossover(short_sma, long_sma) // Condition for sell signal (short SMA crosses under long SMA) within specified trading hours sell_signal = ta.crossunder(short_sma, long_sma) // Function to exit the trade after specified number of candles var int trade_entry_bar = na var int trade_exit_bar = na if (buy_signal or sell_signal) trade_entry_bar := bar_index if (not na(trade_entry_bar)) trade_exit_bar := trade_entry_bar + exit_candles // Exit condition exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar)) // Execute trades if (buy_signal) strategy.entry("Buy", strategy.long) if (sell_signal) strategy.entry("Sell", strategy.short) if (exit_condition) strategy.close("Buy") strategy.close("Sell") // Plot SMAs on the chart plot(short_sma, color=color.blue, linewidth=1) plot(long_sma, color=color.red, linewidth=1)