
이 전략의 이름은 가격량 변화에 기반한 트렌드 전략이다. 이 전략은 가격과 거래량의 누적 변화를 계산하여 이동 평균과 결합하여 긴 짧은 포지션 목록을 구축하여 트렌드를 추적하는 목적을 달성한다.
이 전략의 핵심 지표는 가격의 누적 변화 지표 (MPVT) 이다. 이 지표는 가격과 거래량의 변화를 통해 시장 인기와 자본 유입의 흐름을 반영한다. 구체적인 계산 공식은 다음과 같다:
rV = 交易量 / 50000
xCumPVT = 昨日xCumPVT + (rV * (最新收盘价 - 昨日收盘价) / 昨日收盘价)
다음으로 Level와 Scale를 결합하여 Residence의 값변동 지표를 구성합니다.
nRes = Level + Scale * xCumPVT
레지던스 지표는 가격과 거래량의 통합 변화를 반영한다. N일 간소 이동 평균을 넘어서면 더 많이 하고, N일 간소 이동 평균을 넘어서면 더 적게 한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
이 전략은 다음과 같은 부분에서 최적화를 고려할 수 있습니다.
다른 이동 평균을 테스트할 수 있습니다. 가중 이동 평균, EMA 등이 조합되어 어떤 것이 더 잘 작동하는지 볼 수 있습니다.
RSI, KD 등과 같은 다른 지표와 결합하여 필터링 신호를 사용하여 잘못된 신호 발생 가능성을 줄일 수 있습니다.
다양한 변수 조합을 테스트하여 최적의 변수 쌍을 찾을 수 있다. 또한 단계적 최적화 방법을 적용하여 변수가 실시간으로 업데이트 될 수 있다.
부린 띠와 같은 추세에 따른 지표와 조합하여 전략의 안정성을 높일 수 있다.
이 전략은 가격과 거래량 변화의 누적 가치를 계산하여 가격 변화의 레지던스 지표를 설계하여 시장의 자금 유입과 유출 상황을 효과적으로 반영할 수 있는 전형적인 가격 COMBO 전략이다. 이 전략은 간단하고 실용적이며 추세 상황에 적용되며, 매개 변수 최적화 및 지표 조합 최적화 공간을 넓히며, 매우 권장되는 추세 전략이다.
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-20 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/07/2018
// The related article is copyrighted material from
// Stocks & Commodities.
// Strategy by HPotter.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Modified Price-Volume Trend Backtest", shorttitle="MPVT")
Level = input(0)
Scale = input(1)
Length = input(23)
reverse = input(false, title="Trade reverse")
xOHLC4 = ohlc4
xV = volume
rV = xV / 50000
xCumPVT = nz(xCumPVT[1]) + (rV * (xOHLC4 - xOHLC4[1]) / xOHLC4[1])
nRes = Level + Scale * xCumPVT
xMARes = sma(nRes, Length)
pos = iff(nRes > xMARes, 1,
iff(nRes < xMARes, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=red, title="MPVT", linewidth = 2)
plot(xMARes, color=blue, title="MPVT", linewidth = 2)