이 전략은 공정 가치 격차 (Fair Value Gap, FVG) 검출을 기반으로 한 거래 전략으로, 역동적 리스크 관리와 고정된 영업 타겟을 결합합니다. 15 분 시간 프레임에서 작동하여 전략은 시장의 가격 격차를 탐지함으로써 잠재적 인 거래 기회를 식별합니다. 2023년 11월부터 2024년 8월까지 백테스트 데이터에 따르면 전략은 153개의 총 거래로 284.40%의 순이익을 달성했으며, 승률은 71.24%와 수익률은 2.422%를 유지했습니다.
핵심 메커니즘은 세 개의 연속 촛불에서 가격 관계를 모니터링하여 공정 가치 격차를 탐지하는 것입니다.
이 전략은 공정한 가치 격차 이론과 과학적 리스크 관리를 결합함으로써 인상적인 결과를 보여준다. 높은 승률과 안정적인 이윤 요인은 실용적 가치를 나타낸다. 제안된 최적화 방향에 의해 추가 개선 가능성이 있다. 상인들은 라이브 구현 전에 철저한 매개 변수 최적화와 백테스팅을 수행하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fair Value Gap Strategy with % SL and Fixed TP", overlay=true, initial_capital=500, default_qty_type=strategy.fixed, default_qty_value=1) // Parameters fvgThreshold = input.float(0.5, "FVG Threshold (%)", minval=0.1, step=0.1) // Fixed take profit in pips takeProfitPips = 50 // Function to convert pips to price pipsToPriceChange(pips) => syminfo.mintick * pips * 10 // Function to detect Fair Value Gap detectFVG(dir) => gap = 0.0 if dir > 0 // Bullish FVG gap := low[2] - high[1] else // Bearish FVG gap := low[1] - high[2] math.abs(gap) > (close * fvgThreshold / 100) // Detect FVGs bullishFVG = detectFVG(1) bearishFVG = detectFVG(-1) // Entry conditions longCondition = bullishFVG shortCondition = bearishFVG // Calculate take profit level longTakeProfit = strategy.position_avg_price + pipsToPriceChange(takeProfitPips) shortTakeProfit = strategy.position_avg_price - pipsToPriceChange(takeProfitPips) // Calculate stop loss amount (5% of capital) stopLossAmount = strategy.equity * 0.01 // Execute trades if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Set exit conditions if (strategy.position_size > 0) strategy.exit("Long TP", "Long", limit=longTakeProfit) strategy.close("Long SL", when=strategy.openprofit < -stopLossAmount) else if (strategy.position_size < 0) strategy.exit("Short TP", "Short", limit=shortTakeProfit) strategy.close("Short SL", when=strategy.openprofit < -stopLossAmount) // Plot signals plotshape(longCondition, "Buy Signal", location = location.belowbar, color = color.green, style = shape.triangleup, size = size.small) plotshape(shortCondition, "Sell Signal", location = location.abovebar, color = color.red, style = shape.triangledown, size = size.small)