欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 套利合约的开仓问题,谢谢解答!

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3751人关注过本帖树形打印复制链接

主题:套利合约的开仓问题,谢谢解答!

帅哥哟,离线,有人找我吗?
xiechenpwl6
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:135 积分:0 威望:0 精华:0 注册:2017/9/6 16:23:52
套利合约的开仓问题,谢谢解答!  发帖心情 Post By:2019/9/23 16:24:15    Post IP:1.203.174.20[只看该作者]

后台代码如下:
input:SX(90,1,1000,1),XX(10,1,1000,1),SS(5,1,1000,1);
套利品种1:'M01';
套利品种2:'M05'; 
账户:'629795';  //账号自行定义下
JC:dynainfo2(7,套利品种1)-dynainfo2(7,套利品种2);//最新价差
DEBUGFILE('c:\record.txt','套利空品种1='+套利品种1,0);
DEBUGFILE('c:\record.txt','套利多品种2='+套利品种2,0);
DEBUGFILE('c:\record.txt','价差=%.2f',jc);
//////////////////////////////////////////////////////////////////////
//a:STKINDI('M00','单位乘数.a',0,6);//单位乘数引用
a:DYNAINFO2(209 , 'M00');//单位乘数引用
//监控持仓和资金状况
KC:=TSELLHOLDINGEX(账户,套利品种1,1);//当前持仓量空头
DC:=TBUYHOLDINGEX(账户,套利品种2,1);//当前持仓量多头
当前可用资金:=TACCOUNT(19);
ZJ:当前可用资金>dynainfo2(7,套利品种1)*a;
DEBUGFILE('c:\record.txt','单位乘数=%.2f',a);
DEBUGFILE('c:\record.txt','空头持仓=%.2f',kc);
DEBUGFILE('c:\record.txt','多头持仓=%.2f',dc);
DEBUGFILE('c:\record.txt','当前可用资金=%.2f',当前可用资金);
DEBUGFILE('c:\record.txt','资金是否够用=%.2f',ZJ);
b:DYNAINFO2(208 , 'M00');
kctj:JC >SX ;
kctjq: KC=0 AND DC=0 and zj=1;
DEBUGFILE('c:\record.txt','kctj=%.2f',kctj);
DEBUGFILE('c:\record.txt','kctjq=%.2f',kctjq);
/////////////////////////////////////////////////////////////////////
if JC>SX and KC=0 AND DC=0 and zj=1  then //价差大于上限值时
begin
TBUYSHORT(1,SS,MKT ,0,0,账户,套利品种1);
TBUY(1,SS,MKT ,0,0,账户,套利品种2);
end

if JC<XX AND KC=SS AND DC=SS then //价差小于下限值时
begin
TsellSHORT(1,SS,MKT ,0,0,账户,套利品种1);
Tsell(1,SS,MKT ,0,0,账户,套利品种2);
end

输出结果:
2019-09-23 14:59:56.852    套利空品种1=M01
2019-09-23 14:59:56.852    套利多品种2=M05
2019-09-23 14:59:56.852    价差=103.00
2019-09-23 14:59:56.852    单位乘数=10.00
2019-09-23 14:59:56.852    空头持仓=0.00
2019-09-23 14:59:56.852    多头持仓=0.00
2019-09-23 14:59:56.852    当前可用资金=11188641.98
2019-09-23 14:59:56.852    资金是否够用=1.00
2019-09-23 14:59:56.852    kctj=1.00
2019-09-23 14:59:56.852    kctjq=1.00

问题:我是后台监控的,同时监控了豆粕2001和豆粕2005两个品种,在开程序前补充了K线数据,也开好了账户;
       1,为什么这个开仓条件都成立的情况下,账户并没有开仓?
       2,因为我这规定是双向只开SS=5手,之前出现过连续开两次5手的情况,这种情况是不是因为委托和成交的间隙,再次进行了委托造成的?


