老师您好!
我想编写一种用成交量比例当权重的移动平均线。
具体是这样的:
设均线长度Length=2;
那么最新的均线值=close*vol/(vol+vol[1])+close[1]*vol[1]/(vol+vol[1]);
设均线长度Length=3;
那么最新的均线值=close*vol/(vol+vol[1]+vol[2])+close[1]*vol[1]/(vol+vol[1]+vol[2])+close[2]*vol[2]/(vol+vol[1]+vol[2]);
请教如何将这个均线用公式表现出来?
我明白了,非常感谢老师快速又耐心地解答!
不可客气,我不是老师,我这不也是班门弄斧啊,刘老师2024年2月1日直播课有讲过成交量加权均价的话题,大家都是同学,学习路上,互帮互助。 https://www.tbquant.net/TrainDetail?id=487
你也算老师了
成交量加权平均价的算法不难实现,成交量加权平均价=【累计成交金额】/【累计成交量】。但是你的需求中把【close * vol】作为【累计成交金额】使用。因为,每笔撮合成交的成交价格会发生变化,不会固定在close这一个价格上,所以我不清楚你的算法有什么统计学上的意义?代码如下:默认周期长度为1,如果订阅的周期单位是1日线的话,按照建议算法,得到的【AvgPriceByVol】其实就是【当日的结算价】
Params
Integer Length(1);
Vars
Series<Numeric> SumPV;
Events
OnBar(ArrayRef<Integer> indexs){
Numeric AvgPriceByVol;
//你的算法:
//SumPV = Close * Vol;
//AvgPriceByVol = SummationFC(SumPV, Length) / SummationFC(Vol, Length);
//建议算法:
SumPV = TurnOver;
AvgPriceByVol = SummationFC(SumPV, Length) / (SummationFC(Vol, Length) * ContractUnit);
PlotNumeric(\"AvgByVol\", AvgPriceByVol);
}