이 전략은 트렌드를 자동으로 식별하고 반전 기회를 발견하고 금 시장에서 효율적인 추적 거래를 수행하기 위해 다른 기술적 지표와 거래 방법을 결합합니다. 이 전략은 여러 시간 프레임에 적용되며 내일 및 중장기 거래에서 우수한 결과를 얻을 수 있습니다.
이 전략은 주로 이동 평균 크로스오버, 볼링거 밴드, 지원/저항 수준, 거래 신호 판단을위한 가격 패턴과 같은 여러 기술적 인 지표를 사용합니다. 주요 트렌드를 결정 할 때, 트렌드 역전을 정확하게 파악하기 위해 빠른 이동 평균, 느린 이동 평균, RSI 및 MACD 지표의 복합을 사용하여 다각 확인합니다. 특정 시장 진입을 위해, 거래 신호를 생성하기 위해 볼링거 밴드, 주요 가격 수준 및 망치와 같은 가격 패턴의 돌파구를 관찰합니다. 동시에 전략은 위험 통제를 위해 스톱 손실 및 수익 메커니즘을 활용합니다.
전체 전략의 주요 단계는 다음과 같이 나눌 수 있습니다.
판사 트렌드 방향: 빠른 MA와 느린 MA를 계산합니다. 빠른 MA가 느린 MA를 넘을 때 상승하고, 아래로 넘을 때 하락합니다. 또한 확인을 위해 RSI와 MACD를 사용합니다.
특정 진입 지점을 찾아라: 주로 볼린저 대역의 돌파, 주요 지원/저항 수준, 가격 패턴 신호를 관찰함으로써 진입합니다.
손해를 멈추고 이익을 취하라: ATR 지표를 사용하여 스톱 로스 범위를 계산하고 합리적인 수익 포지션을 설정합니다.
가짜 브레이크아웃을 필터링합니다.: 일부 지표는 잘못된 신호를 생성 할 수 있습니다. 여러 지표의 조합을 사용하여 필터링하십시오.
이 전략의 장점은 다음과 같습니다.
다각적 판단: 다른 지표의 조합은 더 많은 차원에서 시장을 판단할 수 있으며 하나의 지표로 잘못된 판단의 가능성을 피할 수 있습니다.
강력한 적용 가능성: 이 전략은 일내 또는 중장기 거래에 상관없이 좋은 결과를 얻을 수 있습니다.
유연성: 이 전략은 다양한 시장 단계에 적응할 수 있는 다양한 거래 방법을 포함합니다.
통제 할 수 있는 위험: 각 거래의 위험 노출을 제어하고 따라서 전체 전략의 최대 유출을 제어하기 위해 Stop Loss 및 Take Profit를 사용하십시오.
이 전략의 주요 위험은 다음과 같습니다.
잘못 판단 될 가능성: 여러 지표의 조합으로 잘못된 판단의 확률이 감소하지만, 극한 시장 조건에서 잘못된 판단의 확률은 여전히 존재합니다. 이것은 기술 지표 거래 전략에서 완전히 피할 수 없는 위험입니다.
변화 의 불확실성: 전환을 판단하기 위한 전략의 핵심 포인트는 미래의 트렌드를 완벽하게 예측할 수 없기 때문에 실제 트렌드 전환 포인트가 될 수 없을 수 있습니다. 이것은 적절한 스톱 로스를 설정함으로써 해결되어야합니다.
거짓 탈출: 브레이크업 사건은 갑자기 나타날 수 있고 단지 단기적인 가짜 브레이크업일 수 있습니다. 더 큰 시간 프레임과 가격 패턴을 관찰함으로써 판단해야합니다.
어려운 매개 변수 최적화: 전략은 여러 매개 변수를 포함하고 있습니다. 이 매개 변수는 결과에 중요한 영향을 미치지만 철저한 조정으로 최적을 찾는 것은 어렵습니다. 여러 지표를 균형있게 유지하며 매개 변수를 안정적으로 유지함으로써 이러한 문제를 완화해야합니다.
이 전략을 최적화하는 주요 방향은 다음과 같습니다.
모델 앙상블: 지표 신호 무게와 시장 확률을 결정하는 데 도움이되는 기계 학습 모델을 도입합니다.
적응적 매개 변수 최적화: 매개 변수를 최적화하기 위해 가격 변화에 기반한 일부 동적 지표 또는 적응 메커니즘을 도입합니다.
이벤트 기반 거래: 거래 신호의 원천으로 금 시장의 뉴스 및 발표와 같은 이벤트에 의해 주도되는 몇 가지 요소를 소개합니다.
모델 헤지드 조합: 긴 포지션과 짧은 포지션의 조합을 구축하고, 서로 대비하는 모델을 구축하여 체계적인 시장 위험을 줄입니다.
결론적으로, 이 금 반전 추적 전략은 다양한 거래 기법을 통합하고, 트렌드 반전을 발견하면서 위험을 제어하며, 고주파 거래에 적합한 효과적인 전략입니다. 더 안정적인 방식으로 장기적인 초과 수익을 얻기 위해 신호 소스를 확장하고, 적응 메커니즘과 위험 관리 모델을 도입함으로써 추가 최적화 할 여지가 있습니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("PratikMoney_Gold_Swing_v2.0", overlay=true) // Trend Following fastMA = ta.sma(close, 50) slowMA = ta.sma(close, 200) rsiValue = ta.rsi(close, 14) [macdLine, signalLine, _] = ta.macd(close, 12, 26, 9) macdDivergence = macdLine - signalLine trendUp = ta.crossover(fastMA, slowMA) and rsiValue > 50 and macdLine > 0 and macdDivergence > 0 trendDown = ta.crossunder(fastMA, slowMA) and rsiValue < 50 and macdLine < 0 and macdDivergence < 0 // Breakout Trading resistanceLevel = input(1500, title="Resistance Level") supportLevel = input(1400, title="Support Level") breakoutUp = close > resistanceLevel and close[1] <= resistanceLevel breakoutDown = close < supportLevel and close[1] >= supportLevel // Moving Average Crossovers shortTermMA = ta.sma(close, 9) longTermMA = ta.sma(close, 21) maCrossUp = ta.crossover(shortTermMA, longTermMA) maCrossDown = ta.crossunder(shortTermMA, longTermMA) // Bollinger Bands bbUpper = ta.sma(close, 20) + 2 * ta.stdev(close, 20) bbLower = ta.sma(close, 20) - 2 * ta.stdev(close, 20) bbBreakoutUp = close > bbUpper and close[1] <= bbUpper bbBreakoutDown = close < bbLower and close[1] >= bbLower // Support and Resistance bounceFromSupport = close < supportLevel and close[1] >= supportLevel reversalFromResistance = close > resistanceLevel and close[1] <= resistanceLevel // Fibonacci Retracement fibonacciLevel = input(0.618, title="Fibonacci Level") fibRetraceUp = ta.lowest(low, 50) >= ta.highest(high, 50) * (1 - fibonacciLevel) fibRetraceDown = ta.highest(high, 50) <= ta.lowest(low, 50) * (1 + fibonacciLevel) // Price Action Trading pinBar = close < open and low < close[1] and close > open[1] engulfing = close < open and close[1] > open and close[2] > open[1] and close > open[2] priceActionLong = pinBar or engulfing and close > open priceActionShort = pinBar or engulfing and close < open // Scalping scalpLong = ta.change(close) > 0.1 scalpShort = ta.change(close) < -0.1 // Volatility Breakout atrLevel = input(1.5, title="ATR Multiplier") volatilityBreakoutUp = close > ta.sma(close, 20) + atrLevel * ta.atr(20) volatilityBreakoutDown = close < ta.sma(close, 20) - atrLevel * ta.atr(20) // Strategy Execution strategy.entry("TrendLong", strategy.long, when=trendUp) strategy.entry("TrendShort", strategy.short, when=trendDown) strategy.entry("BreakoutLong", strategy.long, when=breakoutUp) strategy.entry("BreakoutShort", strategy.short, when=breakoutDown) strategy.entry("VolatilityLong", strategy.long, when=volatilityBreakoutUp) strategy.entry("VolatilityShort", strategy.short, when=volatilityBreakoutDown) strategy.entry("PriceActionLong", strategy.long, when=priceActionLong) strategy.entry("PriceActionShort", strategy.short, when=priceActionShort) strategy.entry("ScalpLong", strategy.long, when=scalpLong) strategy.entry("ScalpShort", strategy.short, when=scalpShort) // Plotting plot(supportLevel, color=color.green, title="Support Level") plot(resistanceLevel, color=color.red, title="Resistance Level") plot(bbUpper, color=color.blue, title="Upper Bollinger Band") plot(bbLower, color=color.blue, title="Lower Bollinger Band") // Plotting Price Action Signals plotshape(series=priceActionLong, title="Price Action Long", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=priceActionShort, title="Price Action Short", color=color.red, style=shape.triangledown, location=location.abovebar) // Plotting Scalping Signals plotshape(series=scalpLong, title="Scalp Long", color=color.green, style=shape.triangleup, location=location.abovebar) plotshape(series=scalpShort, title="Scalp Short", color=color.red, style=shape.triangledown, location=location.belowbar)