-- 作者:拉普拉斯之魔
-- 发布时间:2013/9/25 16:28:55
-- 套利问题咨询
以下内容为程序代码:
1 C1:="CU11$CLOSE"; 2 C2:="CU12$CLOSE"; 3 4 A:=C1-C2; 5 6 7 8 IF STRCMP(STKLABEL,\'CU11\') = 0 THEN 9 BEGIN 10 SELL(A >N, 1, LIMITR,C); 11 BUY(A <M AND HOLDING=0,1,LIMITR,C); 12 END 13 14 IF STRCMP(STKLABEL,\'CU12\') = 0 THEN 15 BEGIN 16 BUYSHORT(A <M AND HOLDING = 0, 1, LIMITR,C); 17 SELLSHORT(A >N,1,LIMITR,C); 18 end
你好,这是参照贵论坛做的一个套利模型,我将价差参数化了,但每次都发现开平仓时间不一致,请问这模型有什么问题吗
|
-- 作者:jinzhe
-- 发布时间:2013/9/25 16:55:57
--
BUYSHORT(A <M AND HOLDING = 0, 1, LIMITR,C); SELLSHORT(A >N,1,LIMITR,C);
把这两句顺序对调一下
|
-- 作者:jinzhe
-- 发布时间:2013/9/26 15:57:32
--
首先,你肯定有地方改错了,照着我的方法改不会出现这样的错,所以照着下面改,可以保证交易都是同一天
C1:="CU11$CLOSE"; C2:="CU12$CLOSE"; A:=C1-C2; m:=0; n:=-1500; IF STRCMP(STKLABEL,\'CU11\') = 0 THEN BEGIN SELL(A >N and a<, 1, LIMITR,C); BUY(A <M AND HOLDING=0,1,LIMITR,C); END IF STRCMP(STKLABEL,\'CU12\') = 0 THEN BEGIN SELLSHORT(A >N,1,LIMITR,C); BUYSHORT(A <M AND HOLDING = 0, 1, LIMITR,C);
end
其次,不仅语法问题,逻辑上也有错。。。m=0,n=-1500,那么a>-1500和a<0是可以同时成立的啊
所以按照上面的修改后的代码,可能存在a>n和A<M同时成立,所以会造成在同一个时间按照平多开多平空开空的顺序做4次操作。。。
下面图片里面圈的就是上述情况的发生 此主题相关图片如下:2.png
[此贴子已经被作者于2013/9/26 15:58:11编辑过]
|