
Chiến lược này sử dụng đường trung bình di chuyển để tạo ra tín hiệu giao dịch và đặt mức dừng lỗ và mức dừng cố định dựa trên giá nhập để kiểm soát rủi ro và lợi nhuận cho mỗi giao dịch.
Chiến lược này đầu tiên sử dụng chỉ số di chuyển trung bình 5 ngày và chỉ số di chuyển trung bình 32 ngày để xác định hướng xu hướng, làm nhiều khi đi qua trung bình di chuyển dài hạn trên trung bình di chuyển ngắn hạn và làm trống khi đi qua.
Sau khi nhập, chiến lược dựa trên phần trăm dừng lỗ và phần trăm dừng chân của người dùng để thiết lập các điểm dừng chân và điểm dừng chân cho mỗi giao dịch. Cụ thể, đối với đặt hàng nhiều, điểm dừng chân được thiết lập là giá nhập (((% 1-stop loss), điểm dừng chân là giá nhập ((% 1 + stop loss); đối với đặt hàng trống, ngược lại, điểm dừng chân là giá nhập ((% 1 + stop loss), điểm dừng chân là giá nhập ((% 1-stop loss)).
Cài đặt này đảm bảo mỗi giao dịch có một tỷ lệ cố định của stop loss và stop loss, do đó kiểm soát rủi ro và lợi nhuận của mỗi giao dịch.
Một số ưu điểm đáng chú ý của thiết lập này là:
Giới hạn lỗ tối đa cho mỗi giao dịch, kiểm soát rủi ro giao dịch hiệu quả
Có thể khóa tỷ lệ lợi nhuận cố định cho mỗi giao dịch, đảm bảo tỷ lệ lợi nhuận
Điểm dừng và điểm dừng thay đổi theo giá nhập vào của giao dịch, tránh các vấn đề liên quan đến việc sử dụng các giá trị cố định
Người dùng có thể tự xác định mức độ rủi ro của mình bằng cách điều chỉnh các tham số đầu vào
Logic chiến lược đơn giản, trực quan, dễ hiểu và xác minh
Chiến lược này cũng có một số rủi ro:
Đường trung bình di chuyển có thể tạo ra một số lượng lớn các tín hiệu giao dịch không có hiệu lực, có khả năng bị dừng sau khi vào
Thiết lập tỷ lệ dừng quá lớn có thể dẫn đến khả năng lợi nhuận không đầy đủ, thiết lập tỷ lệ dừng quá nhỏ có thể không có đủ lợi nhuận
Đi quá gần điểm dừng có thể làm tăng xác suất dừng được kích hoạt, nên được nới lỏng thích hợp
Lựa chọn loại giao dịch và chu kỳ giao dịch ảnh hưởng đến hiệu quả của chiến lược dừng lỗ
Giải pháp tương ứng:
Tối ưu hóa tham số trung bình di chuyển, giảm tín hiệu vô hiệu
Kiểm tra các tỷ lệ cản khác nhau để tìm cấu hình tối ưu
Chuyển đổi khoảng cách dừng lỗ theo biến động của thị trường
Đánh giá hiệu quả của chiến lược theo các giống và chu kỳ khác nhau
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Thêm các chỉ số khác để đánh giá xu hướng và tránh các tín hiệu không hiệu quả của đường trung bình di chuyển
Tìm tham số tối ưu dựa trên dữ liệu đo đạc để tối ưu hóa tỷ lệ dừng lỗ
Thay đổi phương thức dừng lỗ thành phương thức theo dõi dừng lỗ, bạn có thể khóa nhiều lợi nhuận hoạt động hơn
Thêm mô-đun quản lý vị thế để quản lý rủi ro giao dịch thông qua đặt cược và dừng lỗ
Đánh giá sự khác biệt trong hiệu quả của chiến lược trong các loại giao dịch khác nhau và các khoảng thời gian khác nhau
Chiến lược này dựa trên phương tiện di chuyển để xác định hướng xu hướng vào, thiết lập một phần trăm dừng lỗ cố định dựa trên giá vào để kiểm soát rủi ro và lợi nhuận của một giao dịch. Ưu điểm của chiến lược này là có thể hạn chế thiệt hại một cách hiệu quả, đảm bảo tỷ lệ lợi nhuận, logic đơn giản, dễ vận hành. Cần chú ý đến việc cấu hình đúng các tham số dừng lỗ, chọn các loại và chu kỳ giao dịch phù hợp và có thể tiếp tục tối ưu hóa chiến lược này bằng nhiều cách.
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © theCrypster 2020
//@version=4
strategy("Fixed Percent Stop Loss & Take Profit %", overlay=true)
// Moving Averages to get some example trades generated
eg1 = ema(close, 5)
eg2 = ema(close, 32)
long = crossover(eg1, eg2)
short = crossunder(eg1, eg2)
strategy.entry("LONG", strategy.long, when=long)
strategy.entry("SHORT", strategy.short, when=short)
//
// The Fixed Percent Stop Loss Code
// User Options to Change Inputs (%)
stopPer = input(5.0, title='Stop Loss %', type=input.float) / 100
takePer = input(10.0, title='Take Profit %', type=input.float) / 100
// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)
if strategy.position_size > 0
strategy.exit(id="Close Long", stop=longStop, limit=longTake)
if strategy.position_size < 0
strategy.exit(id="Close Short", stop=shortStop, limit=shortTake)
//PLOT FIXED SLTP LINE
plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")
//