확장된 가격량 트렌드 전략

저자:차오장, 날짜: 2024-01-18 16:32:28
태그:

img

전반적인 설명

확장된 가격량 트렌드 (EPVT) 전략은 기술 지표 조합 전략이다. 이는 잠재적인 트렌드 반전점과 동력의 변화를 식별하기 위해 추진력 가속도 지표와 다른 보조 지표를 결합한다.

전략 원칙

이 전략의 핵심 지표는 확장된 가격량 경향 (EPVT) 이다. 계산 방법은: 누적 거래량 * 비율 가격 변화. 그런 다음 기준 범위를 얻기 위해 특정 기간 동안 EPVT의 최대 및 최소 값을 계산한다. EPVT 지표 곡선은 EPVT와 이 기준 범위의 차이 곡선이다.

EPVT 지표 곡선이 0축 위를 넘으면 구매 압력이 증가하고 긴 신호가 나타납니다. 반대로 EPVT 지표 곡선이 0축 아래를 넘으면 짧은 신호가 나타납니다.

신호 품질을 향상시키기 위해 전략은 또한 트렌드 변화의 신뢰성을 확인하기 위해 간단한 이동 평균을 사용합니다.

이점 분석

이 전략은 시장 정서와 강도를 보다 포괄적으로 판단할 수 있는 트렌드, 모멘텀 및 거래량 (trend, momentum and trading volume) 이라는 세 가지 차원의 지표를 결합합니다. 확장된 가격 부피 트렌드 지표를 사용하면 단기적으로 과도한 부피에 대한 매우 좋은 식별 효과가 있으며 시장의 전환점을 포착 할 수 있습니다.

3개의 수익률을 설정하면 자신의 위험 선호도에 따라 다른 수익률을 선택할 수 있습니다.

위험 분석

이 전략은 상대적으로 많이 지표 곡선의 형태에 의존하고 있으며 트렌드가 비정상적 인 경우 잘못된 신호를 발산 할 것입니다. 또한 세 바 반전 및 기타 상황은 또한 불필요한 역 개척으로 이어질 것입니다.

매개 변수는 적절하게 조정되거나 최적화를 위해 다른 필터링 지표가 추가 될 수 있습니다. 스톱 손실 전략은 또한 단일 손실을 줄일 수 있습니다.

최적화 방향

  1. 매개 변수 최적화, 예를 들어 최적의 매개 변수 조합을 찾기 위해 EPVT의 사이클 매개 변수를 조정하는 것.

  2. 트렌드 필터링 조건을 추가합니다. 예를 들어 EPVT 신호를 기반으로 가격 채널 방향 또는 이동 평균을 판단하는 것과 같습니다.

  3. 정지 손실 전략을 최적화하십시오. 고정 가치 정지 또는 ATR 정지 설정과 같은.

요약

추진 속도 가속 확장 된 가격 부피 트렌드 전략은 잠재적인 트렌드 전환점을 활용하여 EPVT 지표를 통해 시장 정서 변화를 포착합니다. 다른 비율의 세 가지 수익 수준을 설정하면 투자자의 다른 위험 욕구를 충족 할 수 있습니다. 이 전략은 시장에서 단기 트렌드 변화를 식별하는 효과적인 도구가 되기 위해 추가 테스트 및 최적화를 가치가 있습니다.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Extended Price Volume Trend", overlay=true )//@version=5
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
    runtime.error("No volume is provided by the data vendor.")
src = close
lenght = input(200,"Trend Lenght")   
vt = ta.cum(ta.change(src)/src[1]*volume)
upx = ta.highest(vt,lenght)
downx = ta.lowest(vt,lenght)
basex = (upx +downx)/2
VTX = vt - basex
VTY = ta.valuewhen(ta.cross(VTX,0),close,0)
plot(VTY, color=color.black, title="Extended-PVT")

/////////////////////// STRATEGY ////////////////
/////////////////////// TAKE PROFIT SECTION ////////////////
longConditionx = ta.crossover(close,VTY)
ShortConditionx = ta.crossunder(close,VTY)
tp1 = input.int(10, minval=1,title = "TP-1")
tp2 = input.int(20, minval=1,title = "TP-2")
tp3 = input.int(30, minval=1,title = "TP-3")

ematp = ta.ema(close,2)
TPTAKA1S = VTY*(1-tp1/100)
plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1)
TPTAKA2S = VTY*(1-tp2/100)
plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1)
TPTAKA3S = VTY*(1-tp3/100)
plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1)

TPTAKA1B = VTY*(1+tp1/100)
plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1)
TPTAKA2B = VTY*(1+tp2/100)
plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1)
TPTAKA3B = VTY*(1+tp3/100)
plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1)

BUYTP = ta.crossunder(close,VTY) or ta.crossunder(ematp,TPTAKA1B) or ta.crossunder(ematp,TPTAKA2B) or ta.crossunder(ematp,TPTAKA3B) 
SELLTP = ta.crossover(close,VTY) or ta.crossover(ematp,TPTAKA1S) or ta.crossover(ematp,TPTAKA2S) or ta.crossover(ematp,TPTAKA3S)
/////////////////////// STRATEGY ////////////////
// Check for Long Entry
longCondition = longConditionx==true
if longCondition
    strategy.entry('Long', strategy.long, comment = "ENTER-LONG")

buyclose = ShortConditionx==true or BUYTP==true 
// Exit condition 
strategy.close('Long', when=buyclose or BUYTP==true, comment = "EXIT-LONG")

// Check for Short Entry
ShortCondition = ShortConditionx==true
if ShortCondition
    strategy.entry('Short', strategy.short, comment = "ENTER-SHORT")

sellclose = longConditionx==true or SELLTP ==true
// Exit condition 
strategy.close('Short', when=sellclose or SELLTP==true, comment = "EXIT-SHORT")
///// END OF STRATEGY ///////////


더 많은