Chiến lược dừng lỗ và lấy lợi nhuận theo tỷ lệ phần trăm cố định dựa trên đường trung bình động

Tác giả:ChaoZhang, Ngày: 2023-12-18 11:30:39
Tags:

img

Tổng quan

Chiến lược này sử dụng các đường trung bình động để tạo ra các tín hiệu giao dịch và thiết lập tỷ lệ dừng lỗ cố định và lấy mức lợi nhuận dựa trên giá nhập cảnh để kiểm soát rủi ro và lợi nhuận của mỗi giao dịch.

Chiến lược logic

Chiến lược này đầu tiên sử dụng đường trung bình di chuyển theo cấp số (EMA) 5 ngày và đường EMA 32 ngày để xác định hướng xu hướng.

Sau khi tham gia giao dịch, chiến lược tự động thiết lập mức dừng lỗ và lấy lợi nhuận cho mỗi giao dịch dựa trên tỷ lệ phần trăm dừng lỗ và lấy lợi nhuận được xác định bởi người dùng. Cụ thể, đối với các giao dịch dài, mức dừng lỗ được thiết lập ở mức giá nhập × (1 - tỷ lệ phần trăm dừng lỗ) và mức lấy lợi nhuận được thiết lập ở mức giá nhập × (1 + tỷ lệ phần trăm lấy lợi nhuận). Đối với các giao dịch ngắn, nó được đảo ngược - mức dừng lỗ ở mức giá nhập × (1 + tỷ lệ phần trăm dừng lỗ) và mức lấy lợi nhuận ở mức giá nhập × (1 - tỷ lệ phần trăm lấy lợi nhuận).

Điều này cho phép đảm bảo tỷ lệ rủi ro / lợi nhuận cố định cho mỗi giao dịch và kiểm soát rủi ro và lợi nhuận.

Phân tích lợi thế

Cách thiết lập dừng lỗ và lấy lợi nhuận này có một số lợi thế đáng kể:

  1. Nó có thể hạn chế lỗ tối đa cho mỗi giao dịch và kiểm soát hiệu quả rủi ro giao dịch.

  2. Nó có thể khóa tỷ lệ lợi nhuận cố định cho mỗi giao dịch và đảm bảo lợi nhuận.

  3. Các điểm dừng lỗ và lấy lợi nhuận thay đổi theo giá nhập thực tế thay vì sử dụng các giá trị cố định.

  4. Người sử dụng có thể xác định sự thèm mạo hiểm của họ bằng cách điều chỉnh các thông số đầu vào.

  5. Logic chiến lược đơn giản và trực quan, dễ hiểu và xác minh.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro với chiến lược này:

  1. Mức trung bình động có thể tạo ra các tín hiệu không hợp lệ quá mức, với khả năng cao bị dừng sau khi nhập.

  2. Tỷ lệ lợi nhuận quá cao có thể dẫn đến lợi nhuận không đủ, quá thấp có thể không giành được đủ.

  3. Stop loss quá gần có thể làm tăng cơ hội bị dừng và nên cung cấp một số đệm.

  4. Sự lựa chọn các sản phẩm giao dịch và khung thời gian có thể ảnh hưởng đến hiệu quả.

Các giải pháp tương ứng:

  1. Tối ưu hóa các thông số trung bình động để giảm tín hiệu sai.

  2. Kiểm tra tỷ lệ lợi nhuận khác nhau để tìm tối ưu.

  3. Điều chỉnh khoảng cách dừng lỗ dựa trên biến động thị trường.

  4. Đánh giá hiệu suất chiến lược trên các sản phẩm và khung thời gian khác nhau.

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

Chiến lược có thể được cải thiện trong các khía cạnh sau:

  1. Thêm các chỉ số khác để xác nhận xu hướng để tránh các tín hiệu sai quá mức từ các đường trung bình động.

  2. Tối ưu hóa stop loss và lấy tỷ lệ phần trăm lợi nhuận dựa trên dữ liệu backtest để tìm các thông số tối ưu.

  3. Thay đổi dừng lỗ để dừng lại để khóa trong lợi nhuận chạy nhiều hơn.

  4. Thêm các quy tắc kích thước vị trí với kim tự tháp và dừng lỗ để quản lý rủi ro giao dịch.

  5. Đánh giá sự khác biệt về hiệu suất trên các công cụ giao dịch và khung thời gian khác nhau.

Tóm lại

Chiến lược này xác định hướng xu hướng với đường trung bình động, và thiết lập tỷ lệ dừng lỗ cố định và lấy lợi nhuận dựa trên giá đầu vào để kiểm soát rủi ro và phần thưởng giao dịch duy nhất. Ưu điểm của nó là hạn chế thiệt hại hiệu quả, đảm bảo tỷ lệ lợi nhuận, với logic đơn giản và thẳng thắn.


/*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")

//




Thêm nữa