Chiến lược đảo ngược ba ngày của Turtle Trading


Ngày tạo: 2023-10-13 15:37:18 sửa đổi lần cuối: 2023-10-13 15:37:18
sao chép: 0 Số nhấp chuột: 863
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược đảo ngược ba ngày của giao dịch trên bãi biển được dựa trên chiến lược quay trở trung bình ba ngày của Larry Connors và Cesar Alvarez trong cuốn sách về giao dịch ETF có xác suất cao. Trong cuốn sách này, tác giả đã thảo luận về một chiến lược quay trở trung bình của ETF có xác suất cao, với các quy tắc đơn giản:

  • Nếu giá đóng cửa hôm qua thấp hơn mức trung bình di chuyển đơn giản 5 ngày, hãy mua hôm nay.
  • Nếu giá đóng cửa hôm nay cao hơn trung bình di chuyển đơn giản 5 ngày, hãy bán hôm nay.

Thông qua thực hành và kiểm tra lại, tôi thấy rằng chiến lược này sẽ có hiệu quả hơn nếu sử dụng EMA thay vì SMA để tính toán đường xu hướng. Vì vậy, kịch bản này sử dụng EMA để tính toán đường xu hướng. Tôi cũng có thể điều chỉnh độ dài của EMA.

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

Chiến lược này hoạt động như sau:

  • Hãy mua nhiều hơn khi bạn đáp ứng các điều kiện sau:
    • Giá đóng cửa cao hơn EMA 200 ngày
    • Giá đóng cửa dưới EMA ngày 5
    • Giá cao nhất hôm nay thấp hơn giá cao nhất hôm qua
    • Giá thấp nhất hôm nay thấp hơn giá thấp nhất ngày hôm qua
    • Giá cao nhất hôm qua thấp hơn giá cao nhất hôm trước.
    • Giá thấp nhất hôm qua thấp hơn giá thấp nhất hôm trước.
    • Giá cao nhất ngày trước thấp hơn giá cao nhất ngày trước
    • Giá thấp nhất ngày trước thấp hơn giá thấp nhất ngày trước
  • Khi giá đóng cửa vượt ra khỏi EMA, lỗ hổng bị xóa

Trong số đó, thoát EMA mặc định là EMA 5 ngày, có thể điều chỉnh độ dài.

Ý tưởng chính của chiến lược này là sử dụng hiệu ứng đảo ngược ngắn hạn. Khi giá cổ phiếu hoạt động yếu sau một đợt giảm liên tục, có khả năng sẽ có một đợt phục hồi ngắn hạn. Chiến lược này đánh giá xem liệu có cơ hội đảo ngược hay không bằng cách đánh giá xem giá có thu hẹp liên tục ba ngày và thấp hơn mức trung bình ngắn hạn hay không.

Phân tích lợi thế

So với các chiến lược truyền thống di chuyển trung bình, chiến lược này có những ưu điểm sau:

  1. Các nhà đầu tư đã sử dụng cơ hội quay trở lại trong 3 ngày tiếp theo để cải thiện chất lượng tín hiệu giao dịch.

  2. Kết hợp với bộ lọc đường trung bình dài và ngắn, tránh giao dịch trong thị trường xu hướng.

  3. Sử dụng đường EMA thay vì đường SMA để tính toán xu hướng, nhạy hơn và kịp thời hơn để bắt được sự đảo ngược.

  4. Thời gian rút khỏi EMA có thể được điều chỉnh và chiến lược dừng lỗ có thể được điều chỉnh theo thị trường.

  5. Tỷ lệ giao dịch thấp, chỉ giữ vị thế 1-2 ngày mỗi lần, tránh rủi ro giữ nhiều vị thế.

Phân tích rủi ro

