您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

TB实盘全自动无人值守日内交易中出现的重大问题! [开拓者 TB]

  • 咨询内容: 昨天,我的实盘全自动日内交易系统发出多头买入豆粕1205和约14手(我使用的是BUY函数),发单后成交11手,由于我的交易助手设定是“5秒不成交立即以最新价重新发单”,系统随后撤销未成交委托,再次发单竟然是买入7手而不是3手!收市前系统自动平掉所有理论仓位14手,但我还留有4手的隔夜单!直到今天我在盘中快收盘时才发现我竟然还持有隔夜仓位!吓了我一大跳!还好豆粕今日价格波动不大,隔夜仓很轻,我仅是小额损失。但如果以后再出现这样的问题,比如说重仓在铜、黄金这些隔夜价格变动巨大的的品种上,我将被迫承受极大的风险,存在账户瞬间被秒杀的可能,这实在是太可怕了!我分析原因如下:系统可能在首次开仓动作5秒内首先成交了7手,5秒后系统判断还有7手买单未成交,于是准备发出撤消未成交委托的指令,准备同时发出7手买单,由于存在网络延时等因素的影响,就在这发撤单委托+重发多单委托到达服务器的一瞬间,原有委托再次成交4手;而在平仓时,系统按照理论持有仓位进行平仓,因而导致系统出现实际仓位和理论仓位不一致的情况。
         请问管理员老师,我应该如何避免这种情况,一旦出现这种情况,有何措施可以自动实现理论仓位和实际仓位的同步!另外我想为防万一,我想让策略实现在14:59时判断账户实际持仓情况,如有持仓,则自动平掉所有仓位。这恐怕得用上A函数和Q函数,我不太熟,务必请管理员老师和各位TB高手帮我!!!

     

  • TB技术人员: 我是新手不知道写的对不对:
    If(Date==CurrentDate && CurrentTime>=0.1457)
        {
            If(A_TotalPosition>0)        A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice);
            If(A_TotalPosition<0)        A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice);
        }

     

  • TB客服: 楼主就是拿50万实盘的是吧?
    想请教你一下,在实盘前进行模拟了没有?历史回溯和实盘上程序有什么要注意的地方?

     

  • 网友回复: 本帖最后由 种瓜得瓜 于 2011-12-30 12:33 编辑

    我是新手不知道写的对不对:
    If(Date==CurrentDate && CurrentTime>=0.1457)
        {
            If(A_TotalPosition>0)        A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice);
            If(A_TotalPosition<0)        A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice);
        }


       这样写可能会导致重复发单吧?

     

  • 网友回复:
    楼主就是拿50万实盘的是吧?
    想请教你一下,在实盘前进行模拟了没有?历史回溯和实盘上程序有什么要注意的 ...
    hyqspuy01 发表于 2011-12-29 22:08



        实盘前模拟了一段时间。实盘时要注意涨跌停板、滑点影响、保证金是否足够以及外部问题(网络、停电、主观干预倾向、系统回撤时是否仍有信心),我现在正在做的就是轻仓测试,希望尽可能早地发现这些问题,以免将来铸成大祸。

 

如果以上指标公式不适用于您常用的行情软件

或者您想改编成选股公式,以便快速选出某种形态个股的话,

可以联系我们相关技术人员 QQ: 262069696  点击在线交流进行 有偿 改编!

 


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容