리소스 로딩... 로딩...

역동적 리스크 관리 및 고정 취득을 위한 고급 공정 가치 격차 탐지 전략

저자:차오장, 날짜: 2024-11-29 16:22:10
태그:FVGSLTP

img

전반적인 설명

이 전략은 공정 가치 격차 (Fair Value Gap, FVG) 검출을 기반으로 한 거래 전략으로, 역동적 리스크 관리와 고정된 영업 타겟을 결합합니다. 15 분 시간 프레임에서 작동하여 전략은 시장의 가격 격차를 탐지함으로써 잠재적 인 거래 기회를 식별합니다. 2023년 11월부터 2024년 8월까지 백테스트 데이터에 따르면 전략은 153개의 총 거래로 284.40%의 순이익을 달성했으며, 승률은 71.24%와 수익률은 2.422%를 유지했습니다.

전략 원칙

핵심 메커니즘은 세 개의 연속 촛불에서 가격 관계를 모니터링하여 공정 가치 격차를 탐지하는 것입니다.

  1. 상승 FVG: 중간 촛불의 높이가 첫 번째 촛불의 낮보다 낮을 때
  2. 하향 FVG: 중등 촛불의 하위가 첫 번째 촛불의 높이의 위에있을 때
  3. 입력 신호는 FVG 임계 파라미터에 의해 제어됩니다.
  4. 리스크 컨트롤은 계정 자금의 일정한 비율 (1%) 를 스톱 로스로 사용합니다.
  5. 이윤은 50점으로 정해져 있습니다.

전략적 장점

  1. 과학적 리스크 관리: 스톱 로스로 계좌 자금 비율을 사용합니다.
  2. 명확한 거래 규칙: 고정된 수익 목표가 주관적 판단을 제거합니다.
  3. 우수한 성과: 높은 승률과 수익률은 전략의 안정성을 나타냅니다.
  4. 간단한 구현: 명확한 코드 논리, 이해하기 쉽고 유지
  5. 높은 적응력: 다른 시장 조건에 조정 할 수 있습니다.

전략 위험

  1. 시장 변동성 위험: 고동동성 시장에서 고정 포인트 수익은 유연하지 않을 수 있습니다.
  2. 미끄러짐 위험: 빈번한 거래는 더 높은 미끄러짐 비용으로 이어질 수 있습니다.
  3. 매개 변수 의존성: 성능은 FVG 임계 설정에 크게 의존합니다.
  4. 거짓 파업 위험: 일부 FVG 신호는 거짓 파업일 수 있습니다.
  5. 금전 관리 위험: 고정 비율의 스톱 손실은 빠른 인출로 이어질 수 있습니다.

최적화 방향

  1. 동적 취익 조정에 대한 변동성 지표를 도입
  2. 트렌드 필터를 추가하여 시장 거래의 범위를 피합니다.
  3. 여러 시간 프레임 확인 메커니즘을 개발
  4. 부동 위치 시스템으로 위치 크기를 알고리즘을 최적화
  5. 높은 변동성을 피하기 위해 거래 시간 필터를 추가합니다.
  6. 고품질 무역 선택을 위한 신호 강도 점수 시스템 개발

요약

이 전략은 공정한 가치 격차 이론과 과학적 리스크 관리를 결합함으로써 인상적인 결과를 보여준다. 높은 승률과 안정적인 이윤 요인은 실용적 가치를 나타낸다. 제안된 최적화 방향에 의해 추가 개선 가능성이 있다. 상인들은 라이브 구현 전에 철저한 매개 변수 최적화와 백테스팅을 수행하는 것이 좋습니다.


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

관련

더 많은