[此贴子已经被作者于2019/9/23 16:26:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/23 16:40:48    Post IP:180.169.30.6[只看该作者]

 1.连续开2次五手。这个你确定下你监控的是不是2个品种。套利的话,只需要监控一个品种。否则会重复下单。因为数据都是指定品种调用的,监控2个品种会导致重复下单的。  除此之外的确是有可能是因为没来及成交导致的。没来及成交的话,你代码现在的情况是判断不出来的。

2.条件都满足没有开仓这个。你是走完K的的还是固定轮询的呢?是不是可能刚好卡在轮询间隙或者是走完K模式?
[此贴子已经被作者于2019/9/23 16:40:58编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
xiechenpwl6
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:135 积分:0 威望:0 精华:0 注册:2017/9/6 16:23:52
  发帖心情 Post By:2019/9/23 16:56:52    Post IP:1.203.174.20[只看该作者]

1,我做套利只要监控豆粕2001  或者监控豆粕2005 他们俩中的一个品种就行了是吗?
2,我是采用固定轮训1秒中的。我的条件就m01和m05价差在90以上就做空套利。今天一整天的价差都在100以上的。所以应该可以开采对呢。

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/23 17:11:21    Post IP:180.169.30.6[只看该作者]

 1.是的。监控一个品种即可。因为数据都是直接调用过来的,只需要一个品种作为运算的驱动即可。
2.明天我盘中直接测试下。 请告知你的周期设置是多少。
[此贴子已经被作者于2019/9/23 17:11:38编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
xiechenpwl6
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:135 积分:0 威望:0 精华:0 注册:2017/9/6 16:23:52
  发帖心情 Post By:2019/9/23 17:18:57    Post IP:1.203.174.20[只看该作者]

1,好的谢谢!我明天减少一个看看;
2,因为是套利价差,所以不太在乎周期的设置,我就用的默认的日线周期,这个是不是太大了,会有影响?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/23 17:21:19    Post IP:180.169.30.6[只看该作者]

 日线 今天是不是下过一次单了?如果下过一次的话,后续不会再重复下的。因为一个K 相同的下单代码是不会重复下单的了。 你可以看下监控记录里的情况,即使当时没成交之类的,下单语句也不会重复触发。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
xiechenpwl6
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:135 积分:0 威望:0 精华:0 注册:2017/9/6 16:23:52
  发帖心情 Post By:2019/9/23 17:38:41    Post IP:1.203.174.20[只看该作者]

好的!可能是这个问题,我把周期改小一点,今晚再监控一下,非常感谢!

 回到顶部
帅哥哟,离线,有人找我吗?
xiechenpwl6
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:135 积分:0 威望:0 精华:0 注册:2017/9/6 16:23:52
  发帖心情 Post By:2019/9/24 15:50:45    Post IP:1.203.174.20[只看该作者]

版主你好,我今天试验了一下。重复开仓问题是因为监控双品种造成的。目前已经解决,非常感谢;
对于不开仓的问题,我发现是这句判断出现了问题:
if JC>SX and KC=0 AND DC=0 and zj=1  then //价差大于上限值时

代码的开始,我把SX参数化,判断条件kctj:JC >SX ;就是无效的(测试时价差JC是90,SX是80);
今天我把SX直接改成数字,就开仓了,代码如下:
if JC> 89 and KC=0 AND DC=0 and zj=1  then //价差大于上限值时
begin
TBUYSHORT(1,SS,MKT ,0,0,账户,套利品种1);
TBUY(1,SS,MKT ,0,0,账户,套利品种2);
end
这是为什么呢?不会以后我每次开套利合约,我都要打开代码更改吧?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/24 16:05:05    Post IP:180.169.30.6[只看该作者]

 你的意思是如果SX是参数传递进去的值 就无法判断是吗?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/24 16:08:05    Post IP:180.169.30.6[只看该作者]

 
图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

是在这里进行的设置的吗?


命数如织,当如磐石。
 回到顶部
总数 13 1 2 下一页