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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 同一根K线同时满足开空开多条件的时候出现问题

   

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


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

主题:同一根K线同时满足开空开多条件的时候出现问题

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


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
同一根K线同时满足开空开多条件的时候出现问题  发帖心情 Post By:2014/5/12 11:46:39 [只看该作者]

程序运行于后台1秒钟轮询,开仓语句如下: 

 

IF  THOLDING=0 AND THOLDING2=0 AND 开多1 THEN 
     开多A:TBUY(1,手数,LMT,SP1);
 IF  THOLDING=0 AND THOLDING2=0 AND 开空1 THEN 
     开空A:TBUYSHORT(1,手数,LMT,BP1);

 

 IF  THOLDING=0 AND THOLDING2=0 AND 开多2 THEN 
     开多B:TBUY(1,手数,LMT,SP1);
 IF  THOLDING=0 AND THOLDING2=0 AND 开空2 THEN 
     开空B:TBUYSHORT(1,手数,LMT,BP1); 

在某些情况下可能出现既满足开空A,又满足开多B的情况,按道理我在开仓之前用THOLDING=0 AND THOLDING2=0进行了限制

如果前面已经开仓,无论是否成交后面都不应该再继续开仓. 而实际情况不是这样的, 如果前面开仓,后面还会继续开, 资金不够的

话会报告资金不足, 但是如果资金有多的,就会出现多空双开的情况

而图表K线走完模式下不会出现这个问题,所以很明显这个应该是THOLDING出了问题,它没能及时变更数值,对于这种情况该怎么办?


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


加好友 发短信
等级:超级版主 帖子:5895 积分:3774 威望:0 精华:0 注册:2012/1/1 0:00:01
  发帖心情 Post By:2014/5/12 13:35:32 [只看该作者]

1,仔细理解下THODLING和THOLIDNG2的机制,只有成交后才会返回值

 代码从上往下运行,来了tick可能条件同时满足。报单后未及时成交导致值没有返回是很正常的情况

 

条件里加个未成交判断



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
滚雪球
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
  发帖心情 Post By:2014/5/12 14:16:56 [只看该作者]

THODLING2是成交了才生效,THODLING不是订单发出以后就立即生效了吗? 如果都是成交了才生效那么THODLING2存在的意义何在?

你说检查未成交单,你看我这样改可以解决问题吗?

 

 IF  THOLDING=0 AND THOLDING2=0 AND TREMAINQTY(0,'','')=0  AND 开多1 THEN 
     开多A:TBUY(1,手数,LMT,SP1);
 IF  THOLDING=0 AND THOLDING2=0 AND TREMAINQTY(0,'','')=0  AND 开空1 THEN 
     开空A:TBUYSHORT(1,手数,LMT,BP1); 

 IF  THOLDING=0 AND THOLDING2=0 AND TREMAINQTY(0,'','')=0 AND 开多2 THEN 
     开多B:TBUY(1,手数,LMT,SP1);
 IF  THOLDING=0 AND THOLDING2=0 AND TREMAINQTY(0,'','')=0 AND 开空2 THEN 
     开空B:TBUYSHORT(1,手数,LMT,BP1); 


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


加好友 发短信
等级:超级版主 帖子:5895 积分:3774 威望:0 精华:0 注册:2012/1/1 0:00:01
  发帖心情 Post By:2014/5/12 14:26:52 [只看该作者]

http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&ID=49371&skin=0 看下这个帖子

 

TISREMAIN( ) 用这个函数比较好,具体情况实际验证下。也有可能一比tick过来值未刷新的情况,另外勾选下高频



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
滚雪球
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
  发帖心情 Post By:2014/5/12 14:48:18 [只看该作者]

从我观察应该不是属于tick过来值未刷新,就是因为同时满足条件前面的开仓没有立即成交而后面的又开了,我改成这样,你看如何?

 IF  THOLDING=0 AND THOLDING2=0 AND TISREMAIN(0)=0 AND 开多1 THEN 
     开多A:TBUY(1,手数,LMT,SP1);
 IF  THOLDING=0 AND THOLDING2=0 AND TISREMAIN(0)=0 AND 开空1 THEN 
     开空A:TBUYSHORT(1,手数,LMT,BP1); 

 IF  THOLDING=0 AND THOLDING2=0 AND TISREMAIN(0)=0 AND 开多2 THEN 
     开多B:TBUY(1,手数,LMT,SP1);
 IF  THOLDING=0 AND THOLDING2=0 AND TISREMAIN(0)=0 AND 开空2 THEN 
     开空B:TBUYSHORT(1,手数,LMT,BP1); 


如果这样还不行,我干脆加个变量,在开仓之前置为0,只要经过一个开平条件就把它设置为1, 然后每次开仓前检查它是不是为0

 


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


加好友 发短信
等级:超级版主 帖子:5895 积分:3774 威望:0 精华:0 注册:2012/1/1 0:00:01
  发帖心情 Post By:2014/5/12 14:56:54 [只看该作者]

 可以先试试, 不行直接用EXTGBDATASET控制。效果要好很多


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
滚雪球
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
  发帖心情 Post By:2014/5/12 15:04:28 [只看该作者]

THOLDING2=0 的时候应该是不应该存在未成交单的, 如果存在未成交单THOLDING2怎么能够等于0呢,这不是自相矛盾吗?

我感觉是金字塔自身bug的可能性大

我先试下用变量控制,这个生效应该不可能延时

 

 


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


加好友 发短信
等级:超级版主 帖子:5895 积分:3774 威望:0 精华:0 注册:2012/1/1 0:00:01
  发帖心情 Post By:2014/5/12 15:27:47 [只看该作者]

大哥,能不能仔细看下我发给你的连接。了解下THOLDING2的取值原理

 

开仓后值不会立即变化,只有成交后才会变化。

 

[此贴子已经被作者于2014/5/12 15:35:15编辑过]


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
滚雪球
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:520 积分:0 威望:0 精华:0 注册:2013/10/20 14:07:21
  发帖心情 Post By:2014/5/12 15:55:41 [只看该作者]

一堆holding实在是搞得有点晕,我理解错了, 应该是平仓后THOLDING2=0肯定不存在未成交单,开仓以后没成交THOLDING2会还是0

那么需要检查未成交单,只有未成交单也是0,才算是真的没有开仓过 

另外THOLDING的用法真是太怪异了, 是否立即生效还要看是多还是空,我看有THOLDING2了THOLDING就可扔掉了,什么情况下必须用

THOLDING而THOLDING2不能解决问题?


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


加好友 发短信
等级:超级版主 帖子:5895 积分:3774 威望:0 精华:0 注册:2012/1/1 0:00:01
  发帖心情 Post By:2014/5/12 16:05:27 [只看该作者]

 THOLDING 平仓后立即变化,不管也没有成交

THODLING2 平仓后也不会立即变化,成交后才会返回值



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
总数 11 1 2 下一页