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

求助,关于实盘挂单、成交状态问题 [MC]

  • MC用户求助:

    通过关键字来返回信息:

    第一、当条件满足时就发送委托单,决定是否挂单成功是由条件是否满足决定的;

    例如:"if currentbar=3 then buy next bar at 3712 limit;",这个语句是在currentbar=3(即编号为3的bar收盘时)时满足条件,然后发送委托单,也就是在编号为4的bar上始终挂单成功。

    第二、委托单成交信息会反应在图表上,而关键字可以取到图表上的信息变化,对于关键字您需要了解的更多一些;有取到进出场时间、进出场日期、持仓手数和方向、第几笔进场的手数等等信息的关键字。

    第三、关于成交部分还是成交全部,这个还是需要通过关键字来判断;例如,您的委托单是10手,这个10手通过变量已经控制了,而最后是进场了5手(这个通过关键字可以取到),前后对比一下就知道了。

    第四、可卖股数,这个是之前写过一个函数(见下面附件),主要是通过进场日期的判断来实现的。

    第五、程序满足条件就发送委托单,直到条件不再满足或者委托单成交,这个可以通过控制条件来实现。

    见链接:
    http://dl.icetech.com.cn/download/forums/T_Plus_1_Extension.rar

     

  • MC回复讨论一:

    通过关键字来返回信息:

    第一、当条件满足时就发送委托单,决定是否挂单成功是由条件是否满足决定的;

    例如:"if currentbar=3 then buy next bar at 3712 limit;",这个语句是在currentbar=3(即编号为3的bar收盘时)时满足条件,然后发送委托单,也就是在编号为4的bar上始终挂单成功。

    第二、委托单成交信息会反应在图表上,而关键字可以取到图表上的信息变化,对于关键字您需要了解的更多一些;有取到进出场时间、进出场日期、持仓手数和方向、第几笔进场的手数等等信息的关键字。

    第三、关于成交部分还是成交全部,这个还是需要通过关键字来判断;例如,您的委托单是10手,这个10手通过变量已经控制了,而最后是进场了5手(这个通过关键字可以取到),前后对比一下就知道了。

    第四、可卖股数,这个是之前写过一个函数(见下面附件),主要是通过进场日期的判断来实现的。

    第五、程序满足条件就发送委托单,直到条件不再满足或者委托单成交,这个可以通过控制条件来实现。

    见链接:
    http://dl.icetech.com.cn/download/forums/T_Plus_1_Extension.rar

     

  • MC回复讨论二:

    1)官网提供的网格策略是事先划分好的网格线,这种方式比较适合网格上线和下线等距的情况,这样网格线不会随着价格跳动而有变化,同时示例代码中做了buy或者sell的动作后直接改变了控制上下穿(防止震荡误判),没有关注是否成交,尽管有这个问题,由于是等距网格造成的后果不会很严重;

    2)如果上线,下线不等距,就需要在交易成功之后跟新网格划分,然而,如果交易状态未知的情况下(比如挂单出去,但暂时未成交成功的情况,这在一类刚好触线,下个tick又离线的情况中非常常见)而更新了网格线,会导致整个程序的逻辑崩坏;

     

  • MC回复讨论三:

    感谢您的建议,您的意见很敏锐,但是请允许我为自己编写的网格策略作出适当的解释:

    第一、股票网格策略有四种情况下会调整网格:初始化、止损(到达最下方网格线下方)、平仓盈利(到达最上方网格线)、60根bar未交易。

    第二、因为策略属性中设置了“委托由不同的进场语句产生”,所以每个进场语句最多只有一笔进场,这个是MC自身控制的,不需要通过关键字来控制。

    第三、官方上的股票网格策略是等间距的,当然您也可以不等间距,可以自己调整;网格划分只会在上面所述的4种情况下调整。

    第四、是否成交,MC自身可以判断,因为有交易所成交回报,成交之后会在图表上进行标记;另外,策略中在需要的地方使用了某些关键字以确认成交、进场、出场、手数信息。

    第五、有一种情况可能和您担心的情况有些类似:MC在未开启bar内模式下是在每根bar收盘时计算一次,那么假设策略现在在编号为10的bar收盘时计算一次,判断编号为10的bar上没有成交,并且条件不再满足,所以MC会发送撤单的命令,但是由于时间的微小差异,之前的条件单又成交了,来不及取消(这种情况会在条件单中出现,您也可以使用市价单)。现在假设这种情况发生了,但并不会导致您所说的程序的逻辑崩坏,策略在编号为11的bar上成交,但是这种情况只会出现在距离网格中枢下方第一根网格线处,而且网格每次调整是以当根bar的收盘价为网格中枢,那么之前的在编号为11的bar上成交的委托单依然会在新的网格的最近的上下两个网格线中间,后面也不会出现重复发单的情况,因为同一个委托语句只会发送一笔委托单。

     

  • MC回复讨论四:

    感谢您的建议,您的意见很敏锐,但是请允许我为自己编写的网格策略作出适当的解释:

    第一、股票网格策略有四种情况下会调整网格:初始化、止损(到达最下方网格线下方)、平仓盈利(到达最上方网格线)、60根bar未交易。

    第二、因为策略属性中设置了“委托由不同的进场语句产生”,所以每个进场语句最多只有一笔进场,这个是MC自身控制的,不需要通过关键字来控制。

    第三、官方上的股票网格策略是等间距的,当然您也可以不等间距,可以自己调整;网格划分只会在上面所述的4种情况下调整。

    第四、是否成交,MC自身可以判断,因为有交易所成交回报,成交之后会在图表上进行标记;另外,策略中在需要的地方使用了某些关键字以确认成交、进场、出场、手数信息。

    第五、有一种情况可能和您担心的情况有些类似:MC在未开启bar内模式下是在每根bar收盘时计算一次,那么假设策略现在在编号为10的bar收盘时计算一次,判断编号为10的bar上没有成交,并且条件不再满足,所以MC会发送撤单的命令,但是由于时间的微小差异,之前的条件单又成交了,来不及取消(这种情况会在条件单中出现,您也可以使用市价单)。现在假设这种情况发生了,但并不会导致您所说的程序的逻辑崩坏,策略在编号为11的bar上成交,但是这种情况只会出现在距离网格中枢下方第一根网格线处,而且网格每次调整是以当根bar的收盘价为网格中枢,那么之前的在编号为11的bar上成交的委托单依然会在新的网格的最近的上下两个网格线中间,后面也不会出现重复发单的情况,因为同一个委托语句只会发送一笔委托单。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容