onorder无法触发手工单问题

1.任务:给每个手工单附加一个止损单

2.思路:(1)onorder识别手工单;(2)做map,提取手工单的订单编号orderID做key,止损价做value;(3)达到止损价发出平仓单(止损单);

3.问题:在云端回放模式下,将策略布置在新建页面上后,使用tbq3的下单功能(交易师)手动下单,onorder未触发。卡在第一步,手工单并未传进onorder。

4.代码如下:文中的5个print都没有发动。

OnOrder(OrderRef ord)
    {
        print("ord.orderid="+Text(ord.orderid));
        
        if(ord.Status == Enum_Filled)
        {
            print("ord.Status="+Text(ord.status));//Enum_Declare、Enum_Declared、Enum_FillPart、Enum_Filled、Enum_Canceling、Enum_Canceled、Enum_Deleted
            print("完全成交");
            if(ord.createId == Enum_Trade_Source_Manual and ord.combOffset == Enum_Entry)
            {
                print("手工单");
                print("ord.orderid="+Text(ord.orderid));
            };
        }
        
    }


用buy函数无法触发onorder,onfill等类似事件么?
关于OnOrder域机制的问题
成交后挂止盈单,OnOrder接收order .status==Enum_deleted
onorder域里无法print
onorder域(二)
集合竞价期间,我想手工发出委托单,
再问onorder的问题
撤单成功后,OnOrder不更新问题反馈
关于OnOrder域和OnPosition的问题
请教!! 关于 OnOrder 和 OnTimer

楼下说的是对的,你得订阅手动的操作源

谢谢刘总,我去试试。

老师,请教下订阅是什么意思。

订阅某个源头以后,这个源头如果发生了动作就会把相关信息推送给你。

这个订阅就是字面意思,应该没有什么难以理解的吧,你订阅了报纸,那么报纸每个月出刊的时候就会邮寄给你。

同样的道理,你订阅了某个操作源,那么这个操作源如果发生报单操作,就会推送驱动你的onorder域

https://space.bilibili.com/31053817/lists/2531821?type=series

这个是a函数开发实例你看看有没有用吧

明白了。谢谢老师。

又记错了 这个才对

订阅所有操作员

基操

我总会记成 A_SubscribeTradeByCreateSource

这个函数参数是string

看不出来具体要填什么 怎么用

我猜大概和这个函数连在一起用

A_SubscribeTradeByCreateId

谢谢老师。请教下,一直不懂“订阅”是什么意思。

https://video.tbquant.net/video?id=20251118141320796412


谢谢老师,我去学习下视频。

是不是要订阅一下手工单的委托哦

谢谢老师。这个订阅是啥意思,意思是用这个函数,完成订阅,程序才会取对应的信息对吗。