다중 시간 프레임 금 반전 추적 전략

저자:차오장, 날짜: 2024-01-31 15:01:39
태그:

img

전반적인 설명

이 전략은 트렌드를 자동으로 식별하고 반전 기회를 발견하고 금 시장에서 효율적인 추적 거래를 수행하기 위해 다른 기술적 지표와 거래 방법을 결합합니다. 이 전략은 여러 시간 프레임에 적용되며 내일 및 중장기 거래에서 우수한 결과를 얻을 수 있습니다.

전략 원칙

이 전략은 주로 이동 평균 크로스오버, 볼링거 밴드, 지원/저항 수준, 거래 신호 판단을위한 가격 패턴과 같은 여러 기술적 인 지표를 사용합니다. 주요 트렌드를 결정 할 때, 트렌드 역전을 정확하게 파악하기 위해 빠른 이동 평균, 느린 이동 평균, RSI 및 MACD 지표의 복합을 사용하여 다각 확인합니다. 특정 시장 진입을 위해, 거래 신호를 생성하기 위해 볼링거 밴드, 주요 가격 수준 및 망치와 같은 가격 패턴의 돌파구를 관찰합니다. 동시에 전략은 위험 통제를 위해 스톱 손실 및 수익 메커니즘을 활용합니다.

전체 전략의 주요 단계는 다음과 같이 나눌 수 있습니다.

  1. 판사 트렌드 방향: 빠른 MA와 느린 MA를 계산합니다. 빠른 MA가 느린 MA를 넘을 때 상승하고, 아래로 넘을 때 하락합니다. 또한 확인을 위해 RSI와 MACD를 사용합니다.

  2. 특정 진입 지점을 찾아라: 주로 볼린저 대역의 돌파, 주요 지원/저항 수준, 가격 패턴 신호를 관찰함으로써 진입합니다.

  3. 손해를 멈추고 이익을 취하라: ATR 지표를 사용하여 스톱 로스 범위를 계산하고 합리적인 수익 포지션을 설정합니다.

  4. 가짜 브레이크아웃을 필터링합니다.: 일부 지표는 잘못된 신호를 생성 할 수 있습니다. 여러 지표의 조합을 사용하여 필터링하십시오.

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 다각적 판단: 다른 지표의 조합은 더 많은 차원에서 시장을 판단할 수 있으며 하나의 지표로 잘못된 판단의 가능성을 피할 수 있습니다.

  2. 강력한 적용 가능성: 이 전략은 일내 또는 중장기 거래에 상관없이 좋은 결과를 얻을 수 있습니다.

  3. 유연성: 이 전략은 다양한 시장 단계에 적응할 수 있는 다양한 거래 방법을 포함합니다.

  4. 통제 할 수 있는 위험: 각 거래의 위험 노출을 제어하고 따라서 전체 전략의 최대 유출을 제어하기 위해 Stop Loss 및 Take Profit를 사용하십시오.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 잘못 판단 될 가능성: 여러 지표의 조합으로 잘못된 판단의 확률이 감소하지만, 극한 시장 조건에서 잘못된 판단의 확률은 여전히 존재합니다. 이것은 기술 지표 거래 전략에서 완전히 피할 수 없는 위험입니다.

  2. 변화 의 불확실성: 전환을 판단하기 위한 전략의 핵심 포인트는 미래의 트렌드를 완벽하게 예측할 수 없기 때문에 실제 트렌드 전환 포인트가 될 수 없을 수 있습니다. 이것은 적절한 스톱 로스를 설정함으로써 해결되어야합니다.

  3. 거짓 탈출: 브레이크업 사건은 갑자기 나타날 수 있고 단지 단기적인 가짜 브레이크업일 수 있습니다. 더 큰 시간 프레임과 가격 패턴을 관찰함으로써 판단해야합니다.

  4. 어려운 매개 변수 최적화: 전략은 여러 매개 변수를 포함하고 있습니다. 이 매개 변수는 결과에 중요한 영향을 미치지만 철저한 조정으로 최적을 찾는 것은 어렵습니다. 여러 지표를 균형있게 유지하며 매개 변수를 안정적으로 유지함으로써 이러한 문제를 완화해야합니다.

최적화 방향

이 전략을 최적화하는 주요 방향은 다음과 같습니다.

  1. 모델 앙상블: 지표 신호 무게와 시장 확률을 결정하는 데 도움이되는 기계 학습 모델을 도입합니다.

  2. 적응적 매개 변수 최적화: 매개 변수를 최적화하기 위해 가격 변화에 기반한 일부 동적 지표 또는 적응 메커니즘을 도입합니다.

  3. 이벤트 기반 거래: 거래 신호의 원천으로 금 시장의 뉴스 및 발표와 같은 이벤트에 의해 주도되는 몇 가지 요소를 소개합니다.

  4. 모델 헤지드 조합: 긴 포지션과 짧은 포지션의 조합을 구축하고, 서로 대비하는 모델을 구축하여 체계적인 시장 위험을 줄입니다.

결론

결론적으로, 이 금 반전 추적 전략은 다양한 거래 기법을 통합하고, 트렌드 반전을 발견하면서 위험을 제어하며, 고주파 거래에 적합한 효과적인 전략입니다. 더 안정적인 방식으로 장기적인 초과 수익을 얻기 위해 신호 소스를 확장하고, 적응 메커니즘과 위험 관리 모델을 도입함으로써 추가 최적화 할 여지가 있습니다.


/*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)


더 많은