以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]悲剧的一单没开出来....  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=6717)

--  作者:bbking
--  发布时间: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
--  发布时间:2011/5/31 15:24:49
--  

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

 

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


--  作者:bbking
--  发布时间: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秒间断~

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

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

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

 

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

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


--  作者:轮回
--  发布时间:2011/5/31 15:53:51
--  

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


--  作者:bbking
--  发布时间: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
--  发布时间: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
--  发布时间: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