이동평균선과 초월을 기반으로 한 트레일링 스톱로스 전략


생성 날짜: 2024-01-17 11:46:01 마지막으로 수정됨: 2024-01-17 11:46:01
복사: 0 클릭수: 552
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동평균선과 초월을 기반으로 한 트레일링 스톱로스 전략

개요

이 전략은 평균선과 초과 지표를 사용하여 시장 추세를 판단하고, 스톱 로즈 메커니즘을 추적하는 데 결합하여, 스톱 로즈 거래 전략을 설계합니다. 지표를 초과하는 것이 상승 추세라고 판단되면, 종결 가격에 14 주기의 평균선을 통과하면, 더 많이하십시오. 지표를 초과하는 것이 하향 추세라고 판단되면, 종결 가격에 14 주기의 평균선을 통과하면, 더 많이하십시오.

전략 원칙

이 전략은 평균선, 초과 지표 및 추적 중지 손실의 세 가지 기술 지표를 사용합니다.

우선, 14주기 및 44주기 지수 이동 평균을 계산한다. 이 중 14주기 평균은 단기 경향을 판단하는데, 44주기 평균은 장기 경향을 판단하는데 사용된다. 단기 평균에 장기 평균을 가로질러서는 더 많은 신호를 보고, 반대로 무시한다.

둘째, 현재 시장의 흐름을 판단하기 위해 초과 지표를 계산한다. 초과 지표는 정향 지표 DI+와 역향 지표 DI-로 구성된다. DI+가 DI-보다 높으면 상향 경향을 보며, DI-가 DI+보다 높으면 상향 경향을 보는다.

마지막으로, 평평선 신호와 초과 지표의 트렌드 판단을 결합하여 거래 신호를 생성한다. 초과 지표가 많이 보이며 가격이 14 주기 평균선을 통과하면 더 많이 한다. 초과 지표가 많이 보이며 가격이 14 주기 평균선을 통과하면 하락한다. 입시 후, 44 주기 평균선 근처에 중지 손실을 설정하여 추적 중지한다.

우위 분석

이 전략은 세 가지 기술 지표의 장점을 종합하여 정확하고 적시에 손실을 방지하여 다음과 같은 장점을 가지고 있습니다.

  1. 평균선은 단기 및 장기 동향을 판단하고, 신호를 정확하게 식별한다.
  2. 주요 트렌드 방향에 대한 지표 이상의 판단, 잘못된 신호를 줄여줍니다.
  3. 단독 스톱 손실을 줄이고, 전체적으로 스톱 손실을 줄여줍니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 불공정 위험. 평균을 후에 다시 회수될 수 있으며, 이로 인해 최적의 입구 지점을 놓칠 수 있다.
  2. 정지 손실은 위험으로 유발된다. 추적 정지는 손실을 완전히 피할 수 없으며, 단독 손실을 일정 범위 내에서 제어할 수 있다.
  3. 매개 변수 최적화 위험. 평균선 주기, 지표 매개 변수를 초과하는 등의 설정이 부적절하면 신호 품질에 영향을 줄 수 있다.

대응방법:

  1. 다른 지표와 함께 필터링 신호를 사용하여 돌파 성공률을 높여줍니다.
  2. 정지 지수를 최적화하여 정지 지점을 합리적인 위치에 설정한다.
  3. 매개 변수를 테스트 최적화하여 최적의 매개 변수 조합을 선택한다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 다른 지표 판단을 추가하고, 잘못된 신호를 필터링하고, 전략 승률을 높여줍니다. 예를 들어 거래량 지표와 결합하여, 강도 트렌드를 강화합니다.

  2. 손실을 추적하는 방법을 최적화하여 손실을 더 똑똑하고 유연하게 만듭니다. 예를 들어, ATR의 손실, Chandelier Exit 등에 따라

  3. 기계학습 방법을 사용하여 더 우수한 변수를 찾습니다. 예를 들어, 유전 알고리즘, 심도학습 등과 같은 최적의 변수 조합을 찾습니다.

  4. 더 높은 시간 프레임에 전략을 실행하여 고주파음 방해를 피하십시오.

요약하다

이 전략은 종합적으로 평균선, 지표를 초월하고, 트래킹 스톱로스 기술을 사용하여 신호의 정확성, 스톱로스의 적당성을 판단하는 실용적이고 신뢰할 수 있는 트래킹 스톱로스 거래 전략이다. 후속적으로 신호 품질을 향상시키고, 스톱로스 방식을 최적화함으로써 전략의 효과를 더욱 강화할 수 있다.

전략 소스 코드
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Santanu Strategy", overlay=true)

atrPeriod = input(3, "ATR Length")
factor = input.float(1, "Factor", step = 0.01)

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

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)

len = input.int(14, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.ema(src, len)

len44 = input.int(44, minval=1, title="Length")
out44 = ta.ema(src, len44)

isRising = ta.rising(out, 1)
isFalling = ta.falling(out, 1)

plotColor = color.black
if isRising
    plotColor := color.green
else if isFalling
    plotColor := color.red
    

plot(out, color=plotColor, title="MA", offset=offset)
plot(out44, color=color.blue, title="MA", offset=offset)

if direction < 0
    if close >= out
        //if low >= out44
        if isRising
            strategy.entry("Buy Now", strategy.long)

if direction > 0
    if close <= out
        //if high <= out44
        if isFalling
            strategy.entry("Sell Now", strategy.short)


//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)