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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [求助]悲剧的一单没开出来....

   

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


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

主题:[求助]悲剧的一单没开出来....

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


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
[求助]悲剧的一单没开出来....  发帖心情 Post By:2011/5/31 15:04:07 [只看该作者]

图片点击可在新窗口打开查看

 

这个平空单子本来是开多的
因为一个全局变量赋值错误结果下了平空单...
妈的
这下搞的没心情了
我手动补单子的时候行情已经 不等了

 

查看orderlog..

======================sniper的监控===============

2011-05-31 09:44:49.630    =======
2011-05-31 09:44:49.630    bk=2997.38003
2011-05-31 09:44:49.630    sk=2957.78003
2011-05-31 09:44:49.645    price1=2977.58003
2011-05-31 09:44:49.645    xn=2977.80005
2011-05-31 09:44:49.645    num_trade=0.00000
2011-05-31 09:44:49.645    hold=0.00000
2011-05-31 09:44:50.129    =======
2011-05-31 09:44:50.129    bk=2997.38003
2011-05-31 09:44:50.129    sk=2957.78003
2011-05-31 09:44:50.129    price1=2977.58003
2011-05-31 09:44:50.129    xn=2977.80005
2011-05-31 09:44:50.129    num_trade=0.00000
2011-05-31 09:44:50.129    hold=0.00000
2011-05-31 09:45:30.606    =======
2011-05-31 09:45:30.606    bk=2997.38003
2011-05-31 09:45:30.606    sk=2957.78003
2011-05-31 09:45:30.606    price1=2977.58003
2011-05-31 09:45:30.606    xn=2977.00000
2011-05-31 09:45:30.606    num_trade=1.00000
2011-05-31 09:45:30.606    hold=-1.00000
2011-05-31 09:45:31.277    =======
2011-05-31 09:45:31.277    bk=2997.38003
2011-05-31 09:45:31.277    sk=2957.78003
2011-05-31 09:45:31.277    price1=2977.58003
2011-05-31 09:45:31.277    xn=2977.00000
2011-05-31 09:45:31.277    num_trade=1.00000
2011-05-31 09:45:31.292    hold=-1.00000

 

只要成交价格大于BK则开多~小于SK则开空~hold是外生全局变量的虚拟持仓~num_trade是今天的下单笔数~xn是最新价

另外~hold全局变量虚拟持仓lastbar才赋值...

这笔单出问题是因为hold这个虚拟全局变量出了问题~

本来9点45的时候没有下空单~实盘没有下单动作的~不知道为啥这个地方hold给赋值成了-1...系统认为我持有空单

在下午13点55的时候~本来的开多单子变成了平空单....预警响了铃声但因为帐户里实际持仓为0所以没有平空单发出...

关键问题出在早上9点45那个hold的赋值错误

 

============orderlog=================

