FVG 모멘텀 단기 거래 전략

FVG
생성 날짜: 2024-05-28 17:23:09 마지막으로 수정됨: 2024-05-28 17:23:09
복사: 0 클릭수: 1446
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

FVG 모멘텀 단기 거래 전략

개요

이 전략은 FVG 지표에 기반한 동적 단선 거래 전략이다. 이 전략은 FVG 지표의 다중 헤드 및 공표 신호를 식별하여 시장에서 잠재적인 단선 거래 기회를 찾는다. 이 전략은 잠재적인 손실을 제한하고 수익을 극대화하기 위해 밀린 중지 및 수익 목표를 사용한다. 이 전략은 짧은 시간 프레임에 적용된다.

전략 원칙

이 전략은 잠재적인 거래 기회를 식별하기 위해 FVG 지표를 사용합니다. FVG 지표는 현재 폐쇄 가격과 전 3 K 라인의 최고 가격 및 최저 가격과 비교하여 다중 및 공백 신호를 결정합니다.

거래 신호가 확인되면, 이 전략은 FVG 범위의 중간 지점에서 구매 또는 판매 주문을 실행한다. 다단계 거래의 경우, FVG 최저점 아래 1%의 중지 손실 위치, FVG 최고점 위 2%의 수익 목표 설정. 공백 거래의 경우, FVG 최고점 위 1%의 중지 손실 위치, FVG 최저점 아래 2%의 수익 목표 설정.

전략적 이점

  1. 이 전략은 단순하고 효과적인 FVG 지표를 사용하여 잠재적인 거래 기회를 식별합니다. FVG 지표는 단기 가격 움직임을 포착하여 트렌드가 형성되는 초기 단계에서 거래를 돕습니다.

  2. 이 전략은 잠재적인 손실을 제한하고 수익을 극대화하기 위해 엄격한 중지 및 수익 목표를 사용합니다. 이것은 위험을 관리하고 전반적인 수익성을 향상시키는 데 도움이됩니다.

  3. 이 전략은 짧은 시간 프레임에 적용되며 시장의 짧은 변동성을 이용한다. 이것은 이 전략이 빠르게 변화하는 시장 조건에 적응할 수 있게 해준다.

전략적 위험

  1. 이 전략은 FVG 지표가 제공하는 거래 신호에 의존한다. FVG 지표가 가격 움직임을 포착하는 데는 효과적이지만, 모든 거래가 성공할 것을 보장하지는 않는다. 잘못된 신호는 손실 거래로 이어질 수 있다.

  2. 이 전략은 고정된 스톱로스 및 수익 목표를 사용한다. 이것은 위험을 관리하는 데 도움이 되지만 잠재적인 수익을 제한할 수도 있다. 강한 추세 동안 가격은 예상된 수익 목표를 초과할 수 있다.

  3. 짧은 라인 거래 전략은 거래 빈도와 거래 비용에 직면합니다. 자주 거래하면 전체 수익성에 영향을 미치는 많은 슬라이드 포인트와 수수료가 발생할 수 있습니다.

전략 최적화 방향

  1. 역동적인 중지 및 수익 목표를 전략에 포함시키는 것을 고려하십시오. 시장의 변동성과 트렌드 강도에 따라 중지 및 수익 목표를 조정하여 다른 시장 조건에 더 잘 적응 할 수 있습니다.

  2. 다른 기술적인 지표 (예를 들어, 이동 평균 또는 상대적으로 약한 지표) 와 FVG 지표가 결합되어 추가적인 확인과 필터링을 제공합니다. 이것은 잘못된 신호를 줄이고 거래의 정확성을 높이는 데 도움이 될 수 있습니다.

  3. 전략에 대한 피드백 및 최적화를 통해 최적의 파라미터 설정을 결정합니다 (FVG 주기, 중지 및 수익 목표 비율과 같은). 이러한 파라미터를 최적화하면 전략의 전반적인 성능을 향상시킬 수 있습니다.

요약하다

전체적으로 볼 때, FVG 동적 쇼트 라인 트레이딩 전략은 간단하고 효과적인 전략으로, FVG 지표를 활용하여 짧은 시간 프레임에 가격 움직임을 포착한다. 긴박한 중지 및 수익 목표의 사용으로, 이 전략은 위험을 관리하고 수익을 극대화 할 수 있다. 그러나, 이 전략은 잘못된 신호, 고정된 중지 및 수익 목표 및 높은 거래 빈도와 같은 위험에 직면 해 있다.

전략 소스 코드
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ScalpingStrategy", overlay=true)

// Define the FVG calculation
fvgLow = ta.lowest(low, 3)
fvgHigh = ta.highest(high, 3)

var float entrySL=0
// Define the Bullish and Bearish FVG conditions
bullishFVG = low[1] > high[3]
bearishFVG = high[1] < low[3]

// Define the mid-point of the FVG range
fvgMid = (fvgLow + fvgHigh) / 2

// Define the buy and sell conditions
buyCondition = bullishFVG and close >= fvgMid and low<=fvgHigh
sellCondition = bearishFVG and close <= fvgMid and high>=fvgLow

// Plot buy and sell signals
plotshape(buyCondition, style=shape.labelup, location=location.belowbar, color=color.green, text="B")
plotshape(sellCondition, style=shape.labeldown, location=location.abovebar, color=color.red, text="S")

// Execute buy and sell orders
var float targetLong = 0
var float targetShort = 0

if (buyCondition)
    strategy.entry("Buy", strategy.long)
    targetLong := high * 1.0012 // Calculate target price 2% above high
    strategy.exit("Target", "Buy", limit=targetLong)
    entrySL=fvgLow*0.994

if (sellCondition)
    strategy.entry("Sell", strategy.short)
    targetShort := low * 0.994 // Calculate target price 2% below low
    strategy.exit("Target", "Sell", limit=targetShort)
    entrySL=fvgHigh*1.0028



// Trailing stoploss
//stopLossLong = fvgLow * 0.997 // strategy.position_avg_price * 0.995
//stopLossShort = fvgHigh * 1.003 // strategy.position_avg_price * 1.005
stopLossLong = math.max(fvgLow * 0.997, strategy.position_avg_price * 0.995)
stopLossShort = math.min(fvgHigh * 1.003, strategy.position_avg_price * 1.005)


// Plot stoploss lines with small length
plot(stopLossLong, title="Stop Loss Long", color= strategy.position_size > 0 ? color.red : na, linewidth=1)
plot(stopLossShort, title="Stop Loss Short", color= strategy.position_size < 0 ? color.red : na, linewidth=1)

plot(targetLong, title="TLong", color= strategy.position_size > 0 ? color.green : na,  linewidth=1)
plot(targetShort, title="TShort",color= strategy.position_size < 0 ? color.green : na,  linewidth=1)

// Exit with stoploss
strategy.exit("Stop Loss", "Buy", stop=stopLossLong)
strategy.exit("Stop Loss", "Sell", stop=stopLossShort)