리소스 로딩... 로딩...

트렌드 필터와 예외 출구와 함께 부드러운 이동 평균 스톱 손실 & 취득 전략

저자:차오장, 날짜: 2024-06-03 16:54:04
태그:SMARSITRMATPSL

img

전반적인 설명

이 전략은 트렌드 필터, 볼륨 및 변동성 조건과 결합하여 트렌드 이동 평균 (SMA), 상대적 강도 지수 (RSI), 참 범위 (TR), 볼륨 이동 평균 (Volume MA) 과 같은 지표를 사용하여 특정 기준이 충족되면 거래를 실행합니다. 이 전략의 주된 아이디어는 가격이 SMA200 이하이고 트렌드가 하락하고 볼륨과 변동성이 낮을 때 긴 포지션을 입력하는 것입니다. 스톱 로스와 취득 수준은 입시에 설정됩니다. 또한 전략에는 예외 출구 메커니즘이 포함되어 있으며, RSI가 70을 초과하거나 미리 설정된 스톱 로스와 취득 수준이 달성되면 포지션을 닫습니다.

전략 원칙

  1. SMA, RSI, Volume MA, TR MA와 같은 지표를 계산합니다.
  2. 현재 트렌드가 상승 또는 하락하는지를 결정합니다.
  3. 현재 볼륨과 변동성이 낮는지 확인합니다.
  4. 가격이 SMA200 이하이고 저용량 및 변동성 조건이 충족되면 긴 포지션을 입력합니다.
  5. 스톱 로스를 95%로 설정하고 영업 수익을 입력 가격의 150%로 설정
  6. RSI가 70을 초과하거나 미리 설정된 스톱 로스 또는 영업 마이너스 수준이 달성되면 거래를 종료합니다.
  7. 트렌드가 변하고 가격이 SMA를 통과 할 때 포지션을 닫을 수 있습니다.

이점 분석

  1. 이 전략은 시장 조건에 대한 보다 포괄적인 분석을 위해 여러 가지 기술 지표를 결합합니다.
  2. 트렌드 필터와 볼륨/변동성 조건은 불리한 시장 환경에서 거래를 피하는 데 도움이 됩니다.
  3. 명확한 스톱 로스 및 영업 수익 수준을 설정하면 위험을 효과적으로 관리 할 수 있습니다.
  4. 예외 출구 메커니즘은 특정 상황에서 적시에 포지션을 폐쇄하여 추가 손실을 방지합니다.

위험 분석

  1. 전략의 성능은 매개 변수 설정의 선택에 의해 영향을 받을 수 있습니다.
  2. 어떤 경우에는 진입 조건이 실행된 후 가격이 빠르게 역전될 수 있으며 손실이 발생할 수 있습니다.
  3. 전략은 근본적인 요인을 고려하지 않으며 중요한 사건에 의해 영향을받을 수 있습니다.

최적화 방향

  1. 입점 및 출구 정확성을 향상시키기 위해 MACD, 볼링거 밴드 등과 같은 추가 기술 지표를 통합하는 것을 고려하십시오.
  2. 트레일링 스톱 또는 동적 인 수익을 사용하는 것과 같은 스톱 손실 및 수익 레벨 설정을 최적화하십시오.
  3. 다른 시장 조건에 따라 전략 매개 변수를 동적으로 조정합니다.
  4. 포지션 크기와 자금 관리를 포함한 리스크 관리 모듈을 도입

요약

이 전략은 트렌드 필터, 볼륨 및 변동성 조건과 함께 여러 기술적 지표를 결합하여 특정 상황에서 거래를 실행합니다. 명확한 스톱 로스 및 수익 수치를 설정하고 예외 출구 메커니즘을 구현함으로써 전략은 위험을 효과적으로 관리합니다. 그러나 매개 변수 선택 및 시장 이상과 같은 요소가 성능에 영향을 줄 수 있으므로 전략에는 특정 한계가 있습니다. 더 많은 지표를 통합하고 매개 변수 설정을 최적화하고 위험 관리 구성 요소를 추가하여 향후 개선이 가능합니다.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategia Stop Loss & Take Profit z Filtrem Trendu i Wyjątkiem", shorttitle="Smooth MA SL & TP with Exception", overlay=true)

// Parametry
tp_multiplier = input.float(1.5, title="Mnożnik Take Profit")
sl_percent = input.float(5, title="Procent Stop Loss")
wait_bars = input.int(3, title="Liczba Oczekiwanych Świec")
sma_period = input.int(200, title="Okres SMA")
rsi_period = input.int(14, title="Okres RSI")
vol_ma_period = input.int(20, title="Okres Średniej Wolumenu")
tr_ma_period = input.int(20, title="Okres Średniej Rzeczywistego Zakresu")

// Obliczenie Gładkiej Średniej Kroczącej
sma = ta.sma(close, sma_period)

// Obliczenie RSI
rsi = ta.rsi(close, rsi_period)

// Filtr Trendu
uptrend = close > sma
downtrend = close < sma

// Warunek konsolidacji: Niski wolumen i niska zmienność
niski_wolumen = volume < ta.sma(volume, vol_ma_period)
niska_zmienosc = ta.tr(true) < ta.sma(ta.tr(true), tr_ma_period)

// Warunek Wejścia (Long): Cena poniżej SMA 200 i filtr trendu w strefie czerwonej
warunek_wejscia = close < sma and niski_wolumen and niska_zmienosc and not uptrend

// Warunek Wyjścia ze strategii
warunek_wyjscia = downtrend and close > sma and ta.crossover(close, sma)

// Ustalanie Stop Loss i Take Profit
var float stop_loss = na
var float take_profit = na

var int indeks_wejscia = na

if (warunek_wejscia)
    stop_loss := close * (1 - sl_percent / 100)
    take_profit := close * (1 + tp_multiplier)
    indeks_wejscia := bar_index

// Handel
if (warunek_wejscia)
    strategy.entry("Long", strategy.long)

// Warunek Wyjścia: RSI w strefie wykupienia lub Stop Loss/Take Profit
if (strategy.opentrades != 0)
    if (rsi > 70)
        strategy.exit("Take Profit/Stop Loss", "Long", limit=take_profit)
    else if (bar_index - indeks_wejscia == wait_bars)
        strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss, limit=take_profit)

// Wyjątek: Warunek Wyjścia z Longów na podstawie zmiany trendu
if (warunek_wyjscia)
    strategy.close("Long")

// Rysowanie RSI
rsi_plot = plot(rsi, title="RSI", color=color.blue)

// Rysowanie Gładkiej Średniej Kroczącej
sma_plot = plot(sma, color=color.gray, title="Smooth MA", linewidth=2)

// Rysowanie Filtru Trendu
fill(sma_plot, rsi_plot, color=downtrend ? color.new(color.red, 90) : na)


관련

더 많은