
이것은 공정 가치 격차 (Fair Value Gaps, FVG) 에 기반한 양적 거래 전략이며, 스마트 머니 콘셉트 (Smart Money Concepts, SMC) 와 기관 거래의 가격 불균형 이론에서 영감을 얻었다. 이 전략은 시장의 미세한 불균형점을 식별하여 가격이 이러한 지역으로 다시 들어올 때 신호 거래를 유발한다. 이 전략은 고정된 0.10%의 중지 및 중지 설정을 채택하고 있으며, 단선 거래자와 알고리즘 거래자를 위해 고안되었으며, 시장의 미세한 변동을 포착하기 위해 엄격한 위험 통제를 목표로 한다.
이 전략의 핵심은 공정 가치 허점을 식별하고 활용하는 것입니다. FVG는 가격이 짧은 시간에 뛰어넘는 영역을 의미하며, 시장이 충분히 거래되지 않은 가격 수준을 나타냅니다. 일반적으로 가격이 미래에 재검토 될 수있는 영역으로 간주됩니다.
전략은 크게 두 가지 유형의 FVG에 기반합니다.
거래의 논리는 다음과 같습니다.
정책에는 또한 미세한 시장 소음을 피하기 위해 충분히 큰 구멍을 필터링하는 절감 필터가 포함되어 있습니다. 사용자는 수동으로 절감 비율을 설정하거나, 전략이 역사적인 변동적 동력에 따라 절감을 조정하도록 자동 모드를 선택할 수 있습니다.
미시장 구조를 식별하기이 전략은 기관 자금의 활동 흔적을 나타내는 미시 시장 구조와 불균형을 포착할 수 있습니다.
정확한 입구: 명확하게 정의된 FVG 조건을 통해, 전략은 객관적이고 정확한 입구 신호를 제공하며, 주관적인 판단으로 인한 오류를 줄인다.
엄격한 위험 관리: 고정 0.10%의 중지 손실 설정은 거래 당 위험을 엄격하게 제어할 수 있도록 보장하며, 펀드 관리에 엄격한 거래자에게 적합합니다.
확장성정책 프레임워크는 추가 필터를 추가하거나 매개 변수를 조정하여 다양한 시장 조건에 적응할 수 있도록 유연하게 설계되었습니다.
다시 그리는 문제: 코드 구현은 재배치 문제를 피하고, 리드 디스크와 일치하는 히스토리 재검토 결과를 보장한다.
다중 시간 프레임의 적응성: 사용자는 시간 프레임 파라미터를 사용자 정의할 수 있으므로 1분에서 더 높은 시간 주기까지의 다양한 거래 환경에 대응할 수 있습니다.
단선 거래 빈도가 높습니다.미세한 불균형을 겨냥한 전략으로 인해 거래 신호가 많이 발생하여 거래 비용이 증가할 수 있으며, 특히 고주파 거래 환경에서 더욱 현저합니다.
소음 방해: 낮은 변동성 또는 가로 디스크 시장에서, FVG 신호는 더 많은 소음을 포함할 수 있으며, 이로 인해 가짜 신호가 증가한다.
고정 손실 위험고정된 0.10%의 스톱은 엄격한 위험 관리를 제공하지만, 매우 변동성이 높은 시장에서 너무 밀집하여 자주 유발될 수 있습니다.
트렌드 반전의 위험: 강한 추세 시장에서, 역동적인 FVG 신호는 주류와 반대되는 거래로 이어져 손실 가능성을 증가시킬 수 있다.
매개변수 민감도: 미지수 변수의 설정은 전략 성능에 중요한 영향을 미치며, 잘못된 변수는 과도한 최적화 또는 유효한 신호를 놓칠 수 있습니다.
위험을 줄이는 방법은 다음과 같습니다.
자기 적응적 경량 시스템: 현재 전략에는 자동 하락 옵션이 포함되어 있지만, 시장의 변동성 지표 (ATR와 같은) 에 기반한 적응 시스템으로 추가적으로 최적화하여 FVG를 현재의 시장 상태에 더 정확하게 대응하도록 합니다.
다중 시간 프레임 확인: 다중 시간 프레임 분석을 도입하여 상위 시간 프레임 트렌드 방향이 FVG 신호와 일치할 때만 거래를 실행하여 승률을 높인다.
동적 중지/정지고정된 0.10%의 스톱/스트랩을 시장의 변동성에 기반한 동적 설정으로 대체하여 변동성이 증가하면 자동으로 스톱 범위를 확장하고 변동성이 감소하면 범위를 좁히기
거래량 확인: FVG 형성 및 가격 재입장 과정에서 거래량 분석을 추가하고, 충분한 거래량 지원이 있을 때만 거래를 실행하여 가짜 신호를 줄인다.
시장 상태 분류: 시장 상태를 자동으로 식별하는 시스템 (트렌드, 레지엄, 높은 / 낮은 변동성) 을 구현하고, 다른 시장 상태에 따라 전략 매개 변수를 조정하거나 거래를 중지합니다.
기계 학습 강화: 기계 학습 알고리즘을 통해 역사적 FVG 패턴의 성공률을 분석하고, 현재 FVG 신호의 잠재적인 성공률을 평가하기 위해 예측 모델을 구축한다.
이러한 최적화 방향은 전략의 안정성을 높일 뿐만 아니라, 다양한 시장 환경에 적응할 수 있는 능력을 강화할 수 있으며, 잠재적으로 전체 수익률을 높이고 회수율을 낮출 수 있다.
공정 가치 격차 전략은 시장의 미시 구조에서 가격 불균형을 포착하는 데 초점을 맞춘 기술적으로 정교한 정량 거래 시스템입니다. FVG를 정확하게 식별하고 정확하게 실행함으로써 전략은 명확한 규칙과 엄격한 위험 통제가있는 거래 프레임 워크를 짧은 라인 거래자와 알고리즘 거래자에게 제공합니다.
전략은 기본 버전에서 미세한 가격 불균형을 포착하는 능력을 보여주었지만, 제안된 최적화 방향을 구현함으로써 전략의 성능을 더욱 향상시킬 수 있습니다. 특히 적응형 파라미터 시스템과 다중 시간 프레임 확인. 짧은 시간 프레임에서 규율적이고 엄격한 양적 거래 전략을 실행하려는 거래자에게는 고려할 가치가 있습니다.
궁극적으로, 이 전략의 성공은 거래자의 FVG 개념에 대한 깊은 이해와 다양한 시장 조건에 따라 매개 변수를 조정할 수 있는 능력에 달려 있습니다. 적절한 위험 관리와 지속적인 최적화와 함께, 공정 가치 격차 전략은 양적 거래 포트폴리오에서 효과적인 도구가 될 수 있습니다.
/*backtest
start: 2024-07-09 00:00:00
end: 2025-07-04 08:00:00
period: 4d
basePeriod: 4d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("FVG Strategy [algo ] - 0.10% TP/SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === INPUTS ===
thresholdPer = input.float(0, "Threshold %", minval = 0, maxval = 100, step = .1, inline = 'threshold')
auto = input(false, "Auto", inline = 'threshold')
tf = input.timeframe("", "Timeframe")
// SL/TP settings (0.10% each)
sl_pct = 0.10
tp_pct = 0.10
// === TYPE ===
type fvg
float max
float min
bool isbull
int t = time
// === DETECTION FUNCTION ===
detect() =>
var new_fvg = fvg.new(na, na, na, na)
threshold = auto ? ta.cum((high - low) / low) / bar_index : thresholdPer / 100
bull_fvg = low > high[2] and close[1] > high[2] and (low - high[2]) / high[2] > threshold
bear_fvg = high < low[2] and close[1] < low[2] and (low[2] - high) / high > threshold
if bull_fvg
new_fvg := fvg.new(low, high[2], true)
else if bear_fvg
new_fvg := fvg.new(low[2], high, false)
[bull_fvg, bear_fvg, new_fvg]
// === FVG Detection ===
[bull_fvg, bear_fvg, new_fvg] = request.security(syminfo.tickerid, tf, detect())
var fvg_records = array.new<fvg>(0)
var t = 0
if (bull_fvg or bear_fvg) and new_fvg.t != t
array.unshift(fvg_records, new_fvg)
t := new_fvg.t
// === ENTRY STRATEGY ===
if array.size(fvg_records) > 0
latest = array.get(fvg_records, 0)
// BUY Logic
if latest.isbull and close <= latest.max and close >= latest.min and strategy.position_size <= 0
sl = close * (1 - sl_pct / 100)
tp = close * (1 + tp_pct / 100)
strategy.entry("Buy FVG", strategy.long)
strategy.exit("TP/SL Long", from_entry="Buy FVG", stop=sl, limit=tp)
// SELL Logic
if not latest.isbull and close >= latest.min and close <= latest.max and strategy.position_size >= 0
sl = close * (1 + sl_pct / 100)
tp = close * (1 - tp_pct / 100)
strategy.entry("Sell FVG", strategy.short)
strategy.exit("TP/SL Short", from_entry="Sell FVG", stop=sl, limit=tp)
// === VISUALIZE FVG ZONES ===
plotshape(bull_fvg, title="Bullish FVG", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(bear_fvg, title="Bearish FVG", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)