2011-05-31 09:44:48.132    【后台】IF06 运行结束
2011-05-31 09:44:48.663    【图表】IF06 运行完毕
2011-05-31 09:44:48.663    【后台】IF06 运行结束
2011-05-31 09:44:49.224    【图表】IF06 运行完毕
2011-05-31 09:44:49.224    【后台】IF06 运行结束
2011-05-31 09:44:49.661    【图表】IF06 运行完毕
2011-05-31 09:44:49.661    【后台】IF06 运行结束
2011-05-31 09:44:50.145    【图表】IF06 运行完毕
2011-05-31 09:44:50.160    【后台】IF06 运行结束
2011-05-31 09:45:18.981    【图表】IF06 运行完毕
2011-05-31 09:45:19.215    【图表】IF06 运行完毕
2011-05-31 09:45:19.651    【图表】IF06 运行完毕
2011-05-31 09:45:20.151    【图表】IF06 运行完毕
2011-05-31 09:45:20.684    【图表】IF06 运行完毕
2011-05-31 09:45:21.137    【图表】IF06 运行完毕
2011-05-31 09:45:21.183    【图表】IF06 运行完毕
2011-05-31 09:45:21.636    【图表】IF06 运行完毕
2011-05-31 09:45:22.088    【图表】IF06 运行完毕
2011-05-31 09:45:22.151    【图表】IF06 运行完毕
2011-05-31 09:45:22.556    【图表】IF06 运行完毕
2011-05-31 09:45:22.697    【图表】IF06 运行完毕
2011-05-31 09:45:23.024    【图表】IF06 运行完毕
2011-05-31 09:45:23.211    【图表】IF06 运行完毕
2011-05-31 09:45:23.492    【图表】IF06 运行完毕
2011-05-31 09:45:23.711    【图表】IF06 运行完毕
2011-05-31 09:45:23.960    【图表】IF06 运行完毕
2011-05-31 09:45:24.116    【图表】IF06 运行完毕
2011-05-31 09:45:24.428    【图表】IF06 运行完毕
2011-05-31 09:45:24.662    【图表】IF06 运行完毕
2011-05-31 09:45:25.130    【图表】IF06 运行完毕
2011-05-31 09:45:25.193    【图表】IF06 运行完毕
2011-05-31 09:45:25.380    【图表】IF06 运行完毕
2011-05-31 09:45:25.676    【图表】IF06 运行完毕
2011-05-31 09:45:26.207    【图表】IF06 运行完毕
2011-05-31 09:45:26.519    【图表】IF06 运行完毕
2011-05-31 09:45:26.643    【图表】IF06 运行完毕
2011-05-31 09:45:27.174    【图表】IF06 运行完毕
2011-05-31 09:45:27.470    【图表】IF06 运行完毕
2011-05-31 09:45:27.673    【图表】IF06 运行完毕
2011-05-31 09:45:28.188    【图表】IF06 运行完毕
2011-05-31 09:45:28.625    【图表】IF06 运行完毕
2011-05-31 09:45:29.155    【图表】IF06 运行完毕
2011-05-31 09:45:29.685    【图表】IF06 运行完毕
2011-05-31 09:45:30.216    【图表】IF06 运行完毕
2011-05-31 09:45:30.590    【后台】 启动后台程式化交易
2011-05-31 09:45:30.621    【图表】IF06 运行完毕
2011-05-31 09:45:30.637    【后台】IF06 运行结束
2011-05-31 09:45:31.308    【图表】IF06 运行完毕

 

 

9点44的时候我的后台图表监控的走的好好的

突然后台停了一下

在9点45的时候【后台】 启动后台程式化交易
我不记得当时发生了什么问题~但是图表的监控没有断~那么金字塔应该没有关闭

有可能是我手动关了后台又重新开启了...

但即使是那样的话~为啥那个hold的赋值会出问题呢?

我实在想不通了...


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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/5/31 15:24:49 [只看该作者]

从给出的内容,分析不出原因.

 

可否大致给出一个简单的代码示例.



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

客户服务部

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

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

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2011/5/31 15:32:43 [只看该作者]

我这个公式跑了3个月了没问题

今天因为一个全局变量赋值出现了问题

 

现在问题是

2011-05-31 09:44:50.160    【后台】IF06 运行结束
2011-05-31 09:45:18.981    【图表】IF06 运行完毕
2011-05-31 09:45:19.215    【图表】IF06 运行完毕

这个之间有28秒间断~

我可以保证我没有手动去改那个全局变量数值

可能是因为我手动停了一下后台还是怎么~

但为啥那个会影响到全局变量的赋值呢?

 

我 的全局变量赋值只有早上一个初始化归零~

另外还有下单的时候才会赋值...
为啥停止监控会自动赋值呢?!...搞不清了...


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


加好友 发短信
等级:版主 帖子:99 积分:1844 威望:1000 精华:2 注册:2009/11/20 17:13:40
  发帖心情 Post By:2011/5/31 15:53:51 [只看该作者]

