套利模型加载在不同合约上的问题 [文华财经]
- 咨询内容:
同一个套利模型,其中涉及到价差的均值:MA(SPREAD,60),分别加载在第一腿和第二腿合约1分钟图上,由于第二腿合约是不活跃合约,1分钟数据有断的,这样MA(SPREAD,60)涉及到到60根K线的时间与第一腿就不同了。计算出来的价差均值也有差异。请问老师有没有什么办法可以解决?
- 文华技术人员:
目前WH8套利程序化仍在开发阶段,暂时没有很好的编写方式,您的SPREAD是怎么定义的呢?是通过跨周期模型编写的?
- 文华客服:
是的。加载在1分钟上,加载在8612和8609上的均值和方差不同,因为8612是非主力合约,有些1分钟没有成交,所以那根K线就没有。
定义CC:
C0:=CLOSE;
定义价差:
#IMPORT[8612,MIN5,CC] AS VAR1
C1:=VAR1.C0;#IMPORT[8609,MIN5,CC] AS VAR2
C2:=VAR2.C0;S:C1-C2;
MEAN0:MA(S,270);
SIGMA0:STD(S,270); - 网友回复:
把跨周期模型修改以下S变量试试有没有帮助:
#IMPORT[8612,MIN5,CC] AS VAR1
C1:=VAR1.C0;#IMPORT[8609,MIN5,CC] AS VAR2
C2:=VAR2.C0;S:IFELSE(MIN(C1,C2)>0,C1-C2,VALUEWHEN(C1>0,C1)-VALUEWHEN(C2>0,C2));//如果两个价格都大于0,取其差值,否则取各自最近一次大于0时的价差
MEAN0:MA(S,270);
SIGMA0:STD(S,270); - 网友回复:
这个问题跟S的写法应该没关系,我之前的写法相当于是其中一个合约无成交的话是空值,您的写法是取前值。但关键不是S取什么值,而是K线的根数不同,比如:
8609是主力合约,每1分钟都有成交,所以一天有270根1分钟K线,那么在当天收盘时MA(S,270)是当天所有1分钟K线对应的价差的均值;
8612不是主力合约,不是每分钟都有成交,比如中间少了5根K线,那么在当天收盘时MA(S,270)是(当天所有1分钟K线+昨天最后5根K线)对应的价差的均值。
我也试过把270用BARSLAST(DATE<>REF(DATE,1))+1替代,那么计算MA用到的数据区间是相同的,但是因为K线根数不同,所以MA的值还是不同。
相当于前一种方式是MA=SUM/N中的SUM不同,后一种方式是MA=SUM/N中的N不同。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容