트레일링 스톱 손실과 함께 SSL 채널 브레이크업 전략

저자:차오장, 날짜: 2023-10-25 17:40:37
태그:

img

전반적인 설명

이 전략은 트렌드 방향과 트레이드 브레이크오웃을 모멘텀으로 식별하기 위해 SSL 채널 인디케이터를 사용합니다. 가격이 SSL 상단보다 높을 때 길고 가격이 SSL 하단보다 낮을 때 짧습니다. 이동 스톱 손실과 후속 스톱 손실은 위험을 제어하는 데 사용됩니다.

전략 논리

  1. SSL 채널의 상부 및 하부 대역을 계산하기 위해 N 기간의 높은 가격과 낮은 가격의 SMA를 사용한다.

  2. 클로즈가 상단보다 높을 때 긴 신호를 생성하고, 클로즈가 하단보다 높을 때 짧은 신호를 생성합니다.

  3. 손실을 제한하기 위해 입력 후 반대 반대의 고정 스톱 손실을 설정합니다.

  4. 수익을 확보하기 위해 가격 움직임을 따르는 후속 스톱 로스를 설정합니다.

  5. 가격이 고정 스톱 로스 또는 후속 스톱 로스를 달성할 때 종료합니다.

장점

  1. 트렌드 방향을 결정하기 위해 채널 지표를 사용하세요

  2. 이중 스톱 손실은 이윤 취득과 위험 통제를 결합합니다.

  3. 높은 거래 빈도는 극히 단기 거래에 적합합니다.

  4. 개인 트레이딩 스타일에 적응할 수 있는 유연한 매개 변수

  5. 자동으로 장/단 검출, 방향 판단이 필요 없습니다.

위험성

  1. 단기 거래는 뉴스 충격과 높은 변동성에 취약합니다.

  2. 일정한 스톱 로스는 브레이크 이후 과대 손실을 유발할 수 있습니다.

  3. 부적절한 후속 스톱 손실은 조기 출구로 이어질 수 있습니다.

  4. 잘못된 신호에 민감한 채널 파업.

  5. 경험 많은 단기 거래자에게만 적합합니다.

해결책:

  1. 적당한 고정 스톱 손실을 설정하여 거래 당 손실을 제한합니다.

  2. 조기 퇴출을 피하기 위해 후속 스톱 손실 수준을 최적화하십시오.

  3. 진출을 확인하기 위해 볼륨 필터를 추가하세요.

  4. 포지션 크기를 관리하고, 위험 노출을 통제하기 위해 확장합니다.

최적화

  1. 가장 좋은 길이를 찾기 위해 SMA 기간을 최적화합니다.

  2. BB, KD 등과 같은 다른 채널 표시기를 시도하십시오.

  3. 분출 신뢰성을 확인하기 위해 부피 지표를 추가합니다.

  4. 소규모의 거짓 파장을 피하기 위해 매출율을 고려하십시오.

  5. 최적의 출구 시기를 찾기 위해 다른 대기 기간을 테스트합니다.

  6. 고정 및 후속 스톱 손실 매개 변수를 테스트합니다.

  7. 자본 효율을 극대화하기 위해 포지션 사이즈 전략을 조정합니다.

요약

이 전략은 SSL 채널 방향 편향 및 브레이크아웃 신호를 결합하고, 이중 스톱 손실 관리를 제공합니다. 트렌드를 캡처하기 위해 빠르게 반응하며, 고 주파수 거래에 적합합니다. 가짜 브레이크아웃을 조심하고, 스톱 손실 메커니즘을 정비하고, 위치 크기를 제어하십시오. 추가 최적화로 효과적인 초단기 거래 전략이 될 가능성이 있습니다.


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


더 많은