-- 作者: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的赋值会出问题呢?
我实在想不通了...
|
-- 作者: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
|