Chiến lược Supertrend Take Profit

Tác giả:ChaoZhang, Ngày: 2024-01-08 11:08:39
Tags:

img

Tổng quan

Chiến lược này sử dụng chỉ số Supertrend để xác định các điểm đầu vào, đi dài hoặc ngắn khi chỉ số đảo ngược. Nó cũng đặt ba lệnh lấy lợi nhuận với lợi nhuận cố định 2%, 5% và 10% để khóa lợi nhuận ở các mức khác nhau.

Chiến lược logic

Chiến lược sử dụng chỉ số Supertrend để xác định hướng xu hướng. Supertrend dựa trên phạm vi trung bình thực sự và yếu tố nhân. Khi giá vượt qua dải trên, nó báo hiệu tình trạng mua quá mức và khi giá giảm xuống dưới dải dưới, nó báo hiệu tình trạng bán quá mức. Do đó, chiến lược phát hiện sự đảo ngược theo hướng Supertrend để xác định các mục nhập.

Cụ thể, khi thay đổi trong Supertrend nhỏ hơn 0, nó chỉ ra rằng chỉ số đã đảo ngược từ trên xuống, tạo ra tín hiệu dài. Khi thay đổi trong Supertrend lớn hơn 0, chỉ số đã đảo ngược từ dưới lên, tạo ra tín hiệu ngắn. Khi nhận được tín hiệu dài hoặc ngắn, giá đầu vào được ghi lại và đặt lệnh.

Chiến lược này cũng đặt ba lệnh lấy lợi nhuận ở mức 2%, 5% và 10% giá nhập, để khóa lợi nhuận mục tiêu cố định. Tỷ lệ của các lệnh này được đặt lần lượt ở mức 25%, 50% và 25%. Sau khi tín hiệu nhập, các lệnh lấy lợi nhuận này được đặt đồng thời để nắm bắt lợi nhuận ở các mức độ khác nhau.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Sử dụng Supertrend cho các mục nhập có hiệu quả nắm bắt các điểm đảo ngược xu hướng cho thời gian dài / ngắn chính xác.

  2. Tỷ lệ lợi nhuận nhiều lần cho phép khóa lợi nhuận ở các mức độ khác nhau, giảm rút tiền.

  3. Các mục tiêu lợi nhuận bảo thủ là 2%, 5% và 10% tránh việc mở rộng quá mức lợi nhuận dẫn đến tổn thất lớn hơn.

  4. Logic đơn giản và rõ ràng, dễ hiểu và sửa đổi, phù hợp với người mới bắt đầu.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Các thông số Supertrend không chính xác có thể gây ra các tín hiệu đảo ngược bị thiếu, dẫn đến các mục không chính xác.

  2. Mức lợi nhuận bảo thủ có thể bỏ lỡ cơ hội để tăng lợi nhuận hơn nữa.

  3. Khoảng cách và giới hạn di chuyển có thể kích hoạt dừng trước khi Supertrend điều chỉnh.

  4. Không có điều kiện dừng lỗ có nghĩa là tiềm năng lỗ không giới hạn.

Các lĩnh vực cải thiện

Một số cách để tối ưu hóa chiến lược:

  1. Kiểm tra các thông số Supertrend khác nhau để cải thiện độ nhạy.

  2. Thêm stop loss để giới hạn lỗ tối đa.

  3. Điều chỉnh tỷ lệ lợi nhuận và số lượng dựa trên biểu tượng và khung thời gian.

  4. Thêm các bộ lọc để tránh giao dịch quá mức trong các thị trường giới hạn phạm vi.

  5. Tối ưu hóa việc sử dụng vốn bằng cách điều chỉnh kích thước giao dịch mặc định để giảm rủi ro cho mỗi giao dịch.

Tóm lại

Chiến lược này đơn giản và thực tế nói chung. Nó sử dụng Supertrend cho các mục nhập và nhiều lệnh lấy lợi nhuận để khóa lợi nhuận, kiểm soát rủi ro hiệu quả. Nhưng có chỗ cho những cải tiến như thêm dừng, tối ưu hóa các tham số vv cung cấp các hướng nâng cao trong tương lai. Tóm lại, chiến lược này phù hợp cho người mới bắt đầu học và thực hành giao dịch thuật toán.


/*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( "Supertrend with TP", overlay=true )

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

// TP's
tp1Open = input.bool(true, "TP1")
tp1 = input.float(2.0, "TP Level (%)", step = 0.1) / 100
tp1Amount = input.int(25, "Amount (%)", step = 1)
tp2Open = input.bool(true, "TP2")
tp2 = input.float(5.0, "TP Level (%)", step = 0.1) / 100
tp2Amount = input.int(50, "Amount (%)", step = 1)
tp3Open = input.bool(true, "TP3")
tp3 = input.float(10.0, "TP Level (%)", step = 0.1) / 100
tp3Amount = input.int(25, "Amount (%)", step = 1)

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

entryPrice = 0.0
entryPrice := entryPrice[1]

if ta.change(direction) < 0
    strategy.entry("Long", strategy.long)
    entryPrice := close

if ta.change(direction) > 0
    strategy.entry("Short", strategy.short)
    entryPrice := close

if (tp1Open)
    strategy.exit ("TP1", from_entry="Long", limit=entryPrice * (1 + tp1), qty_percent=tp1Amount)
    strategy.exit ("TP1", from_entry="Short", limit=entryPrice * (1 - tp1), qty_percent=tp1Amount)

if (tp2Open)
    strategy.exit ("TP2", from_entry="Long", limit=entryPrice * (1 + tp2), qty_percent=tp2Amount)
    strategy.exit ("TP2", from_entry="Short", limit=entryPrice * (1 - tp2), qty_percent=tp2Amount)
    
if (tp3Open)    
    strategy.exit ("TP3", from_entry="Long", limit=entryPrice * (1 + tp3), qty_percent=tp3Amount)
    strategy.exit ("TP3", from_entry="Short", limit=entryPrice * (1 - tp3), qty_percent=tp3Amount)

Thêm nữa