Chiến lược Turtle Breakout

Tác giả:ChaoZhang, Ngày: 2023-12-04 16:25:53
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch ngắn hạn dựa trên lý thuyết đột phá. Nó sử dụng các chỉ số trung bình động và các chỉ số giá cao nhất / thấp nhất để xác định các tín hiệu đột phá và thu lợi nhuận từ xu hướng ngắn hạn.

Chiến lược logic

Chiến lược này sử dụng giá cao nhất trong 20 ngày để xác định xu hướng tăng. Khi giá đóng phá vỡ trên mức cao nhất trong 20 ngày, nó đi dài. Nó sử dụng giá thấp nhất trong 10 ngày để xác định xu hướng giảm. Khi giá đóng phá vỡ dưới mức thấp nhất trong 10 ngày, nó đi ngắn. Nó cũng sử dụng giá cao nhất trong 10 ngày làm tín hiệu thoát lỗ dừng cho các giao dịch ngắn.

Cụ thể, chiến lược bao gồm các quy tắc sau:

  1. Nhập dài khi giá đóng là trên mức cao nhất trong 20 ngày;
  2. Nhập ngắn khi giá đóng cửa dưới mức thấp nhất trong 10 ngày;
  3. Đóng vị trí ngắn khi giá đóng là trên mức cao nhất trong 10 ngày;
  4. Đóng vị trí dài khi giá đóng dưới mức thấp nhất trong 10 ngày.

Bằng cách so sánh giá đóng cửa với giá cao nhất / thấp nhất của các giai đoạn khác nhau, nó bắt được sự đột phá xu hướng trong các chu kỳ ngắn hạn và thực hiện các giao dịch ngắn hạn.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Logic đơn giản và rõ ràng, dễ hiểu và thực hiện;
  2. Nhận các xu hướng ngắn hạn kịp thời dựa trên lý thuyết đột phá;
  3. Xác định cả cơ hội dài và ngắn hạn cho giao dịch hai chiều;
  4. Điều chỉnh linh hoạt thời gian giữ bằng cách thiết lập các phạm vi tham số khác nhau.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro:

  1. Giao dịch đột phá có xu hướng bị mắc kẹt, cần dừng lỗ để kiểm soát rủi ro;
  2. Chuyển thường xuyên giữa dài và ngắn làm tăng chi phí giao dịch và trượt;
  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 chậm trễ.

Chúng ta có thể thiết lập stop loss để giới hạn mỗi lỗ giao dịch, hoặc điều chỉnh phạm vi tham số để kiểm soát tần suất giao dịch.

Tối ưu hóa

Chiến lược có thể được tối ưu hóa từ các khía cạnh sau:

  1. Thêm các bộ lọc khác để tránh các sự đột phá sai;
  2. Thiết lập các phương pháp thoát động để theo dõi dừng lỗ với lợi nhuận;
  3. Thêm các quy tắc xác định xu hướng để tránh giao dịch ngược xu hướng;
  4. Tối ưu hóa phạm vi tham số để thích nghi với các chu kỳ và điều kiện thị trường khác nhau.

Kết luận

Kết luận, đây là một chiến lược đột phá ngắn hạn đơn giản và thực tế. Nó giúp nắm bắt các cơ hội xu hướng chu kỳ ngắn. Nhưng có những rủi ro bị mắc kẹt và tần suất giao dịch cao. Bằng cách thêm bộ lọc, dừng lỗ, tối ưu hóa tham số, chúng ta có thể kiểm soát rủi ro và cải thiện hiệu quả. Chiến lược phù hợp với các nhà giao dịch tập trung vào cơ hội ngắn hạn và theo đuổi tỷ lệ giao dịch cao.


/*backtest
start: 2022-11-27 00:00:00
end: 2023-12-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("TurtleBC Strategy v2 V.Troussel", shorttitle="TurtleBC-V.Troussel", overlay=true, pyramiding=0)

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2016, title = "From Year", minval = 2016)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 9999)

enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
exit_fast_short=input(10,minval=1)


fastL = highest(close, enter_fast)
fastS = highest(close ,exit_fast_short)
fastLC = lowest(close, exit_fast)
//Sortie pour le short
exitS=close>fastS[1]


enterL1 = close > fastL[1]
exitL1 = close <= fastLC[1]




strategy.entry("Long", strategy.long, when = enterL1 and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
strategy.close("Long", when = exitL1 and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))

//le trigger de sortie est 
strategy.entry("Short", strategy.short, when = exitL1 and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))
strategy.close("Short", when = exitS and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))




Thêm nữa