커뮤니티

문의드립니다 VPCI 지표.

프로필 이미지
kmp
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 ;