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_SendOrderEx
orderIds | ArrayRef<Integer> | 报单索引 |
报单索引 最新的是0 前面是1
A_OrderContractNo
A_OrderEntryOrExit
。。。
这一系列才有用
你都打印了 是0
还没反应过来?
Global Array<Integer> Oid;//开仓单号
上面的变量定义有无问题?与帮助里不一样
你把我说的过一遍
有案例或教学视频吗?
或者请老师给一段代码,我就是想判断最近一张订单的状态
卧槽
大兄弟
都说到这样了
还要啥桑塔纳