OnInit()
{
layers[0]=SubscribeBar("pp888.DCE", "30m", 20211101.0930);
layers[1]=SubscribeBar("MA888.CZCE", "30m", 20211101.0930);
//与数据源有关
Range[0:DataCount-1]
{
SetOrderMap2MainSymbol(); //设置委托映射到主力
我的这个由连续映射到主力的策略,能够成功交易,但是下面的不行,
OnInit()
{
layers[0]=SubscribeBar("pp2205.DCE", "30m", 20211101.0930);
layers[1]=SubscribeBar("MA2208.CZCE", "30m", 20211101.0930);
//与数据源有关
Range[0:DataCount-1]
{
//SetOrderMap2MainSymbol(); //设置委托映射到主力
改成具体合约的时候,屏蔽委托映射代码,可是结果只发送第一个pp2205的交易单子,一直没见第二个pp2208的,请问老师,问题出在哪呢?
还有,我发现本来data0和data1应该是只发送1手的,但是最总却成交了2手data0图层商品的单子,难道默认都由data0来发出了,搞不懂
@alang2005,那怎么样才能实现data0和data1都发送单子呢?
我也不知道,我是新手
我注释掉就是不想映射,因为我之前订阅的是具体合约,可是,信号出现之后,只发送data0的单子,data1的单子一直不见发出
我后面紧接着是开仓的代码
//开仓1
If(k1==0 and jiacha<bz-db1)
{data0.buy(lots1,data0.open);
data1.SellShort(lots1,data1.open);Commentary("开仓1");lowestjc=bz-db1;
lotsj=lots1;k1=1;Return;
}
如果前面订阅的是指数或者连续,那么后面开仓的代码就能成功按要求发单,可是如果订阅的是具体合约,那后面就只有data0的发单,data1的没见发单,什么原因呢?
你这个开单条件默认是data0发出的吧?那data1就是没信号了
没看懂你这个在写什么 注释掉set以后 所有图层都不会映射交易