
Chiến lược này kết hợp theo dõi xu hướng dừng lỗ và logic thoát khỏi dừng để có được lợi nhuận theo dõi xu hướng liên tục. Chiến lược sử dụng đường ngang để xác định hướng xu hướng, tạo tín hiệu giao dịch khi giá vượt qua đường trung bình. Sau khi tham gia vào vị trí nhiều đầu, chiến lược sẽ thiết lập khoảng cách dừng lỗ theo giá trị ATR, đồng thời sử dụng logic theo dõi xu hướng dừng lỗ để điều chỉnh khoảng cách dừng lỗ, đồng thời theo dõi xu hướng trong khi bảo vệ lợi nhuận.
Thiết lập thời gian bắt đầu và kết thúc của phản hồi theo phạm vi thời gian phản hồi mà người dùng đã nhập.
Thiết lập giá dừng lỗ cho các vị trí dài và ngắn, và theo dõi tỷ lệ dừng lỗ.
Khi giá phá vỡ đường trung bình, tạo ra tín hiệu nhiều lần vào.
Tính toán khoảng cách dừng lỗ dựa trên giá trị ATR và đặt giá dừng lỗ.
Khi giá tiếp tục tăng, hãy theo dõi và điều chỉnh khoảng cách dừng để nó di chuyển dần lên và khóa nhiều lợi nhuận hơn.
Khi giá tăng đến mức dừng đặt, một phần của vị trí bán hàng dừng lại.
Khi đường trung bình bị phá vỡ, tín hiệu được tạo ra để thực hiện lệnh nhượng quyền.
Tính toán khoảng cách dừng lỗ dựa trên giá trị ATR và đặt giá dừng lỗ.
Khi giá tiếp tục giảm, hãy theo dõi và điều chỉnh khoảng cách dừng để nó dần dần giảm xuống và khóa thêm lợi nhuận.
Một phần của lệnh dừng là khi giá giảm xuống mức dừng được đặt.
Sử dụng cơ chế dừng theo xu hướng, bạn có thể tiếp tục theo xu hướng và kiếm lợi nhuận trong khi bảo vệ lợi nhuận, có lợi thế hơn so với khoảng cách dừng cố định truyền thống.
Kết hợp với chỉ số ATR để tính toán khoảng cách dừng động, có thể đáp ứng hiệu quả với biến động thị trường, giảm khả năng dừng được kích hoạt.
Logic stop-loss có thể khóa một phần lợi nhuận và giảm nguy cơ rút tiền.
Lập luận chiến lược đơn giản, rõ ràng, dễ hiểu và thực hiện, phù hợp với các nhà giao dịch.
Khi xu hướng đột ngột đảo ngược, khoảng cách dừng lỗ có thể quá lớn, không thể dừng lỗ kịp thời và có thể dẫn đến tổn thất lớn.
Khoảng cách dừng tính toán của chỉ số ATR có thể quá linh hoạt, dễ bị kích hoạt bởi tiếng ồn thị trường thường xuyên.
Một số tỷ lệ dừng được thiết lập không đúng, có thể bỏ lỡ cơ hội xu hướng hoặc tăng lỗ.
Các tham số cần tối ưu hóa nhiều hơn, chẳng hạn như chu kỳ ATR, tỷ lệ theo dõi dừng, tỷ lệ dừng một phần, v.v.
Chiến lược chỉ dựa trên đường trung bình và chỉ số ATR, khi các chỉ số này phát ra tín hiệu sai, sẽ gây ra sai sót giao dịch.
Có thể kết hợp với các chỉ số khác để lọc tín hiệu giao dịch, tránh tạo ra tín hiệu sai. Ví dụ MACD, KD, v.v.
Bạn có thể xem xét thay đổi một phần dừng cố định thành dừng tỷ lệ động, điều chỉnh theo cường độ của xu hướng.
Có thể thử nghiệm các tham số chu kỳ ATR khác nhau, sử dụng tham số ổn định nhất. Cũng có thể kết hợp với các chỉ số khác để xác định khoảng cách dừng.
Có thể giới thiệu thuật toán học máy, tự động tối ưu hóa tham số thông qua thuật toán và điều chỉnh tham số theo thị trường trong thời gian thực.
Có thể kết hợp với các thuật toán cao cấp như học sâu để tự động nhận ra xu hướng và tạo tín hiệu giao dịch thông qua việc đào tạo mô hình.
Chiến lược này tích hợp theo dõi xu hướng dừng, ATR động dừng và một phần của logic dừng, có thể liên tục theo xu hướng để dừng, cũng có một số lợi thế trong việc kiểm soát rút lui. Nhưng chiến lược cũng có một số hạn chế, như xu hướng đánh giá chỉ số đơn giản, tham số tối ưu hóa rất khó.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 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/
// © felipefs
//@version=4
strategy("Meu Script", overlay=true)
plot(ohlc4)
//Funçao de Datas
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(6, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false
//Funções de Trailing Stop
long_stop_price = 0.0
short_stop_price = 0.0
long_trail_perc = 0
short_trail_perc = 0
long_stop_price := if (strategy.position_size > 0)
stopValue = close * (1 - long_trail_perc)
max(stopValue, long_stop_price[1])
else
0
short_stop_price := if (strategy.position_size < 0)
stopValue = close * (1 + short_trail_perc)
min(stopValue, short_stop_price[1])
else
999999
//Função de Debug
debug(value) =>
x = bar_index
y = close
label.new(x, y, tostring(value))
//Take Profit
profit = close * (1 + 0.12)
strategy.entry("Long", true)
strategy.exit("Take Profit 1 Long", from_entry="Long", limit=profit, qty_percent=50.0)
//ATR Stop
// xATRTrailingStopLong = 0.0
// xATR = atr(nATRPeriod)
// nLossLong = nATRMultipLong * xATR
// if (strategy.position_size > 0)
// xATRTrailingStopLong := max(nz(xATRTrailingStopLong[1]), close - nLossLong)