Chiến lược này cũng có những rủi ro sau:

  1. Rủi ro thất bại trong việc đảo ngược. Sau khi tín hiệu đảo ngược xảy ra, giá có thể thất bại trong việc phá vỡ và tiếp tục giảm thay vì hồi phục.

  2. Rủi ro bị dừng lại thường xuyên. Trong trường hợp biến động, giá có thể thường xuyên gây ra lỗ dừng.

  3. Rủi ro tối ưu hóa tham số: thoát khỏi EMA và các tham số khác cần được kiểm tra và tối ưu hóa liên tục theo thị trường, nếu không điều chỉnh có thể dẫn đến hiệu quả kém.

  4. Rủi ro tối ưu hóa quá mức. Khi tối ưu hóa, hãy cẩn thận tránh quá phù hợp và cài đặt tham số phải chắc chắn.

Bạn có thể làm giảm nguy cơ bằng cách:

  1. Tuân thủ nghiêm ngặt các quy tắc dừng lỗ và kiểm soát tổn thất đơn lẻ.

  2. Tối ưu hóa bằng cách thiết lập các tham số vững chắc để cân bằng rủi ro và lợi nhuận.

  3. Điều chỉnh kích thước vị trí, giảm vị trí đơn lẻ, phân tán rủi ro.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa bằng cách:

  1. Kiểm tra các EMA với độ dài khác nhau như là một chỉ số ra thị trường và ra thị trường để tìm các tham số phù hợp hơn.

  2. Thêm các điều kiện lọc khác, chẳng hạn như chỉ số năng lượng, để đảm bảo tín hiệu đảo ngược đáng tin cậy hơn.

  3. Tối ưu hóa các chiến lược dừng lỗ, ví dụ như sử dụng ATR dừng, theo dõi dừng và nhiều cách khác để dừng lỗ linh hoạt hơn.

  4. Kết hợp với sự phán đoán xu hướng, tránh các tín hiệu đảo ngược xảy ra giao dịch sai trong xu hướng.

  5. Tối ưu hóa danh mục, kết hợp với các danh mục chiến lược khác, tận dụng rủi ro phân tán không liên quan.

  6. Sử dụng các phương pháp học máy để tối ưu hóa tham số thích ứng, để tham số được điều chỉnh động.

Tóm tắt

Chiến lược đảo ngược ba ngày của Bạch Dương tìm kiếm cơ hội đảo ngược ngắn hạn bằng cách đánh giá giá giảm ba ngày liên tiếp và thấp hơn hình thức EMA ngắn hạn. So với chiến lược đường trung bình di chuyển truyền thống, tín hiệu nhập cảnh của nó đáng tin cậy hơn, bằng cách điều chỉnh tham số EMA để tối ưu hóa dừng lỗ. Chiến lược này được sử dụng để giải quyết thị trường xung đột, có thể nắm bắt đà phản hồi ngắn hạn.

Mã nguồn chiến lược
/*backtest
start: 2023-10-05 00:00:00
end: 2023-10-12 00:00:00
period: 10m
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/
// @version = 5
// Author = TradeAutomation


strategy(title="ETF 3-Day Reversion Strategy", shorttitle="ETF 3-Day Reversion Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_order, commission_value=1, initial_capital = 10000000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2012 05:00 +0000'), title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00 +0000'), title='End Time')
InDateRange = true

// Strategy Rules //
DayEMA5 = ta.ema(close, 5)
Rule1 = close>ta.ema(close, 200)
Rule2 = close<DayEMA5
Rule3 = high<high[1] and low<low[1] and high[1]<high[2] and low[1]<low[2] and high[2]<high[3] and low[2]<low[3]
ExitEMA = ta.ema(close, input.int(5, "EMA Length For Exit Strategy", tooltip = "The strategy will sell when the price crosses over this EMA"))
plot(DayEMA5)
plot(ExitEMA, color=color.green)

// Entry & Exit Functions //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = Rule1 and Rule2 and Rule3)
//    strategy.close("Long", when = ta.crossunder(close, ATRTrailingStop))
    strategy.close("Long", when = ta.crossover(close, ExitEMA))
if (not InDateRange)
    strategy.close_all()