A_SendOrderEx(m2505, Enum_Buy, Enum_Exit, 1, Q_AskPrice);
比如指数叠加合约m2505,如果不用data1.Q_AskPrice。能否直接取出m2505的Q_AskPrice。 主要是我还没掌握,随机订阅合约,再随机取消请阅的能力。
如果不用data1.Q_AskPrice,你指定了要取Q_AskPrice,又说不能用Q_AskPrice,令人疑惑
tick数据除了Q函数,还可以从tick数据里获得。
随机订阅合约又是指什么
嗯,是我没有表达清楚。重新组织语言表达。
我想取出指定合约的买卖盘价如Q_AskPrice。运用场景是:换月,平旧合约,开新合约。新旧合约的代码,已经得到。旧合约的平仓价与手数已得到。就差一个新合约的开仓价。
本来,最常用的方法是,取图层data1.Q_AskPrice.
那就需要订阅新旧主力合约,置于data1,data2,
或是更换主力合约后,在data1图层,将新主力合约替换旧主力合约。
但是,按条件,订阅合约和退订合约,我不太会。我只会简单的订阅和取消订阅,不会随条件替换订退。
所以,我想,如果有直接”取出指定合约的买盘卖盘价的函数“那就省事了。刚查了一个,好像是没有。
请老师支个招
刚刚我抽了根烟,撸了会猫。又想到一个办法,不知是否可行。老师也给分析一下吧。
为了能及时订阅到新主力合约,就不能放在OnInit(),因为此域好像,只在重启或刷新公式时才会运行。于是,要么放在OnPosition,OnOrder,要么放在onbar,无论放哪,貌似都得加一个控制次数,只加载订阅一次。
要不在onbar就会一直订阅,电脑都慢了。
用这个方法,能否更改data1图层的新旧主力合约。
或是data1 data2 分别新旧主力合约
我还有一事不明
在OnInit()订阅主力合约
OnInit()
{
SubscribeBar(Data0.MainSymbol, Data0.Frequency, Data0.BeginDateTime, 0, 0);
}
如果 一直连续运行,没有刷新公式。图层上的主力合约,不会到换月时自动更新吧?