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

스마 트렌드 추후 전략, 후속 스톱 로스 및 규율적인 재입구

저자:차오장, 날짜: 2024-06-03 16:25:32
태그:SMAMATSOSL

img

전반적인 설명

이 전략은 단순 이동 평균 (SMA) 의 기울기를 기반으로 상승 추세를 식별하고 특정 조건이 충족되면 긴 포지션을 진입합니다. 이는 스톱-러스 가격을 동적으로 조정함으로써 이익을 보호하기 위해 선택적 인 트레일링 스톱-러스 메커니즘을 통합합니다. 또한 전략은 과도하게 높은 가격으로 포지션을 진입하는 것을 방지하기 위해 스톱-러스 이벤트 후 재 진입 조건을 설정합니다. 이러한 기능으로 전략은 상승 추세를 효과적으로 파악하고 위험을 관리하며 규율적인 거래를 보장합니다.

전략 논리

  1. 지정된 기간 동안 SMA를 계산하고 주어진 창 크기의 기울기가 상승 추세를 식별하는 최소 기울기 문턱보다 크는지 결정합니다.
  2. SMA 기울기가 양수이고 현재 가격이 SMA보다 높을 때 전략은 긴 포지션에 진입합니다.
  3. 트레일링 스톱 손실이 활성화되면, 트레일링 스톱 가격은 현재 시장 가격과 지정된 트레일링 스톱 비율을 기반으로 계산됩니다. 가격이 지점에 유리하게 움직일 때 트레일링 스톱 가격은 상향으로 조정되며 이익을 보호합니다.
  4. 이 전략은 가격이 SMA 이하로 넘어갈 때 또는 후속 스톱-러스가 트리거될 때 포지션을 종료합니다.
  5. 스톱 로스 종료 후, 가격이 SMA보다 특정 비율로 높으면 전략은 과도하게 높은 가격으로 구매를 피하기 위해 다시 입장이 되지 않습니다.

전략적 장점

  1. 트렌드 추적: 상승 추세를 식별하기 위해 SMA 기울기를 활용함으로써 전략은 트렌드 기회를 효과적으로 포착합니다.
  2. 리스크 관리: 선택적 인 후속 스톱 로스 기능은 수익을 동적으로 보호하고 잠재적 인 손실을 제한합니다.
  3. 규율적인 재입입장: 스톱 로스 이후 재입장 조건은 과도한 가격으로 구매를 방지하고 거래 규율을 보장합니다.
  4. 매개 변수 유연성: 전략은 다양한 시장과 거래 스타일에 따라 최적화를 허용하는 SMA 길이, 최소 기울기, 트레일링 스톱 비율 등 여러 가지 조정 가능한 매개 변수를 제공합니다.

전략 위험

  1. 매개 변수 민감성: 전략의 성능은 매개 변수 선택에 민감하며 최적의 미만의 매개 변수 설정은 평균 미만의 결과를 초래할 수 있습니다.
  2. 불안한 시장: 불안한 시장 조건에서 빈번한 거래는 높은 거래 비용과 잠재적 인 손실을 초래할 수 있습니다.
  3. 예상치 못한 사건: 예상치 못한 시장 사건 및 비정상적인 가격 변동으로 인해 전략이 실패하거나 예상치 못한 손실이 발생할 수 있습니다.

전략 최적화 방향

  1. 동적 매개 변수 최적화: 다른 시장 환경에 적응하기 위해 시장 조건에 따라 SMA 길이, 최소 기울기 등과 같은 매개 변수를 동적으로 조정하는 적응 메커니즘을 도입합니다.
  2. 증강된 위험 관리: 위험 노출을 더욱 통제하기 위해 변동성 기반 포지션 크기, 동적 스톱 로스 등 추가 위험 관리 기술을 포함합니다.
  3. 긴 단기 거래: 단기 판매를 지원하기 위해 전략을 확장하여 하락 추세에서도 이익을 얻을 수 있습니다.
  4. 다중 시간 프레임 확인: 트렌드 식별의 신뢰성 및 안정성을 향상시키기 위해 여러 시간 프레임에서 신호를 결합합니다.

요약

이 전략은 SMA 트렌드 추적, 트래일링 스톱 로스 및 규율된 재입구 메커니즘을 활용하여 리스크를 관리하는 동시에 상승 트렌드를 포착합니다. 매개 변수 설정을 최적화하고 리스크 관리를 강화하고, 긴 단위 거래를 지원하고, 멀티 타임프레임 확인을 통합함으로써 전략의 적응력과 견고성을 더욱 향상시킬 수 있습니다.


/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA Incline Strategy with Optional Trailing Stop-Loss", overlay=true, calc_on_every_tick=true)

// Input parameters
windowSize = input.int(20, title="Window Size")
maLength = input.int(150, title="Moving Average Length")
minSlope = input.float(0.1, title="Minimum Slope")
useTrailingStop = input.bool(true, title="Use Trailing Stop-Loss")
trailingStopPercentage = input.float(2.8, title="Trailing Stop Percentage (%)") / 100

// Calculate the moving average
ma = ta.sma(close, maLength)

// Calculate the slope of the moving average over the window size
previousMa = ta.sma(close[windowSize], maLength)
slopeMa = (ma - previousMa) / windowSize

// Check conditions
isAboveMinSlope = slopeMa > minSlope
isAboveMa = close > ma

// Buy condition
buyCondition = isAboveMinSlope and isAboveMa

// Execute strategy
if (buyCondition and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Trailing stop-loss (optional)
if (strategy.opentrades == 1 and useTrailingStop and isAboveMa)
    // Calculate the trailing stop price
    trailPrice = close * (1 - trailingStopPercentage)
    // Use the built-in strategy.exit function with the trailing stop
    strategy.exit("Trail Stop", "Long", stop=trailPrice)

// Exit condition
sellCondition = ta.crossover(ma, close)
if (sellCondition and strategy.opentrades == 1)
    strategy.close("Long")


관련

더 많은