Chiến lược chốt lời vượt ngưỡng Trailing Stop


Ngày tạo: 2024-01-08 16:24:03 sửa đổi lần cuối: 2024-01-08 16:24:03
sao chép: 0 Số nhấp chuột: 717
1
tập trung vào
1617
Người theo dõi

Chiến lược chốt lời vượt ngưỡng Trailing Stop

Tổng quan

Chiến lược vượt quá lỗ hổng di động là một chiến lược giao dịch định lượng dựa trên các chỉ số vượt quá. Chiến lược này thực hiện dừng lỗ và dừng di động bằng cách xây dựng các điều kiện vào và ra của các vị trí dài và ngắn. Ưu điểm của chiến lược là có thể đạt được lợi nhuận cao hơn trong xu hướng liên tục, trong khi có thể khóa phần lớn lợi nhuận bằng cách dừng di động.

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

Chiến lược này là chiến lược theo dõi xu hướng dựa trên vượt quá chỉ số. Bước vượt quá chỉ số có thể xác định hướng xu hướng giá. Khi vượt quá chỉ số thay đổi hướng sẽ tạo ra tín hiệu mua và bán. Cụ thể, nếu vượt quá chỉ số vượt qua trục 0 trên chỉ số sẽ tạo ra tín hiệu mua; Nếu vượt quá chỉ số vượt qua trục 0 dưới chỉ số sẽ tạo ra tín hiệu bán.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là kết hợp định hướng xu hướng và dừng di chuyển. Đấu hình vượt quá chỉ số để định hướng xu hướng bằng cách phá vỡ trên và dưới trục 0, có thể nắm bắt xu hướng một cách chính xác hơn. Đấu hình dừng di chuyển có thể khóa phần lớn lợi nhuận khi xu hướng diễn ra.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là nhạy cảm với thất bại phá vỡ. Trong khu vực cân bằng, vượt quá chỉ số có thể tạo ra phá vỡ giả và do đó tạo ra vị trí sai.

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

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau: 1) xác định hợp lý các tham số chỉ số vượt quá, tránh phát sinh các tín hiệu giả; 2) tăng cơ chế để đánh giá độ tin cậy của đột phá, chẳng hạn như tăng tín hiệu khối lượng giao dịch; 3) tối ưu hóa các tham số dừng di động, trong khi đảm bảo lợi nhuận và giảm thiểu khả năng đúc; 4) sử dụng dừng động dựa trên biến động thay vì dừng tĩnh; 5) tăng các chỉ số khác để kết hợp, tăng sự ổn định của chiến lược.

Tóm tắt

Bước vượt qua chiến lược dừng lỗ và lợi nhuận di động nói chung là một chiến lược theo dõi xu hướng tốt. Nó có thể đánh giá hợp lý hướng xu hướng và có cơ chế dừng di động. Tuy nhiên, chiến lược này cũng rất nhạy cảm với thất bại đột phá và có một số rủi ro. Bằng cách thiết lập tham số tối ưu hóa hơn nữa, đánh giá quy tắc, cơ chế dừng lỗ, các chiến lược có thể được cải thiện hiệu quả để trở thành một chiến lược giao dịch định lượng ổn định và hiệu quả.

Mã nguồn chiến lược
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ST Michael Moving TP", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

// Stop loss and profit amount
stop_loss = input(1500, title="Stop Loss Amount")
profit = input (15000, title="Profit Amount")
LongTrailProfit = input (0.91, title = "Long Trailing Profit Taking")
ShortTrailProfit = input (1.01, title = "Short Trailing Profit Taking")

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

long_condition = ta.change(direction) <0
short_condition = ta.change(direction) >0


stop_price_long = ta.valuewhen(long_condition, low[0]-stop_loss,0)
profit_price_long = ta.valuewhen(long_condition, high[0]+profit,0)
stop_price_short = ta.valuewhen(short_condition, high[0]+stop_loss,0)
profit_price_short = ta.valuewhen(short_condition, low[0]-profit,0)

atr=ta.atr(10)

intrade_long = strategy.position_size > 0
intrade_short = strategy.position_size < 0
exitConditionLong = (close < (close[1]*LongTrailProfit)) 
exitConditionShort = (close > (close[1]*ShortTrailProfit))

if (long_condition)
    strategy.entry("Long3", strategy.long)
if (intrade_long and exitConditionLong)
    strategy.close("Long3")

if (short_condition)
    strategy.entry("Short3", strategy.short)
if (intrade_short and exitConditionShort)
    strategy.close ("Short3")

if (strategy.position_size>0)
    strategy.exit("exit_long",from_entry="Long3",limit=profit_price_long,stop=stop_price_long)

if (strategy.position_size<0)
    strategy.exit("exit_short",from_entry="Short3",limit=profit_price_short,stop=stop_price_short)