Swing Points Breakouts Chiến lược dài hạn

Tác giả:ChaoZhang, Ngày: 2024-02-18 09:57:11
Tags:

img

Tổng quan

Chiến lược Swing Points Breakouts là một chiến lược biến động xu hướng dài hạn dựa trên xác định swing high và swing low. Chiến lược này đi vào các vị trí dài khi giá vượt qua mức giá cao nhất trong giai đoạn gần đây nhất được chỉ định bởi các thông số đầu vào, và đi vào các vị trí ngắn khi giá vượt qua mức giá thấp nhất trong giai đoạn gần đây nhất.

Chiến lược logic

Chiến lược định nghĩa giá cao nhất và giá thấp nhất của N bar gần đây nhất là giá dao động cao và giá dao động thấp thông qua các tham số đầu vào. Nó xác định bước vào và bước ra dựa trên tham số hướng. Khi đi dài, nó đi vào các vị trí dài với lệnh dừng OCO khi giá vượt qua mức cao dao động. Khi đi ngắn, nó đi vào các vị trí ngắn với lệnh dừng OCO khi giá vượt qua mức thấp dao động.

Ngoài ra, chiến lược thiết lập dừng lỗ. Sau khi mở các vị trí dài, dừng lỗ được đặt gần mức giá thấp nhất gần đây. Sau khi mở các vị trí ngắn, dừng lỗ được đặt gần mức giá cao nhất gần đây. Điều này có hiệu quả tránh mất mát lớn trong một thị trường xu hướng.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là nó nắm bắt được những biến động chính xung quanh các đỉnh và đáy dao động và lợi nhuận tương ứng.

Cụ thể, những lợi thế là:

  1. Chiến lược logic là rõ ràng, với các bước vào và ra dựa trên swing cao / thấp breakouts.

  2. Nó sử dụng swing high/lows để xác định cơ hội đảo ngược, một phương pháp phân tích kỹ thuật cổ điển.

  3. Có các khoản dừng lỗ được thiết lập để kiểm soát rủi ro và tránh thua lỗ lớn trong các thị trường xu hướng.

  4. Mã có cấu trúc rõ ràng và dễ hiểu và sửa đổi.

  5. Các thông số có thể được điều chỉnh để tối ưu hóa chiến lược, như điều chỉnh thời gian dao động cao / thấp.

Phân tích rủi ro

Rủi ro chính của chiến lược này xuất phát từ việc xác định không chính xác dao động cao / thấp dẫn đến giao dịch sai.

  1. Phá vỡ sai của swing high/lows dẫn đến các mục nhập sai.

  2. Đột phá lớn ở gần điểm thoát hiểm.

  3. Biểu tượng xu hướng có xu hướng cần chi phí rất lớn để xác định điểm swing.

  4. Điều chỉnh tham số không đúng cũng ảnh hưởng đến hiệu suất chiến lược.

Các giải pháp bao gồm:

  1. Tối ưu hóa các thông số như swing high/low period.

  2. Tăng khoảng cách dừng mất mát.

  3. Tránh sử dụng nó trên các biểu tượng xu hướng.

  4. Sử dụng máy học để tối ưu hóa các tham số một cách năng động.

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

Chiến lược có thể được tối ưu hóa theo các hướng sau:

  1. Tối ưu hóa năng động của các giai đoạn dao động cao / thấp thay vì các giá trị cố định để tránh quá tải.

  2. Đưa ra stop loss / take profit năng động dựa trên ATR và biến động.

  3. Kết hợp nhiều khung thời gian, sử dụng TF cao hơn để xác định xu hướng và TF thấp hơn cho nhập cảnh.

  4. Kết hợp các mô hình học máy để dự đoán các điểm thay đổi tiềm năng và cải thiện hiệu suất.

  5. Tối ưu hóa các thuật toán dừng lỗ để tránh các cú đánh không cần thiết trong khi duy trì hiệu quả dừng lỗ.

Kết luận

Chiến lược Swing Points Breakouts là một chiến lược định lượng dài hạn thực tế. Bằng cách nắm bắt các cơ hội đảo ngược xung quanh các điểm swing và thiết lập stop loss để kiểm soát rủi ro, nó đảm bảo lợi nhuận trong khi cũng kiểm soát giảm. Với điều chỉnh tham số linh hoạt và logic rõ ràng, đó là một mô hình chiến lược được khuyến cáo đáng sử dụng. Những cải tiến hơn nữa có thể được thực hiện bằng cách giới thiệu tối ưu hóa năng động và học máy.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
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/
// © tweakerID

// Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a 
// stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line). 
// The direction of the strategy can be adjusted in the Inputs panel.

//@version=4
strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04)

direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

//Inputss
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLow=input(10, title="Swing Low Lookback")
i_SwingHigh=input(10, title="Swing High Lookback")
i_reverse=input(false, "Reverse Trades")
i_SLExpander=input(defval=0, step=1, title="SL Expander")

//Strategy Calculations
SwingLow=lowest(i_SwingLow)
SwingHigh=highest(i_SwingHigh)

//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na

//Entries and Exits
strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na)
strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na)

if i_SL
    strategy.exit("longexit", "long", stop=LSL)
    strategy.exit("shortexit", "short", stop=SSL)

//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(SwingLow, color=color.red)
plot(SwingHigh, color=color.green)


Thêm nữa