이 전략은 거래 신호를 확인하기 위해 다차원적인 기술 지표를 사용하고, FVG 영역을 통해 잠재적인 가격 불균형 영역을 식별하여 시장에서 강력한 변동의 거래 기회를 잡기 위해 고안되었습니다. 전략은 가격 움직임, 거래 양의 이상, 가격 구조 격차를 종합적으로 고려하여 거래 정확성을 향상시키고, 시각적 인터페이스를 통해 거래 판단의 직관성을 강화합니다.
이 전략의 핵심은 세 가지 독립적이지만 상호 연관된 거래 개념에 기반합니다.
MACD 지표 분석전략: 12, 26, 9를 매개 변수로 사용하여 MACD 지표를 계산한다. MACD 라인 (고속 라인) 은 신호 라인 ( 느린 라인) 위에 있고 긍정적이면 상향 신호로 판단되며, 반대로 MACD 라인이 신호 라인 아래에 있고 부정적이면 상향 신호로 판단된다. 이 구성 요소는 주로 시장 운동 방향을 확인하는 데 사용됩니다.
VSA (거래량 가격 분석)전략 검증: 가격과 거래량 사이의 관계. 종결 가격이 개시 가격보다 높고, 현재 거래량이 20일 거래량 평균보다 크며, 그리고 종결 가격이 이전 5주기 최고 가격을 돌파할 때, 상향 VSA 신호를 발생시킨다. 반대로, 종결 가격이 개시 가격보다 낮고, 현재 거래량이 20일 거래량 평균보다 크며, 그리고 종결 가격이 이전 5주기 최저 가격을 돌파할 때, 상향 VSA 신호를 발생시킨다. 이 구성 요소는 주로 대량 거래에 의해 주도되는 돌파 행동을 포착한다.
FVG (공정 가치 틈새) 식별전략: 시장에서 존재하는 가격 격차를 탐지한다. 현재 의 최저가격이 전 두 의 최고가격보다 높고 전 이 양선일 때 상향 FVG로 식별한다. 현재 의 최고가격이 전 두 의 최저가격보다 낮고 전 이 음선일 때 하향 FVG로 식별한다.
거래 신호의 생성에는 세 가지 조건이 모두 충족되어야 합니다:
전략은 또한 직사각형의 틀을 통해 FVG 영역을 시각화하고 거래 신호를 생성할 때 태그를 추가하여 거래 의사 결정을 직관적으로 강화합니다.
다차원 확인 메커니즘기술 지표 ((MACD), 거래량 분석 ((VSA) 및 가격 구조 분석 ((FVG) 을 결합하여 거래 신호를 확인하는 3개의 독립적인 차원을 사용하여, 가짜 신호의 위험을 현저히 줄이고 거래의 정확성을 향상시킵니다.
시장의 불균형 포획: FVG 컴포넌트는 시장의 가격 불균형 영역을 효과적으로 식별할 수 있습니다. 이러한 영역은 종종 기관이 시장에 빠르게 진입하고 빠져 나가는 ‘가치 공백’을 나타냅니다.
양수 확인: VSA 분석을 통해 거래 신호 뒤에 충분한 거래량이 있는지 확인하고, 낮은 유동성 환경에서 거래하는 것을 피하고, 슬라이드 포인트 및 가짜 브레이크의 위험을 줄입니다.
시각적 의사결정전략: FVG 사각형 상자 및 거래 신호 태그를 통해 잠재적인 거래 지역과 입시 지점을 직관적으로 표시하여 거래자가 시장 구조와 거래 논리를 더 명확하게 이해할 수 있도록 도와줍니다.
과도한 거래를 피하십시오.전략의 다중 조건 필터링 메커니즘은 엄격한 조건이 충족될 때만 거래 신호를 생성하도록 보장하여 과도한 거래의 문제를 효과적으로 줄입니다.
유연한 변수 제어: 코드 디자인은 사용자가 MACD 파라미터, VSA의 거래량 절감 및 역사적 가격 참조 주기, 그리고 FVG 영역의 시각적 표현을 포함한 중요한 파라미터를 조정할 수 있도록 해, 전략이 다른 시장 환경과 개인 거래 스타일에 적응할 수 있도록 해줍니다.
신호 지연성: MACD는 지연된 지표이며, 빠르게 변화하는 시장에서 늦은 입장이 발생하여 최적의 가격 지점을 놓칠 수 있습니다. 해결책은 RSI 또는 무작위 지표와 같은 더 민감한 초기 경고 지표를 도입하는 것을 고려하는 것입니다.
높은 파동 동안의 가짜 신호: 시장의 높은 변동 기간 동안, VSA 구성 요소는 많은 그러나 방향없는 거래량으로 인해 잘못된 신호를 일으킬 수 있습니다. 시장의 변동률 필터를 추가하고 변동률이 비정상적으로 높을 때 신호 확인 기준을 높이는 것이 좋습니다.
FVG 인식의 한계: 현재 FVG 식별은 고정된 2주간의 간격만을 고려하고 있으며, 이는 모든 시장 상황에 적합하지 않을 수 있습니다. FVG 식별의 시간 창을 동적으로 조정하거나, 여러 시간 프레임 FVG 확인을 도입하는 것이 고려되어야 합니다.
손실을 막기: 현재 전략에는 명확한 스톱스 메커니즘이 없으며, 트렌드가 급격히 역전되면 큰 손실이 발생할 수 있습니다. ATR 또는 중요한 지지/저항 지점에 기반한 스톱스 전략을 수행하는 것이 좋습니다.
시장의 부적응: 전략은 추세 시장과 흔들림 시장을 구분하지 않으며, 부적절한 시장 환경에서 과도한 거래 신호를 생성할 수 있습니다. 시장 상태 식별 구성 요소를 추가하고, 다른 시장 상태에서 다른 거래 매개 변수 또는 논리를 적용하는 것을 고려해야합니다.
재정 관리의 약점: 현재 전략은 고정 포지션을 사용하여 거래하고, 위험 조정 고려하지 않습니다. 자본 효율성과 위험 관리를 최적화하기 위해 변동율에 기반한 포지션 크기 조정 장치를 구현하는 것이 좋습니다.
다중 시간 프레임 분석 통합: 현재 전략은 단일 시간 프레임에서만 작동하며, 더 높은 시간 프레임의 트렌드 확인을 통합하여 거래 품질을 향상시킬 수 있습니다. 구현 방법은 security 함수를 사용하여 더 높은 시간 프레임의 MACD 및 VSA 신호를 획득하고, 더 높은 시간 프레임의 트렌드와 일치하는 경우에만 출전합니다. 이것은 역 트렌드 거래를 줄이고, 승률을 크게 향상시킵니다.
적응 변수 최적화: MACD와 VSA의 고정된 매개 변수를 시장의 변동성에 따라 자동으로 조정되는 매개 변수로 변경한다. 예를 들어, 높은 변동성 시장에서 MACD 주기를 연장하여 소음을 줄이고, 낮은 변동성 시장에서 주기를 단축하여 민감성을 증가시킨다. 이러한 최적화는 최근의 ATR을 계산하고 이에 따라 매개 변수를 조정함으로써 이루어질 수 있다.
FVG 유효기간 설정: 현행 FVG는 일단 형성되면 유효하게 유지되지만, 실제로는 FVG가 때때로 유효하게 있어야 한다. 특정 K선 수 이후에 또는 가격이 FVG 영역에서 일정 퍼센트 떨어진 후에 FVG를 무효화하기 위한 FVG 무효화 메커니즘을 추가하는 것이 권장된다. 이것은 노후화된 FVG에 기반한 잘못된 거래를 줄일 수 있다.
통합 주문 흐름 분석: VSA 분석은 더 상세한 주문 흐름 데이터를 통합하여 강화할 수 있습니다 (대량 주문 비율, 구매 압력 등). 이것은 추가 데이터 소스가 필요하지만 거래량 분석의 정확성을 크게 향상시킬 수 있습니다.
위험 관리 구조: 전체적인 리스크 관리 시스템을 추가합니다.
기계 학습 최적화: 간단한 기계 학습 모델을 사용하여 FVG 영역의 유효성을 예측하는 것을 고려하십시오. 역사 데이터 훈련 모델을 통해 어떤 특징 조합의 FVG가 더 잘 보완 될 수 있는지 식별하여 FVG 거래의 성공률을 높여줍니다.
VSA-MACD-FVG 전략은 다차원 거래 시스템으로, 기술적 동적 지표, 거래량 분석 및 가격 구조 분석을 결합하여 높은 확률의 거래 기회를 식별합니다. 이 전략의 주요 장점은 가짜 신호를 효과적으로 필터링하는 다중 요소 확인 메커니즘입니다. 주요 위험은 매개 변수 고정으로 인한 시장 적응 부족과 위험 관리 시스템의 부재입니다.
이 전략은 특히 다중 시간 프레임 분석, 적응 변수 및 완벽한 위험 관리 시스템을 통해 제안된 최적화 방향을 구현함으로써 더 안정적인 거래 시스템으로 발전할 잠재력이 있습니다. 무엇보다도 전략은 특정 거래 스타일과 목표 시장에 맞게 개인화되어 실내 적용 전에 전체적인 피드백 검증을 받아야합니다.
이 전략은 특히 중기 및 장기 거래자에게 적합하며, 특히 시장 구조와 큰 자본의 흐름에 관심이있는 거래자에게 적합합니다. 필요한 위험 제어 조치를 정교하게 조정하고 보완함으로써 다양한 시장 환경에서 비교적 안정적인 성능을 유지할 수 있습니다.
/*backtest
start: 2025-01-18 19:45:00
end: 2025-02-26 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"TRUMP_USDT"}]
*/
//@version=5
strategy("VSA_MACD_FVG Strategy", overlay=true)
// === MACD Calculation ===
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)
macdBullish = macdLine > signalLine and macdLine > 0
macdBearish = macdLine < signalLine and macdLine < 0
// === VSA Basic Implementation ===
vsaBullish = close > open and volume > ta.sma(volume, 20) and close > ta.highest(high, 5)[1]
vsaBearish = close < open and volume > ta.sma(volume, 20) and close < ta.lowest(low, 5)[1]
// === FVG (Fair Value Gap) Detection ===
fvgUpCondition = low > high[2] and close[1] > open[1]
fvgDownCondition = high < low[2] and close[1] < open[1]
var float fvgTop = 0.0
var float fvgBottom = 0.0
var bool inFVG = false
// Detect and Store FVG
if fvgUpCondition
fvgTop := low
fvgBottom := high[2]
inFVG := true
else if fvgDownCondition
fvgTop := low[2]
fvgBottom := high
inFVG := true
// Check if price is in FVG
priceInFVG = (high >= fvgBottom and low <= fvgTop)
// === Position Tracking ===
isLongOpen = strategy.position_size > 0
isShortOpen = strategy.position_size < 0
// === Trading Conditions ===
buySignal = vsaBullish and macdBullish and priceInFVG and not isLongOpen
sellSignal = vsaBearish and macdBearish and priceInFVG and not isShortOpen
// === Execute Trades ===
if buySignal
strategy.entry("Buy", strategy.long)
if sellSignal
strategy.entry("Sell", strategy.short)
// === Visual Markers ===
if buySignal
label.new(bar_index, low, "BUY",
color=color.green,
textcolor=color.white,
style=label.style_label_up)
if sellSignal
label.new(bar_index, high, "SELL",
color=color.red,
textcolor=color.white,
style=label.style_label_down)
// === Plot MACD for reference ===
plot(macdLine, "MACD", color=color.blue)
plot(signalLine, "Signal", color=color.orange)
plot(hist, "Histogram", style=plot.style_histogram, color=color.gray)