系统交易论坛 - 开拓者期货自动交易平台's Archiver

Axel_Maull 发表于 2009-9-23 22:08

实盘无法平仓,A_totalposition数据不正确,急

系统是一直开启自动交易,无人值守

今天M1005该平多仓后开空仓,结果多仓未平空仓开了,察看交易记录发现上午所有品种原有持仓舱位
- 通过A_Totalposition调用来的数据都为0(应该有一手多仓,另外TA有3手持仓也显示为零)
- 因此没有触发平多仓动作
- 11:29分开空信号出现直接开了两手空(此时开始A_Totalposition显示为-1,一手多,两手空,此时TA显示也正确了)

我的系统在实盘是通过A_Totalposition来判断当时持仓情况的。此Bug绝对是致命打击,亟盼更正或绕过的方法。

我实盘调用舱位的函数如下

        if (barstatus==2) /用于实盘交易
        {
                Price = Q_Last;
                Position = A_TotalPosition();
        }
        Else / 用于盘后或测试
        {
                Price = C;
                Position = MarketPosition;
        }

Axel_Maull 发表于 2009-9-23 22:12

盼Nopain版和Blazer版帮助,现在我很Pain

nopain 发表于 2009-9-24 08:55

1、您是写日志文件,发现是A_Totalposition=0吗?
2、对于您的公式写法,我建议只在第一次初始化时使用A_Totalposition,然后使用全局变量记录。

Axel_Maull 发表于 2009-9-24 21:27

1, 是,通过程序段输出文本日志记录调试的
2、我的触发信号当中有对当时A_Totalposition的核对(我需要以当时实际账户持仓为准,且没有未执行Order的情况下发出信号)
3、有没有A_XXXX函数调用当前持仓是第几次加仓

交易系统24小时一直处于自动交易不需要下单确认状态

今日情况M1005昨日是一手多两手空,今天在11点半左右手动平了一手多。回家后检查日志发现在手动平仓动作以后A_Totalposition开始反映实际持仓一直到收盘没有过变化一直是-2,11点之前一直是显示0(应该是-1)

感觉是否只有在有过帐户买卖后才会更新A_Totalposition的数值而并不是每次调用都读取实际账户情况

TA和Cu开盘也不正确,CU在9:15有操作后正确了,而RU没有任何操作却是正确的。M和TA用的是实盘账号,CU和RU模拟账号,急。

Axel_Maull 发表于 2009-9-24 21:48

更正,不能说RU没有任何操作却是正确的,模拟账户CU在9:15有过操作,我是没15分钟记录一次,RU正确可能与CU访问过模拟账户有关,二次是实盘账户还没有过操作。

再次核对发现实盘账户在M有过操作后,TA的持仓也恢复正常了。越来越感觉我的猜测是对的。A_totalposition不是实时获取,尤其是隔夜后开盘对被恢复成0了。。。可能是为了避免频繁查询只有买卖动作后或重新登陆才更新账户持仓。

maodong 发表于 2009-9-25 09:57

关注,帮顶。。。。。。。。。。。。。。。

nopain 发表于 2009-9-25 15:28

您手动通过金仕达平仓的?
这样系统不会更新持仓的,除非有交易动作,才会同步。

你如果通过TB平仓就没有这个问题。

Axel_Maull 发表于 2009-9-28 14:57

是通过TB平仓的。我再观察几天。

我感觉系统如果是24小时不间断运行,第二天开盘没有交易操作前A_totalposition的数据都是归零的没有在开盘前同步等动作,会造成我盘中对仓位的判断有误(已有持仓而按照空仓逻辑操作)。

nopain 发表于 2009-9-28 15:04

不能24小时连续工作,每天早上需要在柜台日初之后重新登陆,才能确保不出问题。

Axel_Maull 发表于 2009-9-28 15:04

有交易操作后数据是同步的,第二天开盘到第二天第一次交易操作前持仓数据不同步。

Axel_Maull 发表于 2009-9-28 15:06

“在柜台日初之后”是什么时候? 能否系统设定开盘前自动同步一次持仓数据,毕竟无人值守才是系统交易的终极目标阿

幺林 发表于 2009-9-28 15:43

回复 9# nopain 的帖子

不重新登录会有什么影响? 或者是, 重新登录时会做哪些工作?

nopain 发表于 2009-9-28 16:59

回复 11# Axel_Maull 的帖子

这个东西说不清楚,因为期货公司是人工操作,正常情况下8:30以后应该是正常了。

等新版本我们会做一个定时初始化的功能,就可以实现24小时连续作战了

Axel_Maull 发表于 2009-9-28 17:40

强烈期待TB完善全自动无人值守系统。。。暂时自己克服,希望不要太久

Axel_Maull 发表于 2009-10-12 21:15

3.2.5升级有没有包括Nopain版提到的定时初始化功能?

efrog 发表于 2009-10-20 17:34

[quote]原帖由 [i]nopain[/i] 于 2009-9-24 08:55 发表 [url=http://www.tradeblazer.net/forum/redirect.php?goto=findpost&pid=36210&ptid=5601][img]http://www.tradeblazer.net/forum/images/common/back.gif[/img][/url]
1、您是写日志文件,发现是A_Totalposition=0吗?
2、对于您的公式写法,我建议只在第一次初始化时使用A_Totalposition,然后使用全局变量记录。 [/quote]
为什么“建议第一次初始化时使用A_Totalposition,然后使用全局变量记录”
实际上,发出的交易指令不一定能成交,因此,实际的持仓量还是要用A_Totalposition来查询的。
我是用一个全局变量gv0来记录持仓量,发出指令更新该全局变量;然后再用一个全局变量来计数Tick,每10个Tick用A_Totalposition来更新Gv0。
但是,测试下来A_Totalposition还是有问题。

幺林 发表于 2009-10-24 14:30

回复 9# nopain 的帖子

- 希望澄清:

A. 不重新登录会有什么影响? 或者是, 重新登录时会做哪些工作?
B. 目前版本有没有改进?
C. 如果还没有, 有没有改进计划?

幺林 发表于 2009-10-26 13:07

希望TB的人出来澄清一下。  先谢谢了。

小米 发表于 2009-10-26 14:32

A:不重登录,日初的信息在本地机上得不更新,就会造成数据的混乱,影响自动交易。
B:此版本还没有改进。
C:有此计划

幺林 发表于 2009-10-26 15:05

A:不重登录,日初的信息在本地机上得不更新: 是否指当前权益?

页: [1] 2

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.