커뮤니티
문의드립니다 VPCI 지표.
2009-07-06 05:59:40
1503
글번호 23257
VPCI 지표
(Volume Price Confirmation Indicator)
YS식으로 제작된게 있는지 궁금합니다.
OBV랑 비슷한 거래량지표입니다
만약 없다면 TS 수식을 올려봅니다.
Indicator: VPCI
inputs:
Price( Close ),
Length1( 5 ),
Length2( 20 ),
VPCIAvgLen( 20 ) ;
variables:
VolValue( 0 ),
VolumeSum1( 0 ),
VolumeSum2( 0 ),
VWMA1( 0 ),
VWMA2( 0 ),
VP( 0 ),
VPR( 0 ),
VM( 0 ),
VPCI( 0 ),
AvgVPCI( 0 ) ;
if BarType >= 2 then { not tick/minute data }
VolValue = Volume
else
VolValue = Ticks ;
VolumeSum1 = Summation( VolValue, Length1 ) ;
if VolumeSum1 > 0 then
VWMA1 = Summation( Price * VolValue , Length1 ) / VolumeSum1 ;
VolumeSum2 = Summation( VolValue, Length2 ) ;
if VolumeSum2 > 0 then
VWMA2 = Summation( Price * VolValue , Length2 ) / VolumeSum2 ;
VP = VWMA2 - Average( Price, Length2 ) ;
VPR = VWMA1 / Average( Low, Length1 ) ;
VM = Average( VolValue, Length1 ) / Average( VolValue, Length2 ) ;
VPCI = VP * VPR * VM ;
AvgVPCI = Average( VPCI, VPCIAvgLen ) ;
Plot1( VPCI, "VPCI" ) ;
Plot2( AvgVPCI, "VPCISmooth" ) ;
Plot3( 0, "Zero" ) ;
Strategy: VPCI
inputs:
Price( Close ),
Length1( 5 ),
Length2( 20 ),
VPCIAvgLen( 20 ),
MACD_FastLength( 12 ),
MACD_SlowLength( 26 ),
MACDLength( 9 ),
OBVAvgLength( 20 ),
ADX_Len( 7 ),
ADX_Threshold( 20 ),
UseVPCI( 1 ), { 1 means "use for confirmation",
0 means "don't use" }
UseADX ( 0 ),
UseOBV ( 0 ) ;
variables:
MACDValue( 0 ),
AvgMACD( 0 ),
ADXValue( 0 ),
OBVValue( 0 ),
AvgOBV( 0 ),
VolValue( 0 ),
VolumeSum1( 0 ),
VolumeSum2( 0 ),
VWMA1( 0 ),
VWMA2( 0 ),
VP( 0 ),
VPR( 0 ),
VM( 0 ),
VPCI( 0 ),
AvgVPCI( 0 ) ;
MACDValue = MACD( Close, MACD_FastLength, MACD_SlowLength ) ;
AvgMACD = Average( MACDValue, MACDLength ) ;
ADXValue = ADX( ADX_Len ) ;
OBVValue = OBV ;
AvgOBV = Average( OBVValue, OBVAvgLength ) ;
if BarType >= 2 then { not tick/minute data }
VolValue = Volume
else
VolValue = Ticks ;
VolumeSum1 = Summation( VolValue, Length1 ) ;
if VolumeSum1 > 0 then
VWMA1 = Summation( Price * VolValue , Length1 ) / VolumeSum1 ;
VolumeSum2 = Summation( VolValue, Length2 ) ;
if VolumeSum2 > 0 then
VWMA2 = Summation( Price * VolValue , Length2 ) / VolumeSum2 ;
VP = VWMA2 - Average( Price, Length2 ) ;
VPR = VWMA1 / Average( Low, Length1 ) ;
VM = Average( VolValue, Length1 ) / Average( VolValue, Length2 ) ;
VPCI = VP * VPR * VM ;
AvgVPCI = Average( VPCI, VPCIAvgLen ) ;
if MACDValue crosses over AvgMACD
and ( ( VPCI > AvgVPCI and UseVPCI = 1 ) or UseVPCI <> 1 )
and ( ( ADXValue < ADX_Threshold and UseADX = 1 ) or
UseADX <> 1 )
and ( ( OBVValue > AvgOBV and UseOBV = 1 ) or UseOBV <> 1 )
then
Buy next bar at market
else if MACDValue crosses under AvgMACD
and ( ( VPCI < AvgVPCI and UseVPCI = 1 ) or
UseVPCI <> 1 )
and ( ( ADXValue < ADX_Threshold and UseADX = 1 ) or
UseADX <> 1 )
and ( ( OBVValue < AvgOBV and UseOBV = 1 ) or
UseOBV <> 1 )
then
SellShort next bar at market ;
답변 1
예스스탁 예스스탁 답변
2009-07-06 08:48:04
안녕하세요
예스스탁입니다.
1. 지표식
inputs:Length1( 5 ), Length2( 20 ), VPCIAvgLen( 20 ) ;
variables: VolValue( 0 ), VolumeSum1( 0 ), VolumeSum2( 0 ), VWMA1( 0 ), VWMA2( 0 ), VP( 0 ), VPR( 0 ),
VM( 0 ), VPCI( 0 ), AvgVPCI( 0 ) ;
if DataCompress >= 2 then #{ not tick/minute data }
VolValue = Volume ;
else
VolValue = Ticks ;
VolumeSum1 = AccumN( VolValue, Length1 ) ;
if VolumeSum1 > 0 then
VWMA1 = AccumN( C * VolValue , Length1 ) / VolumeSum1 ;
VolumeSum2 = AccumN( VolValue, Length2 ) ;
if VolumeSum2 > 0 then
VWMA2 = AccumN( C * VolValue , Length2 ) / VolumeSum2 ;
VP = VWMA2 - Ma( C, Length2 ) ;
VPR = VWMA1 / Ma( Low, Length1 ) ;
VM = Ma( VolValue, Length1 ) / Average( VolValue, Length2 ) ;
VPCI = VP * VPR * VM ;
AvgVPCI = Ma( VPCI, VPCIAvgLen ) ;
Plot1( VPCI, "VPCI" ) ;
Plot2( AvgVPCI, "VPCISmooth" ) ;
Plot3( 0, "Zero" ) ;
2.
#trategy: VPCI
inputs: Length1( 5 ), Length2( 20 ), VPCIAvgLen( 20 ), MACD_FastLength( 12 ),
MACD_SlowLength( 26 ), MACDLength( 9 ), OBVAvgLength( 20 ), ADX_Len( 7 ), ADX_Threshold( 20 ),
UseVPCI( 1 ), #{ 1 means "use for confirmation", 0 means "don't use" }
UseADX ( 0 ),
UseOBV ( 0 ) ;
variables: MACDValue( 0 ), AvgMACD( 0 ), ADXValue( 0 ), OBVValue( 0 ), AvgOBV( 0 ), VolValue( 0 ),
VolumeSum1( 0 ), VolumeSum2( 0 ), VWMA1( 0 ), VWMA2( 0 ), VP( 0 ), VPR( 0 ), VM( 0 ), VPCI( 0 ),
AvgVPCI( 0 ) ;
MACDValue = MACD(MACD_FastLength, MACD_SlowLength ) ;
AvgMACD = Average( MACDValue, MACDLength ) ;
ADXValue = ADX( ADX_Len ) ;
OBVValue = OBV ;
AvgOBV = Average( OBVValue, OBVAvgLength ) ;
if DataCompress >= 2 then #{ not tick/minute data }
VolValue = Volume ;
else
VolValue = Ticks ;
VolumeSum1 = AccumN( VolValue, Length1 ) ;
if VolumeSum1 > 0 then
VWMA1 = AccumN( C * VolValue , Length1 ) / VolumeSum1 ;
VolumeSum2 = AccumN( VolValue, Length2 ) ;
if VolumeSum2 > 0 then
VWMA2 = AccumN( C * VolValue , Length2 ) / VolumeSum2 ;
VP = VWMA2 - Average( C, Length2 ) ;
VPR = VWMA1 / Average( Low, Length1 ) ;
VM = Average( VolValue, Length1 ) / Average( VolValue, Length2 ) ;
VPCI = VP * VPR * VM ;
AvgVPCI = Average( VPCI, VPCIAvgLen ) ;
if crossup(MACDValue,AvgMACD )
and ( ( VPCI > AvgVPCI and UseVPCI == 1 ) or UseVPCI <> 1 )
and ( ( ADXValue < ADX_Threshold and UseADX == 1 ) or
UseADX <> 1 )
and ( ( OBVValue > AvgOBV and UseOBV == 1 ) or UseOBV <> 1 )
then
Buy("B",AtMarket);
else if CrossDown(MACDValue,AvgMACD )
and ( ( VPCI < AvgVPCI and UseVPCI == 1 ) or
UseVPCI <> 1 )
and ( ( ADXValue < ADX_Threshold and UseADX == 1 ) or
UseADX <> 1 )
and ( ( OBVValue < AvgOBV and UseOBV == 1 ) or
UseOBV <> 1 )
then
Sell("S",AtMarket);
즐거운 하루되세요
> kmp 님이 쓴 글입니다.
> 제목 : 문의드립니다 VPCI 지표.
>
VPCI 지표
(Volume Price Confirmation Indicator)
YS식으로 제작된게 있는지 궁금합니다.
OBV랑 비슷한 거래량지표입니다
만약 없다면 TS 수식을 올려봅니다.
Indicator: VPCI
inputs:
Price( Close ),
Length1( 5 ),
Length2( 20 ),
VPCIAvgLen( 20 ) ;
variables:
VolValue( 0 ),
VolumeSum1( 0 ),
VolumeSum2( 0 ),
VWMA1( 0 ),
VWMA2( 0 ),
VP( 0 ),
VPR( 0 ),
VM( 0 ),
VPCI( 0 ),
AvgVPCI( 0 ) ;
if BarType >= 2 then { not tick/minute data }
VolValue = Volume
else
VolValue = Ticks ;
VolumeSum1 = Summation( VolValue, Length1 ) ;
if VolumeSum1 > 0 then
VWMA1 = Summation( Price * VolValue , Length1 ) / VolumeSum1 ;
VolumeSum2 = Summation( VolValue, Length2 ) ;
if VolumeSum2 > 0 then
VWMA2 = Summation( Price * VolValue , Length2 ) / VolumeSum2 ;
VP = VWMA2 - Average( Price, Length2 ) ;
VPR = VWMA1 / Average( Low, Length1 ) ;
VM = Average( VolValue, Length1 ) / Average( VolValue, Length2 ) ;
VPCI = VP * VPR * VM ;
AvgVPCI = Average( VPCI, VPCIAvgLen ) ;
Plot1( VPCI, "VPCI" ) ;
Plot2( AvgVPCI, "VPCISmooth" ) ;
Plot3( 0, "Zero" ) ;
Strategy: VPCI
inputs:
Price( Close ),
Length1( 5 ),
Length2( 20 ),
VPCIAvgLen( 20 ),
MACD_FastLength( 12 ),
MACD_SlowLength( 26 ),
MACDLength( 9 ),
OBVAvgLength( 20 ),
ADX_Len( 7 ),
ADX_Threshold( 20 ),
UseVPCI( 1 ), { 1 means "use for confirmation",
0 means "don't use" }
UseADX ( 0 ),
UseOBV ( 0 ) ;
variables:
MACDValue( 0 ),
AvgMACD( 0 ),
ADXValue( 0 ),
OBVValue( 0 ),
AvgOBV( 0 ),
VolValue( 0 ),
VolumeSum1( 0 ),
VolumeSum2( 0 ),
VWMA1( 0 ),
VWMA2( 0 ),
VP( 0 ),
VPR( 0 ),
VM( 0 ),
VPCI( 0 ),
AvgVPCI( 0 ) ;
MACDValue = MACD( Close, MACD_FastLength, MACD_SlowLength ) ;
AvgMACD = Average( MACDValue, MACDLength ) ;
ADXValue = ADX( ADX_Len ) ;
OBVValue = OBV ;
AvgOBV = Average( OBVValue, OBVAvgLength ) ;
if BarType >= 2 then { not tick/minute data }
VolValue = Volume
else
VolValue = Ticks ;
VolumeSum1 = Summation( VolValue, Length1 ) ;
if VolumeSum1 > 0 then
VWMA1 = Summation( Price * VolValue , Length1 ) / VolumeSum1 ;
VolumeSum2 = Summation( VolValue, Length2 ) ;
if VolumeSum2 > 0 then
VWMA2 = Summation( Price * VolValue , Length2 ) / VolumeSum2 ;
VP = VWMA2 - Average( Price, Length2 ) ;
VPR = VWMA1 / Average( Low, Length1 ) ;
VM = Average( VolValue, Length1 ) / Average( VolValue, Length2 ) ;
VPCI = VP * VPR * VM ;
AvgVPCI = Average( VPCI, VPCIAvgLen ) ;
if MACDValue crosses over AvgMACD
and ( ( VPCI > AvgVPCI and UseVPCI = 1 ) or UseVPCI <> 1 )
and ( ( ADXValue < ADX_Threshold and UseADX = 1 ) or
UseADX <> 1 )
and ( ( OBVValue > AvgOBV and UseOBV = 1 ) or UseOBV <> 1 )
then
Buy next bar at market
else if MACDValue crosses under AvgMACD
and ( ( VPCI < AvgVPCI and UseVPCI = 1 ) or
UseVPCI <> 1 )
and ( ( ADXValue < ADX_Threshold and UseADX = 1 ) or
UseADX <> 1 )
and ( ( OBVValue < AvgOBV and UseOBV = 1 ) or
UseOBV <> 1 )
then
SellShort next bar at market ;
다음글