Chiến lược đảo ngược trung bình di chuyển kép

Tác giả:ChaoZhang, Ngày: 2023-12-15 16:38:33
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch ngắn hạn sử dụng trung bình động kép để xác định sự đảo ngược thị trường. Nó đánh giá xu hướng tăng hoặc giảm hiện tại bằng cách kiểm tra mối quan hệ đóng của ba thanh nến trước đó. Khi phát hiện sự đảo ngược xu hướng, các vị trí dài hoặc ngắn thích hợp được thực hiện. Trong khi đó, chiến lược cũng sử dụng một trung bình động đơn giản để lọc tín hiệu ngắn và giảm rủi ro giao dịch.

Nguyên tắc chiến lược

Chỉ số đánh giá chính của chiến lược này là mối quan hệ giá đóng của ba thanh nến trước đó. Nếu ba thanh trước đó là tất cả nến đen, nó được đánh giá là dòng đang có xu hướng giảm; nếu ba thanh trước đó là tất cả nến trắng, nó được đánh giá là dòng đang có xu hướng tăng. Khi một nến trắng lớn xuất hiện sau xu hướng giảm, đi dài; khi một nến đen lớn xuất hiện sau xu hướng tăng, đi ngắn.

Lý thuyết phán đoán cụ thể cho việc mua bán là: nếu ba thanh nến trước đây là tất cả nến đen, và thanh nến cuối cùng là một nến đen lớn, thì mua bán.

Lý thuyết phán đoán cụ thể để đi ngắn là: nếu ba thanh nến trước đây là tất cả nến trắng, và thanh nến cuối cùng là một nến trắng lớn, và giá thấp hơn mức trung bình di chuyển đơn giản, sau đó đi ngắn.

Chiều dài của đường trung bình động và cường độ để đánh giá nến trắng và đen lớn được đặt bởi đầu vào của người dùng.

Ưu điểm của Chiến lược

  1. Sử dụng các mô hình nến để xác định các điểm đảo ngược thị trường, tránh đuổi theo nhau trong xu hướng và giảm lỗ.

  2. Kết hợp trung bình động để lọc tín hiệu và tránh đi ngắn sớm trong thời gian tăng mục tiêu.

  3. Chiến lược logic là đơn giản và rõ ràng, dễ hiểu và sửa đổi.

  4. Các tham số có thể tùy chỉnh phù hợp với các loại và chu kỳ thời gian khác nhau.

  5. Trong một số điều kiện nhất định, nó có lợi để nắm bắt các cơ hội điều chỉnh ngắn hạn kịp thời.

Rủi ro của chiến lược

  1. Thị trường có thể có ba ngọn nến màu đen hoặc trắng lớn liên tiếp tạo thành một sự đảo ngược sai, gây ra tổn thất nếu có vị trí.

  2. Nếu không đảo ngược, có thể sẽ bị theo đuổi bởi xu hướng.

  3. Cài đặt tham số không chính xác có thể dẫn đến giao dịch quá mức hoặc bỏ lỡ cơ hội.

  4. Nó dễ dàng bị mắc kẹt khi thị trường rộng lớn biến động rất nhiều.

Tối ưu hóa chiến lược

  1. Sử dụng các chỉ số phức tạp hơn kết hợp với các mẫu nến để xác định sự đảo ngược, chẳng hạn như BOLL, MACD, vv để cải thiện độ chính xác phán đoán.

  2. Thêm các chỉ số khối lượng giao dịch hoặc biến động kết hợp với các mô hình nến để tránh thiếu hụt khối lượng.

  3. Thêm logic stop loss, đặt điểm cố định hoặc stop loss theo dõi.

  4. Tối ưu hóa các tham số để tìm kết hợp tham số tốt nhất.

  5. Kiểm tra nhiều giống và dữ liệu chu kỳ hơn để tìm môi trường ứng dụng tối ưu.

Tóm lại

Nói chung, chiến lược này là một chiến lược ngắn hạn tương đối phổ quát nắm bắt sự đảo ngược thị trường ngắn hạn bằng cách sử dụng các chỉ số đơn giản. Ưu điểm của nó dễ hiểu, logic rõ ràng và kết quả tốt thông qua một số tối ưu hóa. Nhưng cũng có một số rủi ro chiến lược đảo ngược điển hình cần các phương tiện như dừng lỗ, tiêu chí đảo ngược nghiêm ngặt, vv để kiểm soát. Nó có thể phục vụ như một chiến lược giới thiệu cho giao dịch định lượng để học và thực hành.


/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 5m
basePeriod: 1m
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/
// © stormis
// Based on strategy by hackertrader (original idea by QuantpT)

//@version=5
strategy(title="Mean reversion", shorttitle="MeanRev", precision=16 , overlay=true)

moveLimit = input(70)
maLength = input(200)

ma = ta.sma(close, maLength)

downBar = open > close
isThreeDown = downBar and downBar[1] and downBar[2]
isThreeUp = not downBar and not downBar[1] and not downBar[2]
isBigMoveDown = ((open - close) / (0.001 + high - low)) > moveLimit / 100.0
isBigMoveUp = ((close - open) / (0.001 + high - low)) > moveLimit / 100.0

isLongBuy = isThreeDown and isBigMoveDown
isLongExit = close > high[1]

isShortBuy = isThreeUp and isBigMoveUp
isShortExit = close < low[1]

strategy.entry("Entry Long", strategy.long, when=isLongBuy)
strategy.close("Entry Long", when=isLongExit)

strategy.entry("Entry Short", strategy.short, when=close < ma and isShortBuy)
strategy.close("Entry Short", when=isShortExit)

plot(ma, color=color.gray)

Thêm nữa