Chiến lược thoát kênh SSL với Trailing Stop Loss

Tác giả:ChaoZhang, Ngày: 2023-10-25 17:40:37
Tags:

img

Tổng quan

Chiến lược này sử dụng chỉ số kênh SSL để xác định hướng xu hướng và đột phá giao dịch với động lực. Nó đi dài khi giá phá vỡ trên dải trên SSL và đi ngắn khi giá phá vỡ dưới dải dưới SSL. Động dừng lỗ và dừng lỗ bị kéo theo được sử dụng để kiểm soát rủi ro.

Chiến lược logic

  1. Tính toán các băng tần trên và dưới của kênh SSL bằng cách sử dụng SMA của giá cao và thấp với N thời gian.

  2. Tạo tín hiệu dài khi gần ở trên dải trên và tín hiệu ngắn khi gần ở dưới dải dưới.

  3. Thiết lập lỗ dừng cố định ở dải đối diện sau khi nhập, để hạn chế lỗ.

  4. Thiết lập stop loss sau sau khi chuyển động giá, để khóa lợi nhuận.

  5. Ra khi giá đạt hoặc dừng lỗ cố định hoặc dừng lỗ kéo theo.

Ưu điểm

  1. Sử dụng chỉ số kênh để xác định hướng xu hướng, tránh phá vỡ sai.

  2. Đánh lỗ hai lần kết hợp lấy lợi nhuận và kiểm soát rủi ro.

  3. Tần suất giao dịch cao phù hợp với giao dịch cực ngắn hạn.

  4. Các thông số linh hoạt thích nghi với phong cách giao dịch cá nhân.

  5. Xác định tự động dài/ngắn, không cần phán đoán hướng.

Rủi ro

  1. Giao dịch ngắn hạn dễ bị sốc tin tức và biến động cao.

  2. Đặt lệnh dừng lỗ cố định có thể gây ra lỗ quá lớn sau khi phá vỡ.

  3. Đánh mất dừng không đúng cách có thể dẫn đến thoát sớm.

  4. Các kênh có khả năng phát tín hiệu sai.

  5. Chỉ phù hợp với các nhà giao dịch ngắn hạn có kinh nghiệm.

Giải pháp:

  1. Đặt mức dừng lỗ cố định hợp lý để giới hạn lỗ cho mỗi giao dịch.

  2. Tối ưu hóa mức dừng lỗ để tránh thoát sớm.

  3. Thêm bộ lọc âm lượng để xác nhận sự đột phá thực sự.

  4. Quản lý kích thước vị trí, quy mô để kiểm soát rủi ro.

Tối ưu hóa

  1. Tối ưu hóa thời gian SMA để tìm ra độ dài tốt nhất.

  2. Hãy thử các chỉ số kênh khác như BB, KD v.v.

  3. Thêm chỉ số âm lượng để xác nhận sự tin cậy.

  4. Xem xét tỷ lệ lưu chuyển để tránh giảm khối lượng sai.

  5. Kiểm tra các khoảng thời gian giữ khác nhau để tìm thời gian thoát tốt nhất.

  6. Kiểm tra các thông số dừng lỗ cố định và sau.

  7. Điều chỉnh chiến lược kích thước vị trí để tối đa hóa hiệu quả vốn.

Tóm lại

Chiến lược này kết hợp các tín hiệu định hướng kênh SSL và tín hiệu breakout, với quản lý stop loss kép. Nó phản ứng nhanh để nắm bắt xu hướng, phù hợp với giao dịch tần số cao. Cẩn thận các breakout sai, tinh chỉnh cơ chế stop loss và kiểm soát kích thước vị trí. Với tối ưu hóa thêm, nó có tiềm năng trở thành một chiến lược giao dịch cực ngắn hạn hiệu quả.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SSL Channel Cross with Trailing Stop and Stop Loss", overlay=true)

period = input(title="Period", defval=10)
len = input(title="Length", defval=10)
smaHigh = sma(high, len)
smaLow = sma(low, len)

Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]

sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)

longCondition = crossover(sslUp, sslDown)
shortCondition = crossunder(sslUp, sslDown)

// Define el tamaño del trailing stop en puntos (ajusta según tu preferencia)
trailingStopSize = input(title="Trailing Stop Size (in Points)", defval=10)

var float trailingStopPrice = na
var float stopLossPrice = na

if (longCondition)
    // Si se cumple la condición de compra, configura la posición larga, el trailing stop y el stop loss
    strategy.entry("Long", strategy.long)
    trailingStopPrice := low - trailingStopSize
    stopLossPrice := sslDown

if (shortCondition)
    // Si se cumple la condición de venta corta, configura la posición corta, el trailing stop y el stop loss
    strategy.entry("Short", strategy.short)
    trailingStopPrice := high + trailingStopSize
    stopLossPrice := sslUp

// Calcula el trailing stop
if (strategy.position_size > 0)
    trailingStopPrice := max(trailingStopPrice, stopLossPrice)
    if (close < trailingStopPrice)
        strategy.close("ExitLong", comment="Trailing Stop Long")

if (strategy.position_size < 0)
    trailingStopPrice := min(trailingStopPrice, stopLossPrice)
    if (close > trailingStopPrice)
        strategy.close("ExitShort", comment="Trailing Stop Short")


Thêm nữa