동적 리스크 관리와 고정 이익을 기반으로 한 고급 공정가치 갭 감지 전략

FVG SL TP
생성 날짜: 2024-11-29 16:22:10 마지막으로 수정됨: 2024-11-29 16:22:10
복사: 0 클릭수: 587
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

동적 리스크 관리와 고정 이익을 기반으로 한 고급 공정가치 갭 감지 전략

개요

이것은 동적 위험 관리와 고정 수익 목표가 결합된 공정 가치 격차 (FVG) 를 기반으로 한 거래 전략입니다. 이 전략은 15 분 시간 주기에서 작동하여 시장의 가격 격차를 식별하여 잠재적인 거래 기회를 포착합니다.

전략 원칙

전략의 핵심은 연속적인 3개의 K선 사이의 가격 관계를 모니터링하여 공정 가치 틈을 식별하는 것이다. 구체적으로:

  1. 다중 FVG 형성 조건: 현재 한 K 라인의 최고 가격은 이전 두 K 라인의 최저 가격보다 낮다
  2. 공백 FVG 형성 조건: 현재 K 라인의 최저 가격이 이전 두 K 라인의 최고 가격보다 높다
  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)