Chiến lược theo xu hướng vị trí chu kỳ là một chiến lược giao dịch định lượng xác định hướng xu hướng dựa trên trung bình di chuyển đơn giản (SMA) 200 ngày. Nó cung cấp hai chế độ -
Chỉ số cốt lõi của chiến lược này là SMA 200 ngày.
Theo chế độ xu hướng tăng: Đi dài khi đóng trên SMA 200 ngày; đóng vị trí khi dừng lỗ hoặc lấy lợi nhuận được kích hoạt.
Theo chế độ xu hướng giảm: Đi dài khi đóng dưới SMA 200 ngày; đóng vị trí khi dừng lỗ hoặc lấy lợi nhuận được kích hoạt.
Điều kiện dài được định nghĩa tronglongCondition
Điều kiện đóng cửa được định nghĩa trongcloseCondition
biến dựa trên stop loss, take profit và SMA.
Cụ thể,strategy.entry
được sử dụng để mở các vị trí dài khi điều kiện dài được đáp ứng.strategy.exit
được sử dụng để đóng các vị trí khi điều kiện đóng được kích hoạt.
Những lợi thế của chiến lược này bao gồm:
Lý luận đơn giản và rõ ràng mà dễ hiểu.
Cung cấp hai chế độ tùy chọn để phù hợp với môi trường thị trường khác nhau.
Stop loss và take profit có thể tùy chỉnh cho phép điều chỉnh hồ sơ rủi ro-lợi nhuận.
Sử dụng chỉ số SMA 200 ngày nổi tiếng để xác định hướng xu hướng.
Tạo ra các tín hiệu giao dịch tự động mà không cần can thiệp bằng tay.
Những rủi ro của chiến lược này bao gồm:
Quá phụ thuộc vào một chỉ số duy nhất, dễ bị tín hiệu sai.
Stop loss và take profit level quá chật chội hoặc quá rộng có thể dẫn đến stop out sớm hoặc bỏ lỡ các điểm thoát lý tưởng.
Sử dụng giá đóng cho tín hiệu có xu hướng giá đóng. Hãy xem xét sử dụng thân nến hoặc thêm xác nhận tín hiệu.
Không tính chi phí giao dịch.
Một số cách để cải thiện chiến lược:
Thêm các chỉ số khác để xác nhận tín hiệu và tránh tín hiệu sai, ví dụ như MACD.
Tối ưu hóa các thông số dừng lỗ và lấy lợi nhuận để tìm kết hợp tối ưu thông qua backtesting.
Thêm bộ lọc xu hướng để chỉ giao dịch theo xu hướng được xác định rõ, ví dụ ADX.
Cải thiện phương pháp nhập bằng cách xem xét thân nến hoặc thêm xác nhận.
Xem xét khối lượng giao dịch để xác nhận độ tin cậy của tín hiệu.
Kiểm tra các khoảng thời gian SMA khác nhau để tìm các thông số tối ưu.
Kết luận, chiến lược có logic rõ ràng và dễ hiểu với giá trị thực tế. Nhưng việc dựa vào một chỉ số duy nhất có những hạn chế. Nhiều điều kiện nên được thêm vào để xác nhận. Các tham số cũng cần thử nghiệm và tối ưu hóa để có hiệu suất trực tiếp tốt hơn. Hơn nữa, chi phí giao dịch như trượt và hoa hồng đòi hỏi phải xem xét trong giao dịch trực tiếp.
/*backtest start: 2022-11-10 00:00:00 end: 2023-11-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © I11L //@version=5 strategy("Cycle Position Trading", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false) // Input for selecting the mode mode = input.string("Buy Uptrend", options = ["Buy Uptrend", "Buy Downtrend"]) // Input for customizing stop loss and take profit levels stopLoss = input.float(0.9, title="Stop Loss (SL) level", step=0.01) takeProfit = input.float(1.1, title="Take Profit (TP) level", step=0.01) // Calculate the 200-day Simple Moving Average (SMA) sma = ta.sma(close, 200) // Plot the SMA on the chart plot(sma) // Define the conditions for entering a long position based on the selected mode longCondition = mode == "Buy Uptrend" ? close > sma and close[5] > sma : close < sma // Define the conditions for closing a position based on the selected mode closeCondition = mode == "Buy Uptrend" ? (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close < sma * 0.95) : (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close > sma * 1.05) // Execute a long position if the longCondition is met if (longCondition) strategy.entry("My Long Entry Id", strategy.long) // Close the position if the closeCondition is met if (closeCondition) strategy.exit("Exit", limit = close)