
Chiến lược giao dịch vòng tròn dựa trên xu hướng là một chiến lược giao dịch định lượng dựa trên đường đi của xu hướng dựa trên đường trung bình di chuyển đơn giản 200 ngày. Chiến lược này cung cấp hai mô hình “theo dõi xu hướng tăng” và “theo dõi xu hướng giảm” có thể được lựa chọn theo sở thích của nhà giao dịch. Chiến lược này cho phép các nhà giao dịch tùy chỉnh điểm dừng lỗ và điểm dừng, cung cấp sự linh hoạt hơn.
Chỉ số cốt lõi của chiến lược là đường trung bình di chuyển đơn giản 200 ngày. Chiến lược được chia thành hai mô hình:
Theo dõi mô hình xu hướng tăng: làm nhiều hơn khi giá đóng cửa cao hơn đường trung bình di chuyển 200 ngày; giảm khi dừng hoặc dừng kích hoạt.
Theo dõi mô hình xu hướng giảm: làm nhiều hơn khi giá đóng cửa thấp hơn đường trung bình di chuyển 200 ngày; Hạn chế khi dừng hoặc dừng kích hoạt.
Có nhiều điều kiện.longConditionĐịnh nghĩa biến, dựa trên mối quan hệ giữa giá đóng cửa và đường trung bình di chuyển 200 ngày.closeConditionĐịnh nghĩa biến, dựa trên mối quan hệ giữa giá dừng, giá dừng và trung bình di chuyển.
Cụ thể, nếu đáp ứng được nhiều điều kiện, nó sẽ được thông qua.strategy.entryTạo thêm vị thế; nếu đáp ứng điều kiện đóng vị thế, sẽ được thông quastrategy.exitKhông có gì.
Chiến lược này có những ưu điểm sau:
Các giao dịch được thực hiện với logic đơn giản, rõ ràng và dễ hiểu.
Hai mô hình có thể lựa chọn, tùy thuộc vào môi trường thị trường khác nhau
Tính năng lợi nhuận rủi ro có thể được điều chỉnh bằng cách tùy chỉnh các chiến lược dừng lỗ và dừng lỗ.
Sử dụng các chỉ số kỹ thuật nổi tiếng như đường trung bình di chuyển 200 ngày để đánh giá xu hướng.
Tự động tạo tín hiệu giao dịch, không cần sự can thiệp của con người, giảm rủi ro hoạt động.
Chiến lược này cũng có những rủi ro sau:
Việc quá phụ thuộc vào chỉ số kỹ thuật đơn lẻ dễ tạo ra tín hiệu sai. Bạn có thể xem xét thêm các chỉ số khác để xác minh, chẳng hạn như MACD, KDJ v.v.
Hạn chế và dừng quá nhỏ, dễ bị phá vỡ bởi biến động thị trường; quá lớn, có thể bỏ lỡ điểm thoát lý tưởng. Các tham số nên được kiểm tra và tối ưu hóa thích hợp.
Sử dụng phương thức tín hiệu đánh giá theo giá đóng cửa, có sai lệch lạc quan / giảm giá. Bạn có thể xem xét thay đổi để đánh giá thực thể theo đường K hoặc xác nhận đường K tiếp theo sau khi tín hiệu được tạo.
Không tính đến ảnh hưởng của phí giao dịch.
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Thêm tín hiệu xác thực các chỉ số kỹ thuật khác để tránh tín hiệu sai. Ví dụ: chỉ số MACD.
Tối ưu hóa các tham số dừng lỗ để tìm ra sự kết hợp tham số tốt nhất. Các tham số đa nhóm có thể được so sánh bằng cách đánh giá lại.
Thêm bộ lọc xu hướng, chỉ giao dịch khi xu hướng rõ ràng. Ví dụ: giới thiệu chỉ số ADX.
Thay đổi cách vào sân, xem xét mối quan hệ thực thể K-line hoặc tham gia cơ chế xác nhận.
Xem xét tác động của khối lượng giao dịch. Xác nhận tín hiệu đáng tin cậy khi có nhiều giao dịch.
Kiểm tra các tham số trung bình di chuyển khác nhau để tìm tham số tối ưu.
Tuy nhiên, chỉ dựa vào chỉ số duy nhất có một vùng mù nhất định, cần thêm nhiều điều kiện phán đoán để xác minh, cũng cần tối ưu hóa thử nghiệm các tham số để có được hiệu quả tốt hơn trong môi trường thực. Ngoài ra, cũng cần chú ý đến tác động của phí giao dịch như phí trượt, phí thủ tục trong môi trường thực.
/*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)