nn:=barslast(date<>ref(date,1))+1;
结算价:sum(amount,nn)/sum(vol,nn)/multiplier;
昨结算:ref(结算价,nn);
在计算昨结算时发现一个问题:
橡胶原来是5吨一手,现在是10吨一手。燃料油原来是10吨一手,现在是50吨一手。
橡胶连续在2012年4月6日之前的multiplier应该是原来的5吨一手,但是加载后的multiplier是10。
燃料油连续在2011年11月17日之前的multiplier应该是原来的10,但是加载后的multiplier是50。
建议金字塔对橡胶和燃料油这两个变成大合约的品种的multiplier做一下特别的处理,在成为大合约之前的K线用原来的合约乘数。
期货品种总共就二十来个,修改期货合约是期货界的大事记,属于小概率事件,不会很频繁的。只要针对修改的品种合约都单独设置一下就好了。有一个办法可能很老土,希望有用:
橡胶连续的multiplier,在2012年4月5日的值为5,在2012年4月6日的值为10,于是做如下处理:
if datetod1970(date)<15436 then multip:=5;
else multip:=10;
由于具体每一个合约变成大合约的日期可能不同,所以上面的15436参数需要相应的改变。燃料油的multip由原来的10变为50。