每次启动时全局变量都应该赋初值。



程序化交易QQ聊天群:84283179(已满),建议加入程序化自动交易群24568607

QQ:351666425

http://blog.sina.com.cn/lunhuitrade
 回到顶部
帅哥哟,离线,有人找我吗?
bbking
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1609 积分:4924 威望:0 精华:0 注册:2010/10/28 14:02:46
  发帖心情 Post By:2011/6/1 14:40:21 [只看该作者]

以下是引用轮回在2011-5-31 15:53:51的发言:

每次启动时全局变量都应该赋初值。

 

这样很难啊~比如我的hold虚拟持仓全局变量是在9点半之前初始化为0

如果每次启动时全局变量初始化为0~假设是10点...

我9点40的时候开了一手多~hold=1

结果9点50的时候掉线重启了~

我下次启动交易的时候如果全局变量又初始化为0..

那就麻烦了...

所以还得自己盯这个全局变量怕出问题啊...


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


加好友 发短信
等级:论坛游民 帖子:219 积分:1350 威望:0 精华:0 注册:2011/2/27 21:22:43
  发帖心情 Post By:2011/6/2 14:13:00 [只看该作者]

全局变量的确是个问题,只能在最初的时候初始化,不可能在开仓后再来初始化。

请版主找几个好帖,好好学习一下,总是出问题。

 

我今天的空仓没有开出:

 

if buyshortcond then begin
    
     Tbuyshort(1,sv,MKT,0,0,'83060','IF06'),orderqueue;
     //Tbuyshort(1,2,MKT,0,0,'8114','IF06'),orderqueue;
     Tbuyshort(1,2,MKT,0,0,'8306','IF06'),orderqueue; 
    EXTGBdataset(1C_TotalHoldings,-sv);
end

 

当buyshortcond满足的时候,我检测到1C_totalHoldings 的值变成了-sv. 但是竟然没有任何开仓动作。而且监控中也没有看到任何开仓的信号出来。

 

请教到底发生了什么问题?

 

 


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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/6/2 15:00:26 [只看该作者]

1.6楼的是一个后台策略,请不要双击显示在K线主图上.------后台策略就后台运行

 

2.这个开平仓的简单示例,可以运行一下,下单情况一致,全局变量的赋值也完全符合要求.

 

//1分钟K线,K线走完

 

RUNMODE:0;            //工作于逐周期模式

THold:='THold';
IF currenttime>=144800 and currenttime<=145200 and islastbar and tholding=0 THEN
   begin
   Tbuyshort(1,1,MKT,0,0,'','IF06');
   EXTGBdataset('THold',1);
   end
  
IF currenttime>145500 and tholding<0 THEN
   begin
   Tsellshort(1,1,MKT);
   EXTGBdataset('THold',0);
   end
  
IF ISLASTBAR then begin
     DEBUGFILE2('d:\quanju.txt','THOLDING:%.2f',EXTGBdata('THold'),1);
END

 

附:quanju.txt中的全局变量THold的输出

2011-06-02 14:47:01.632    THOLDING:0.00
2011-06-02 14:48:02.585    THOLDING:1.00
2011-06-02 14:49:01.616    THOLDING:1.00
2011-06-02 14:50:01.632    THOLDING:1.00
2011-06-02 14:51:01.600    THOLDING:1.00
2011-06-02 14:52:01.616    THOLDING:1.00
2011-06-02 14:53:01.710    THOLDING:1.00
2011-06-02 14:54:01.632    THOLDING:1.00
2011-06-02 14:55:01.600    THOLDING:0.00
2011-06-02 14:56:02.585    THOLDING:0.00
2011-06-02 14:57:01.647    THOLDING:0.00
2011-06-02 14:58:02.632    THOLDING:0.00
2011-06-02 14:59:01.647    THOLDING:0.00

 



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

客户服务部

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

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

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部