
이 전략은 3개의 강력한 기술적인 지표: MACD (Moving Average Convergence Spread Indicator), PAROLINE SAR (Stop Loss and Reversal) 그리고 SUPERTREND (Supertrend) 을 통합하여 거래 신호를 확인하는 종합적인 트렌드 추적 시스템이다. 핵심 아이디어는 이 3개의 지표가 동시에 같은 방향으로 향할 때만 거래를 수행한다는 것이다. 이 전략은 거짓 신호를 줄이고 거래의 정확성과 신뢰성을 높이기 위해 복수의 확인을 요구한다. 이 전략은 동시에 양방향의 거래를 지원하며, 명확한 입구와 출구 규칙을 가지고 있다.
이 전략의 작동 원리는 세 가지 핵심 기술 지표의 상호 작용에 기초합니다.
MACD 지표: 계산 빠른 ((12주기) 와 느린 ((26주기) 이동 평균 사이의 차이, 그리고 9주기 신호 라인. MACD 라인 상의 신호 라인을 통과할 때, 상향 신호로 간주; 신호 라인을 아래로 통과할 때, 상향 신호로 간주.
패러폴리 SAR 지표: 이것은 파동적인 스톱 손실 지표로, 파라미터를 설정하여 가격의 잠재적인 반전점을 계산합니다. 가격이 SAR 포인트 위에있을 때, 상승 추세로 간주되며, 가격이 SAR 포인트 아래에있을 때, 하락 추세로 간주됩니다.
슈퍼 트렌드 지표: ATR ((진실 변동 범위) 의 배수를 사용하여 ((3) 으로 설정하여 가격의 주요 트렌드 방향을 결정한다. 지표가 녹색일 때 부진을 나타냅니다. 빨간색일 때 부진을 나타냅니다.
거래 논리:
더 많은 입학 조건다음의 세 가지 조건이 충족되면 더 많은 돈을 벌 수 있습니다.
비공개 입학 조건다음의 세 가지 조건이 충족될 때 출전할 수 있습니다.
더 많은 경기에 출전하는 조건다음의 두 가지 조건이 동시에 충족될 때 평점 상점:
공짜 출전 조건다음의 두 가지 조건이 동시에 충족될 때 공백점:
주목할 점은, 이 전략은 지위를 유지하는 동안 일부 지표가 변동하는 것을 허용하지만 즉시 빠져나가지 않는다는 것입니다. 예를 들어, MACD가 변하지만 가격이 SAR의 지원 또는 저항 위에 / 아래에있을 때 전략은 계속 지위를 유지합니다.
다중 인증 메커니즘3개의 다른 지표의 일관성을 요구하여 입장을 취함으로써 잘못된 신호의 가능성을 크게 줄이고 불필요한 거래의 빈도를 줄입니다.
전체적인 시장 관점이 전략은 동력 (MACD), 트렌드 방향 (슈퍼 트렌드) 및 역동적인 지지/저항 (SAR) 의 3차원 시장 분석을 통합하여 더 포괄적인 시장 관점을 제공합니다.
유연한 포지션 관리: 일부 지표가 변하지만 전체적으로 역전되지 않을 때, 전략은 계속 포지션을 유지합니다. 이것은 더 장기적인 추세 이동을 잡는 데 도움이 되며, 이윤의 거래를 조기 종료하는 것을 방지합니다.
명확한 입출장 규칙전략 규칙이 명확하고 주관적인 판단의 여지가 없으며 거래 의사 결정 프로세스가 완전히 체계화되고 복제됩니다.
적응력슈퍼 트렌드 및 SAR 지표는 시장의 변동성에 따라 자동으로 조정되는 자기 적응 성질을 가지고 있으며, 이는 전략이 다른 시장 환경에 적응할 수 있도록합니다.
양방향 거래 능력이 전략은 상장과 하자를 동시에 지원하며, 단방향 시장에 국한되지 않고 다양한 시장 환경에서 수익 기회를 창출할 수 있습니다.
지표 연동 지연세 가지 지표가 동시에 충족되어야하는 조건은 진입 지점을 지연시킬 수 있으며, 특히 빠르게 변화하는 시장에서 트렌드의 최적의 진입 지점을 놓칠 수 있습니다.
매개변수 민감도이 전략은 여러 파라미터를 사용한다 (MACD 주기, 슈퍼 트렌드 ATR 인자, SAR 걸음 길기 등), 파라미터 설정에 민감하며, 다른 파라미터 조합은 현저하게 다른 결과를 초래할 수 있다.
급격한 변동의 위험SAR 지표는 높은 변동성이 있는 시장에서 자주 반전될 수 있으며, 이로 인해 유리한 위치에서 조기 퇴출될 수 있다.
시장의 부진: 수평조정 또는 좁은 폭의 변동이 있는 시장 환경에서, 트렌드 지표는 빈번한 가짜 신호를 생성할 수 있으며, 이로 인해 연속적으로 손실 거래가 발생할 수 있다.
손해 방지 장치의 부재현재 전략은 지표의 역전에만 의존하고 있으며, 명확한 스톱로스 메커니즘이 없으며, 이는 극단적인 시장 조건에서 큰 손실을 초래할 수 있습니다.
완화 조치:
변동성 필터 소개: 시장의 변동성을 평가할 수 있습니다. 예를 들어 ATR 지표 또는 역사 변동률을 사용하여, 낮은 변동률 환경에서 거래를 피하십시오. 추세 지표는 이러한 시장에서 종종 좋지 않습니다.
손해 방지 장치: ATR 기반의 동적 스톱로드를 구현하거나 고정 비율의 스톱로드를 구현하여 단일 거래의 최대 손실을 제한하고 전략의 리스크 조정 수익률을 향상시킵니다.
최적화 변수 설정: 다양한 시기와 다른 시장 조건에 대한 파라미터 조합을 재검토하여 더 안정적인 파라미터 설정을 찾거나 심지어 적응형 파라미터 시스템을 구현하는 것을 고려할 수 있습니다.
추가 시간 프레임 확인다중 시간 프레임 분석을 도입합니다. 예를 들어, 거래의 안정성을 높이기 위해 거래 시간 프레임과 일치하는 더 긴 시간 프레임의 트렌드 방향이 필요합니다.
포지션 관리: 신호 강도, 시장의 변동성 또는 위험 모델에 따라 포지션 크기를 조정하고, 매번 100%의 자금을 사용하여 거래하지 마십시오.
거래 시간 필터를 추가합니다.중요한 경제 자료가 발표되거나 시장의 유동성이 낮을 때 거래하는 것을 피하여 비정상적인 변동의 영향을 줄이십시오.
일부 수익 메커니즘을 고려합니다.: 트렌드 진행 과정에서, 단계적으로 수익을 창출하는 전략을 구현하여, 수익의 일부를 잠금하고, 나머지 포지션을 계속 트렌드를 따라가도록 할 수 있다.
이러한 최적화를 구현하면 전략의 적응성과 성능을 크게 향상시킬 수 있습니다. 특히 다양한 시장 환경에서. 진입 조건의 엄격성과 유연성을 균형을 맞추고 위험 관리를 강화함으로써 더 튼튼한 거래 시스템을 만들 수 있습니다.
다중 지표 협동확인 거래 전략은 MACD, PARALINE SAR, SUPERTREND의 세 가지 강력한 기술 지표를 통합하여 거래 신호를 검증하는 포괄적인 트렌드 추적 시스템입니다. 이 전략의 핵심 장점은 여러 가지 확인 메커니즘으로 인해 가짜 신호가 크게 감소하고 거래 품질이 향상됩니다. 동시에, 유연한 포지션 규칙은 더 장기적인 시장 추세를 포착 할 수 있습니다.
그러나, 이 전략은 또한 파라미터의 민감성 및 잠재적인 진입 지연과 같은 과제에 직면합니다. 제안된 최적화 조치를 시행함으로써 전략의 안정성과 성능을 더욱 향상시킬 수 있습니다.
전체적으로 이것은 논리적으로 명확하고 규칙이 명확한 체계화된 거래 전략이며, 특히 수보다 신호의 질을 추구하는 거래자에게 적합하며, 단기적 변동보다는 중장기적 추세를 포착하는 경향이 있습니다. 이 전략의 원리와 한계를 깊이 이해함으로써 거래자는 자신의 위험 선호와 거래 목표에 따라 이를 맞춤화하고 최적화 할 수 있습니다.
/*backtest
start: 2025-03-17 00:00:00
end: 2025-03-18 10:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=6
strategy("Vinay Strategy",
overlay=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
commission_type=strategy.commission.percent,
commission_value=0, // No commissions
slippage=0) // No slippage
// --- Input Parameters
atrPeriod = input.int(10, "ATR Length for Supertrend", minval=1)
atrFactor = input.float(3.0,"ATR Factor for Supertrend", step=0.1)
fastLength = input.int(12, "MACD Fast Length", minval=1)
slowLength = input.int(26, "MACD Slow Length", minval=1)
sigLength = input.int(9, "MACD Signal Length", minval=1)
sarStep = input.float(0.02, "Parabolic SAR Step", step=0.001)
sarMax = input.float(0.2, "Parabolic SAR Max", step=0.001)
// --- Supertrend Calculation
[stValue, stDir] = ta.supertrend(atrFactor, atrPeriod)
// stDir < 0 => Bullish (Green), stDir > 0 => Bearish (Red)
bullishTrend = stDir < 0
bearishTrend = stDir > 0
// --- Parabolic SAR Calculation
sarValue = ta.sar(sarStep, sarStep, sarMax)
// --- MACD Calculation
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, sigLength)
// --- Entry Conditions
macdBullish = macdLine > signalLine // MACD in bullish phase
macdBearish = macdLine < signalLine // MACD in bearish phase
priceAboveSAR = close > sarValue // Price above SAR (bullish)
priceBelowSAR = close < sarValue // Price below SAR (bearish)
// **Long Entry: Enter when all 3 conditions are met (sequence doesn't matter)**
longEntryCond = macdBullish and priceAboveSAR and bullishTrend
// **Short Entry: Enter when all 3 conditions are met (sequence doesn't matter)**
shortEntryCond = macdBearish and priceBelowSAR and bearishTrend
// **Exit Long: Only exit if BOTH conditions are met**
exitLongCond = macdBearish and priceBelowSAR
// **Exit Short: Only exit if BOTH conditions are met**
exitShortCond = macdBullish and priceAboveSAR
// --- Strategy Orders
if longEntryCond
strategy.entry("Long", strategy.long)
if shortEntryCond
strategy.entry("Short", strategy.short)
if exitLongCond
strategy.close("Long")
if exitShortCond
strategy.close("Short")
// --- Plotting Indicators
// 1) Supertrend
plot(bullishTrend ? stValue : na, "Supertrend Up", color=color.green, style=plot.style_linebr, linewidth=2)
plot(bearishTrend ? stValue : na, "Supertrend Down", color=color.red, style=plot.style_linebr, linewidth=2)
// 2) Parabolic SAR as blue crosses
plot(sarValue, "Parabolic SAR", color=color.blue, style=plot.style_cross, linewidth=2)
// 3) MACD Visualization
plot(macdLine, "MACD Line", color=color.teal, linewidth=1)
plot(signalLine, "Signal Line", color=color.orange, linewidth=1)
// Histogram Visualization
plot(histLine, "MACD Hist", style=plot.style_columns,
color = histLine >= 0 ? color.new(color.teal, 60) : color.new(color.orange, 60))