
Chiến lược giao dịch kéo ngược trung bình di chuyển là một chiến lược giao dịch theo hướng xu hướng. Nó sử dụng mối quan hệ giữa trung bình di chuyển dài hạn và ngắn hạn để xác định hướng xu hướng tổng thể và mua ở mức thấp khi rút lui trong thời gian ngắn, với mục tiêu dừng lỗ và dừng lỗ.
Các quy tắc đánh giá chính của chiến lược này là:
Bằng cách kết hợp các phán đoán như vậy, chúng ta có thể thiết lập vị trí trong trường hợp xu hướng phù hợp với dự đoán, sử dụng cơ hội điều chỉnh ngắn hạn.
Ưu điểm lớn nhất của chiến lược này là nó chỉ giao dịch đa đầu với sự mong đợi về xu hướng lớn, có thể tránh được rủi ro của thị trường biến động. Đồng thời, nó sử dụng thời gian mua lại của sự điều chỉnh trung bình ngắn hạn, điều này có thể vào thị trường với giá tốt hơn.
Ngoài ra, chiến lược này thiết lập các cơ chế dừng lỗ và dừng. Điều này cho phép kiểm soát lỗ bằng cách dừng lỗ ngay cả khi phán đoán sai và tạo ra xu hướng ngược lại; và sau khi kiếm được lợi nhuận, bằng cách chặn một phần lợi nhuận.
Mặc dù chiến lược này đã tính đến các thiết lập định giá xu hướng lớn và dừng lỗ, nhưng vẫn có một số rủi ro:
Rủi ro sai lầm khi đánh giá xu hướng dài hạn. Khi đánh giá vào thị trường đa đầu, mở nhiều vị trí, nhưng thực tế thị trường đã chuyển từ đa đầu sang chấn động hoặc trống, điều này sẽ gây ra tổn thất lớn hơn.
Rủi ro của việc dừng lỗ bị theo đuổi. Đặc biệt là khi xảy ra sự kiện tiêu cực lớn, thị trường có thể nhảy vọt, vượt quá đường dừng lỗ được đặt trước, gây ra tình huống không thể kiểm soát tổn thất.
Theo đó, chúng ta có thể xem xét một số cách để giảm thiểu rủi ro:
Phân tích thị trường lớn để tránh đánh giá sai xu hướng giữa các khu vực chấn động. Hoặc thiết lập trung bình di chuyển có chu kỳ dài hơn để xác nhận xu hướng lớn.
Sử dụng lệnh điều kiện, kích hoạt vị trí bằng phẳng khi thị trường nhảy vọt xuống, thay vì lệnh dừng lỗ đơn giản, điều này có thể ngăn chặn một số trường hợp lệnh dừng lỗ bị theo đuổi.
Ghi nhận rằng chiến lược này được đặc trưng bởi sự phán đoán đường dài và lối vào đường ngắn, chúng ta có thể tối ưu hóa hơn nữa bằng cách:
Tối ưu hóa các tham số chu kỳ của trung bình di chuyển, tìm kiếm các tham số kết hợp tốt nhất
Thêm các chỉ số khác. Ví dụ như thêm phân tích khối lượng giao dịch, hoặc kết hợp các chỉ số bán tháo khác dựa trên chỉ số RSI
Điều chỉnh mức độ dừng lỗ trong thời gian thực. Chúng tôi có thể điều chỉnh tùy theo mức độ biến động của thị trường, nới lỏng mức độ dừng lỗ khi biến động lớn
Kiểm tra sự phù hợp của các giống với các tiêu chuẩn khác nhau. Các chiến lược này có thể phù hợp hơn với các sản phẩm chỉ số, nếu cần thêm các quy tắc sàng lọc khác nếu sử dụng cho từng cổ phiếu
Chiến lược giao dịch quay trở lại trung bình di động là một chiến lược ổn định hơn. Nó chủ yếu xem xét xu hướng lớn và cơ hội quay trở lại trong thời gian ngắn, để có được thời gian nhập cảnh tốt hơn trong trường hợp không theo dõi. Đồng thời, bằng cách thiết lập dừng lỗ để khóa lợi nhuận và kiểm soát rủi ro.
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 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/
// © tsujimoto0403
//@version=5
strategy("simple pull back", overlay=true,default_qty_type=strategy.percent_of_equity,
default_qty_value=100)
//input value
malongperiod=input.int(200,"長期移動平均BASE200/period of long term sma",group = "パラメータ")
mashortperiod=input.int(10,"長期移動平均BASE10/period of short term sma",group = "パラメータ")
stoprate=input.int(5,title = "損切の割合%/stoploss percentages",group = "パラメータ")
profit=input.int(20,title = "利食いの割合%/take profit percentages",group = "パラメータ")
startday=input(title="バックテストを始める日/start trade day", defval=timestamp("01 Jan 2000 13:30 +0000"), group="期間")
endday=input(title="バックテスを終わる日/finish date day", defval=timestamp("1 Jan 2099 19:30 +0000"), group="期間")
//polt indicators that we use
malong=ta.sma(close,malongperiod)
mashort=ta.sma(close,mashortperiod)
plot(malong,color=color.aqua,linewidth = 2)
plot(mashort,color=color.yellow,linewidth = 2)
//date range
datefilter = true
//open conditions
if close>malong and close<mashort and strategy.position_size == 0 and datefilter and ta.rsi(close,3)<30
strategy.entry(id="long", direction=strategy.long)
//sell conditions
strategy.exit(id="cut",from_entry="long",stop=(1-0.01*stoprate)*strategy.position_avg_price,limit=(1+0.01*profit)*strategy.position_avg_price)
if close>mashort and close<low[1] and strategy.position_size>0
strategy.close(id ="long")