Chiến lược động lực kép

Tác giả:ChaoZhang, Ngày: 2023-09-28 15:03:57
Tags:

Tổng quan

Chiến lược động lượng kép sử dụng các chỉ số động lượng nhanh và chậm để tạo ra tín hiệu vào và ra. Đây là một chiến lược phản ứng nhanh phù hợp với các công cụ xu hướng trên khung thời gian hàng ngày và 4 giờ. Việc thực hiện này dựa trên ứng dụng QuantCT.

Chiến lược cho phép cấu hình chế độ dài / ngắn hoặc chỉ dài. Nó cũng cho phép bật stop loss cố định hoặc bỏ qua nó để chiến lược chỉ hoạt động trên tín hiệu vào và ra.

Chiến lược logic

Chiến lược sử dụng động lượng thời gian nhanh (thường 5 ngày) và động lượng thời gian chậm (thường 10 ngày).

Khi động lượng chậm và động lượng nhanh đều trên 0, một tín hiệu đầu vào dài được tạo ra.

Khi động lượng chậm hoặc động lượng nhanh xuống dưới 0, một tín hiệu thoát được tạo ra.

Tương tự như vậy, khi động lượng chậm và động lượng nhanh đều dưới 0, một tín hiệu vào ngắn được tạo ra. Khi động lượng chậm hoặc động lượng nhanh vượt quá 0, một tín hiệu ra được tạo ra.

Do đó, chiến lược ghi lại những thay đổi xu hướng bằng cách chéo hai chỉ số động lực với các giai đoạn khác nhau.

Phân tích lợi thế

  • Sử dụng động lượng kép cung cấp phát hiện thay đổi xu hướng chính xác hơn và ít tín hiệu sai hơn.

  • Động lực thời gian nhanh phản ứng nhanh với những thay đổi thị trường, trong khi thời gian chậm lọc ra tiếng ồn.

  • Các chế độ dài / ngắn hoặc chỉ dài linh hoạt phù hợp với các ưu tiên giao dịch khác nhau.

  • Lựa chọn dừng lỗ kiểm soát rủi ro.

  • Bản chất phản ứng nhanh làm cho nó phù hợp với giao dịch xu hướng trên khung thời gian hàng ngày hoặc dài hơn để đạt được lợi nhuận lớn.

Phân tích rủi ro

  • Động lực kép dựa trên các giá trị chỉ số trên / dưới 0, có một số độ trễ.

  • Chiến lược phụ thuộc nhiều hơn vào xu hướng và có thể hoạt động kém hơn ở các thị trường giới hạn phạm vi với nhiều whipsaws.

  • Không sử dụng stop loss có nguy cơ mất mát lớn.

  • Lựa chọn sai về biểu tượng hoặc khung thời gian có thể dẫn đến kết quả kém.

Để kiểm soát rủi ro, điều chỉnh các khoảng thời gian động lực, sử dụng tỷ lệ stoploss cố định hợp lý, chọn các biểu tượng xu hướng mạnh và chạy trên khung thời gian hàng ngày hoặc cao hơn.

Cơ hội gia tăng

Chiến lược có thể được cải thiện theo nhiều cách:

  1. Thêm các bộ lọc như MACD hoặc RSI để tránh giao dịch sai ở các điểm chuyển hướng.

  2. Thêm lỗ dừng thích nghi để điều chỉnh khoảng cách dừng dựa trên biến động thị trường.

  3. Tối ưu hóa các thông số động lực cho các biểu tượng khác nhau thông qua tối ưu hóa từng bước, phân tích đi trước vv.

  4. Thêm các quy tắc kích thước vị trí để điều chỉnh kích thước vị trí mới dựa trên hiệu suất trong quá khứ.

  5. Phân biệt các điều kiện thị trường dài và ngắn cho các bước vào và bước ra không đối xứng.

Kết luận

Chiến lược Động lực đôi nắm bắt hướng xu hướng bằng cách sử dụng chuyển đổi động lực nhanh và chậm. Sử dụng các chỉ số đơn giản để phát hiện sự thay đổi xu hướng, nó phù hợp với xu hướng trong ngày hoặc nhiều ngày và tạo ra lợi nhuận dư thừa. Kiểm soát rủi ro thích hợp thông qua dừng lỗ, tối ưu hóa biểu tượng / tham số có thể cải thiện tính nhất quán.


/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
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/
// © QuantCT

//@version=4
strategy("Momentum Strategy Idea",
         shorttitle="Momentum", 
         overlay=false,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.075)

// ____ Inputs

fast_period = input(title="Fast Period", defval=5) 
slow_period = input(title="Slow Period", defval=10)
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

mom_fast = mom(close, fast_period)
mom_slow = mom(close, slow_period)
    
enter_long = (mom_slow > 0 and mom_fast > 0)
exit_long = (mom_slow < 0 or mom_fast < 0)
enter_short = (mom_slow < 0 and mom_fast < 0)
exit_short = (mom_slow > 0 or mom_fast > 0)

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 
   
// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)
    
// ____ Plots

colors = 
 enter_long ? #27D600 :
 enter_short ? #E30202 :
 color.orange

mom_fast_plot = plot(mom_fast, color=colors)
mom_slow_plot = plot(mom_slow, color=colors)
fill(mom_fast_plot, mom_slow_plot, color=colors, transp=50)








Thêm nữa