期货软件TB系统源代码解读系列32-PVI

虽然这个指标我一直在用,可还真没发现资金流向的动态,百度了一下说,正成交量指标( Positive Volume Index )又称为正量指标(PVI),其主要作用是辨别目前市场行情是处于多头行情还是空头行情 ,并追踪市场资金流向。

这指标算法也很简单,如下:

1. 当VOL(n) > VOL(n+1)时,PVIValue = PVIValue[1]+(Close-Close[1])/Close[1]*PVIValue[1];当VOL(n) < VOL(n+1)时,PVIValue = PVIValue[1].

2. MA=PVI的N日移动平均线

3. 第一次计算时,PVI一律以100代替

4. 参数N设置为250.

没什么好说的,直接附上代码解读了,如下:

Vars

NumericSeries PVIValue;//声明数值序列变量PVIValue。//

Begin

If(CurrentBar == 0)//假如当前k线为第一根的。//

{

PVIValue = 100;//直接读了。//

}Else//第二根开始。//

{

If(Vol > Vol[1])//假如当前成交量大于前一根k线成交量。//

{

PVIValue = PVIValue[1]+(Close-Close[1])/Close[1]*PVIValue[1];//由第一根k线可以知道,PVIValue[1]=100,则close[1]就是前一根k线收盘价了。则都是把相应数值代入,就能求出第二根k线的PVIValue值了。之后的k线就一直如此求出PVIValue值。//

}Else//当前成交量小于等于前一k线的成交量的。//

{

PVIValue = PVIValue[1];//变量PVIValue = 前一个PVIValue值。//

}

}

PlotNumeric("PVI",PVIValue);//画线PVI,值为PVIValue值了。//

PlotNumeric("PVI250",AverageFC(PVIValue,250));//画线PVI250,值为PVIValue的250周期的均线值了。//

End

它的用法如下:

1.PVI指标位于其N天移动平均线之上时,表示目前处于多头市场。

2.PVI指标由下往上穿越其N天移动平均线,代表中期买进讯号。

3.PVI指标位于其N天移动平均线之下时,表示目前处于空头市场。

4.PVI指标由上往下穿越其N天移动平均线时,代表中期卖出讯号。

我就直接写出来了,当然我一般只用这个判断多头或空头,之后根据自己别的判断,进行相应趋势操作,不会这么死硬搬着这用法的。但这里只是做个简单解说了,喜欢这个指标的朋友,也得要自己仔细研究统计一番才会了解它的。

Params

Numeric Length(250);

Vars

NumericSeries PVIValue;

NumericSeries PVI250;

Begin

If(CurrentBar == 0)

{

PVIValue = 100;

}Else

{

If(Vol > Vol[1])

{

PVIValue = PVIValue[1]+(Close-Close[1])/Close[1]*PVIValue[1];

}Else

{

PVIValue = PVIValue[1];

}

}

PVI250 = AverageFC(PVIValue,Length);

If(MarketPosition <> 1 And PVIValue[1] >= PVI250[1] )

{

Buy(0,Open);

}

If(MarketPosition <>-1 And PVIValue[1] <= PVI250[1])

{

SellShort(0,Open);

}

End

结果看着很一般吧,但我只能说,这是一个趋势判断,跟移动均线一个性质的,怎么运用都是看个人理解了,不能别人说什么就生搬硬套。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容