A_SendOrderEx
A_SendOrderEx发出订单,A_SendOrderEx(Enum_Sell,Enum_Entry,Lots,Q_Last-MinDiff*SellJs,Sid )请问我如何通过Sid这个数组获取上述订单编号(我知道Ord.ORDERID可以),感谢老师!!!
A_SendOrderEx发出订单,A_SendOrderEx(Enum_Sell,Enum_Entry,Lots,Q_Last-MinDiff*SellJs,Sid )请问我如何通过Sid这个数组获取上述订单编号(我知道Ord.ORDERID可以),感谢老师!!!
我反正没有复现出来你说的问题在onsignal域里a函数报单,orderid数组里的内容,和onorder里订单驱动输出的结构体属性是一致的。
Ord.ORDERID是真实的订单号 是一个很大的数字发单函数那个id是订单序号 最新的是0想得到订单号 用专门的函数比如序号0 对应 订单号123456这次明白了吧
针对主贴内容回答对应参数就是你当前报单的单号你填写无误的话,就是Sid[0]
你这个问题搞了几天了?sid是获得报单索引号如何取得报单报单编号有函数根据索引号取报单的所有信息帮助很详细的
回复:Params //此处添加参数 Numeric P1(30);//止盈点数 Numeric P2(10);//止损点数 Vars //此处添加变量 Global Array<Integer> Oid;//开仓单号 Global Array<Integer> Pid;//止盈单号 Global Array<Integer> Lid;//止损单号 Global Numeric Con1;//Position是系统关键字 //Global Numeric A; Global Numeric MinDiff;////最小变动价/一跳价 Global Numeric PPP;//基准价 Events //此处实现事件函数 OnInit() { Con1=0; //A=0; PPP=0; } OnReady() { MinDiff=PriceScale*MinMove;//最小变动价/一跳价 } OnOrder(OrderRef Ord)//委托更新事件 { IF (Ord.status==Enum_FILLED AND Ord.ORDERID==Oid[0])//开仓单(多)已成交 { A_SendOrderEx(Enum_Sell,Enum_Exit,Ord.volume,Ord.price+MinDiff*P1,Pid);//发出止盈单 PPP=Ord.price;//保存成交价,后面计算止损价时要用 } ELSE IF (Ord.status==Enum_Canceled AND Ord.ORDERID==Pid[0]) { A_SendOrderEx(Enum_Sell,Enum_Exit,Ord.volume,Ord.price-MinDiff*P2,Lid);//发出止损单 } ELSE IF (Ord.status==Enum_FILLED AND Ord.ORDERID==Pid[0] )//止盈单成交 { //AddTradeFlag(Enum_Strategy_Finished); Con1=0;//与上一行命令同功能:结束程序或重新开始程序 } ELSE IF (Ord.status==Enum_FILLED AND Ord.ORDERID==Lid[0] )//止损单成交 { //AddTradeFlag(Enum_Strategy_Finished); Con1=0;//与上一行命令同功能:结束程序或重新开始程序 } } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs)//BAR更新事件 { IF (BarStatus==2) { IF (Con1==0) { BOOL RET=A_SendOrderEx(Enum_Buy,Enum_Entry,1,Q_LowerLimit,Oid ); IF (RET=TRUE) { Con1=1; } Print("Oid="+TEXT(Oid[0])); } ELSE IF (Con1==1 AND C<PPP-MinDiff*P2) { A_DeleteOrder(Pid[0]);//撤止盈单 //Con1=0; } //A=A+1; } } 都是按你们的教学视频学的啊,我就想知道下面这一行命令是什么意思?IF (Ord.status==Enum_FILLED AND Ord.ORDERID==Oid[0])//开仓单(多)已成交我分别打印Ord.ORDERID和Oid[0],前者显示订单编号,后者显示“0”,为什么呢?差别是:我是加载在策略里进行的,教学视频是加载在K线上运行的。难道是这个原因?
回复:理解老师们都很忙,因为提问的学生太多。但是,我的上一个帖子你们都做了测试了,不妨再花点时间帮我彻底解决这个问题。我们都有一个共同的目的:建设好TB系统。你们研发维护并教学,我们使用试错并反馈。高效的沟通当然必不可少但是,因为对TB系统的理解存在较大差异,沟通当然是不太顺畅的,建议开启付费视频指导模式(就像家电上门维修一样)。或者,直接在社区直接开通语音/视频传送模式,像QQ或微信一样。无极易就有这样的QQ群,感觉沟通效率应该更高。
回复:你说:帮助很详细的在哪里?你可能觉得我这一问很弱智,但是我就像农村小孩第一次到了大上海,眼前无路😭
回复:一个是订单序号一个是订单号两回事反正你这个写法错的
回复:A_SendOrderExorderIdsArrayRef<Integer>报单索引报单索引 最新的是0 前面是1A_OrderContractNoA_OrderEntryOrExit。。。这一系列才有用
回复:你都打印了 是0还没反应过来?
回复:Global Array<Integer> Oid;//开仓单号 上面的变量定义有无问题?与帮助里不一样
回复:你把我说的过一遍
回复:有案例或教学视频吗?或者请老师给一段代码,我就是想判断最近一张订单的状态
回复:卧槽大兄弟都说到这样了还要啥桑塔纳