이 전략은
특히, 모멘텀 지표는 가격 움직임의 가속화 또는 둔화 및 트렌드 변화의 판단에 사용됩니다. 슈퍼 트렌드는 가격이 상승 또는 하락 채널을 통과하고 트렌드 변화를 판단하는 데 사용됩니다. 둘의 조합은 트렌드 역전 지점을 더 정확하게 파악 할 수 있습니다.
운동량 표시기 부분
가격의 N-day 운동량 값을 계산하고 운동량 값의 1일 운동량을 계산합니다. N-day 운동량 > 0과 1일 운동량 > 0이면 긴 신호입니다. N-day 운동량 < 0과 1일 운동량 < 0이면 짧은 신호입니다.
슈퍼트렌드 지표 부분
가격의 ATR 값을 계산하고, ATR을 기반으로 상향 채널 라인과 하향 채널 라인을 그립니다. 가격이 하단에서 상향 채널을 통과하면 긴 신호이고, 가격이 상단에서 하향 채널을 통과하면 짧은 신호입니다.
입력 논리
모멘텀 지표의 긴 신호와 슈퍼트렌드의 긴 신호의 AND 동작을 동시에 발생했을 때 최종 긴 입문 신호를 생성하기 위해 사용한다. 모멘텀 지표의 짧은 신호와 슈퍼트렌드의 짧은 신호의 AND 동작을 동시에 발생했을 때 최종 짧은 입문 신호를 생성하기 위해 사용한다.
동력 지표를 사용하여 트렌드 반전 지점을 파악하기 위해 가격 움직임의 가속화 또는 둔화를 결정합니다.
슈퍼트렌드 지표를 사용하여 가격 돌파 경로를 결정하여 돌파 지점을 캡처합니다.
두 종류의 지표의 상호 검증은 잘못된 신호를 줄이고 항목의 정확성을 향상시킬 수 있습니다.
두 지표의 출구 논리 조합은 추세 추적 출구를 가능하게 해 조기 출구를 방지합니다.
N-day 운동 지표의 잘못된 매개 변수 설정은 트렌드 반전 지점을 놓칠 수 있습니다.
SuperTrend의 잘못된 매개 변수 설정은 부정확한 채널 도영 및 잘못된 신호로 이어질 수 있습니다.
두 지표의 상호 검증은 어떤 기회를 놓칠 수 있습니다.
전략의 잠재력을 극대화하기 위해 최적의 매개 변수 쌍을 찾기 위해 매개 변수 조합을 조정해야합니다.
대응 솔루션:
최적의 매개 변수를 찾기 위해 앞뒤 분석을 사용하세요.
실시간 매개 변수 최적화를 위한 매개 변수 최적화 모듈 추가
두 지표의 조합 논리를 조정하고 포괄적으로 고려하십시오.
시장 조건에 따라 실시간 조정을 위해 적응 매개 변수 최적화 모듈을 추가
표시 신호의 정확성을 판단하는 데 도움이 되는 기계 학습 모델을 추가
더 많은 지표를 확장하여 지표 집합을 형성하고 투표 메커니즘을 사용하여 입력 신호를 생성하십시오.
데이터에 기반한 입출시점 판단을 위해 전통적인 지표 대신 딥러닝 모델을 사용
이 전략은 엔트리의 정확성을 향상시키기 위해 두 번 검증을 통해 모멘텀 및 슈퍼 트렌드 지표의 장점을 결합하고 출입의 타이밍을 판단하기 위해 지표를 사용합니다. 지표의 단일 사용에 비해 잘못된 신호를 줄이고 더 높은 승률을 달성 할 수 있습니다. 매개 변수 최적화, 머신 러닝 및 기타 확장 기술을 통해 전략 효과의 추가 개선이 여전히 가능하며 심도있는 연구와 응용을받을 가치가 있습니다.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Momentum + SuperTrend Strategy", overlay=true) // Momentum Strategy length = input(12) price = close momentum(seria, length) => mom = seria - seria[length] mom mom0 = momentum(price, length) mom1 = momentum(mom0, 1) momLongCondition = mom0 > 0 and mom1 > 0 momShortCondition = mom0 < 0 and mom1 < 0 // SuperTrend Strategy Periods = input(10) Multiplier = input(3.0) changeATR = input(true) src = input(hl2) atr2 = sma(tr, Periods) atr = changeATR ? atr(Periods) : atr2 up = src - (Multiplier * atr) up1 = nz(up[1], up) up := close[1] > up1 ? max(up, up1) : up dn = src + (Multiplier * atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend buySignal = trend == 1 and trend[1] == -1 sellSignal = trend == -1 and trend[1] == 1 // Combined Entry Conditions longCondition = momLongCondition and buySignal shortCondition = momShortCondition and sellSignal // Strategy Entries if (longCondition) strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE") else strategy.cancel("MomLE") if (shortCondition) strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE") else strategy.cancel("MomSE") // Plot SuperTrend on the chart upPlot = plot(trend == 1 ? up : na, title="SuperTrend Up", color=color.green, linewidth=2) dnPlot = plot(trend == -1 ? dn : na, title="SuperTrend Down", color=color.red, linewidth=2) // Highlight the SuperTrend region fill(upPlot, dnPlot, color = trend == 1 ? color.new(color.green, 90) : color.new(color.red, 90), title="SuperTrend Highlight") // Plot SuperTrend Buy/Sell signals on the chart plotshape(series=buySignal, title="SuperTrend Buy Signal", color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sellSignal, title="SuperTrend Sell Signal", color=color.red, style=shape.triangledown, size=size.small) // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © naveen1119