Chiến lược giao dịch rùa dựa trên trung bình di chuyển đơn giản

Tác giả:ChaoZhang, Ngày: 2023-12-29 16:45:51
Tags:

img

Tổng quan

Chiến lược này tạo ra lợi nhuận bằng cách tính toán hai nhóm trung bình động đơn giản với các tham số khác nhau và sử dụng chúng làm tín hiệu để mở và đóng các vị trí. Chiến lược này lần đầu tiên được nhà giao dịch người Mỹ Richard Dennis đề xuất vào năm 1983.

Nguyên tắc

Chiến lược này đồng thời tính toán hai nhóm đường nhanh và đường chậm. Các thông số đường nhanh được thiết lập là 20 ngày cho các vị trí mở và 10 ngày cho các vị trí đóng. Các thông số đường chậm là 55 ngày và 20 ngày tương ứng. Khi giá vượt qua giá trị cao nhất của thời gian mở đường nhanh, nó kích hoạt tín hiệu dài. Khi giá giảm xuống dưới giá trị thấp nhất của thời gian mở đường nhanh, nó kích hoạt tín hiệu ngắn. Tương tự, khi giá giảm xuống dưới giá trị thấp nhất của thời gian đóng đường nhanh, nó đóng các vị trí dài. Khi giá vượt qua giá trị cao nhất của thời gian đóng đường nhanh, nó đóng các vị trí ngắn.

Chiến lược này dựa trên lý thuyết trung bình động để kiếm lợi nhuận. nghĩa là, khi trung bình động ngắn hạn vượt qua mức trung bình dài hạn, nó được coi là một tín hiệu tăng. Khi vượt qua dưới, nó báo hiệu xu hướng giảm. Các đường nhanh và chậm trong chiến lược này đóng vai trò tương tự.

Ưu điểm

  1. Quy tắc đơn giản và rõ ràng, dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu;
  2. Các tiêu chí rõ ràng để mở và đóng các vị trí, tránh giao dịch thường xuyên;
  3. Kết hợp các đường trung bình di chuyển kép nhanh và chậm làm mịn mượt biến động giá và tạo ra các tín hiệu giao dịch rõ ràng hơn;
  4. Việc sử dụng nhiều bộ tham số giúp kiểm soát rủi ro và ngăn chặn các giao dịch sai lầm;
  5. Lợi nhuận ổn định trong thời gian dài, được xác nhận trong giao dịch trực tiếp.

Rủi ro và giảm thiểu

  1. Chính chiến lược là cơ học và không thể đưa ra phán đoán về các điều kiện thị trường đặc biệt, do đó có giới hạn lợi nhuận;
    • Cố gắng kết hợp nhiều chỉ số hoặc mô hình học máy để hỗ trợ ra quyết định
  2. Các đường trung bình động như các chỉ số chậm có một độ trễ nhất định;
    • Giảm thời gian mở và đóng hợp lý
  3. Không thể giới hạn lượng rút tối đa.
    • Đặt điểm dừng lỗ

Hướng dẫn tối ưu hóa

  1. Thêm mô-đun dừng lỗ để điều khiển rút tối đa
  2. Kết hợp các chỉ số khác để lọc tín hiệu
  3. Điều chỉnh động các thông số trung bình động
  4. Thêm mô-đun xử lý dữ liệu để loại bỏ tác động của dữ liệu bất thường
  5. Kết hợp các mô hình học máy để xác định xu hướng

Tóm lại

Đây là một chiến lược theo xu hướng điển hình. Bằng cách thiết lập các quy tắc giao dịch dựa trên các đường trung bình động kép đơn giản và theo dõi xu hướng thị trường, nó đạt được lợi nhuận ổn định. Chiến lược này dễ hiểu và thực hiện với các tín hiệu mở rõ ràng và lợi nhuận xác minh dài hạn từ giao dịch trực tiếp, làm cho nó rất phù hợp cho người mới bắt đầu học và nghiên cứu. Nó cũng đặt nền tảng cho giao dịch định lượng phức tạp hơn. Tăng cường thêm có thể dẫn đến hiệu suất thậm chí tốt hơn.


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//coded by tmr0
//original idea from «Way of the Turtle: The Secret Methods that Turned Ordinary People into Legendary Traders» (2007) CURTIS FAITH
strategy("20 years old Turtles strategy by tmr0", shorttitle = "Turtles", overlay=true)

enter_fast = input(20, minval=1)
exit_fast = input(10, minval=1)
enter_slow = input(55, minval=1)
exit_slow = input(20, minval=1)

fastL = highest(enter_fast)
fastLC = lowest(exit_fast)
fastS = lowest(enter_fast)
fastSC = highest(exit_fast)

slowL = highest(enter_slow)
slowLC = lowest(exit_slow)
slowS = lowest(enter_slow)
slowSC = highest(exit_slow)

enterL1 = high > fastL[1]
exitL1 = low <= fastLC[1]
enterS1 = low < fastS[1]
exitS1 = high >= fastSC[1]

enterL2 = high > slowL[1]
exitL2 = low <= slowLC[1]
enterS2 = low < slowS[1]
exitS2 = high >= slowSC[1]


//bgcolor(exitL1 or exitL2? red: enterL1 or enterL2? navy:white)

strategy.entry("fast L", strategy.long, when = enterL1)
strategy.entry("fast S", strategy.short, when = enterS1)
strategy.close("fast L", when = exitL1)
strategy.close("fast S", when = exitS1)

strategy.entry("slow L", strategy.long, when = enterL2)
strategy.entry("slow S", strategy.short, when = enterS2)
strategy.close("slow L", when = exitL2)
strategy.close("slow S", when = exitS2)
//zl=0
//z=strategy.netprofit / 37 * koef  //ежемесячная прибыль
//z=strategy.grossprofit/strategy.grossloss
//z1=plot (z, style=line, linewidth=3, color = z>zl?green:red, transp = 30)
//hline(zl, title="Zero", linewidth=1, color=gray, linestyle=dashed)

Thêm nữa