RelativeSymbol()是怎么使用的?

该函数没有使用说明方法,请求一个范例,在当前000或者888合约状态下,如何映射主力合约

第一种是外部设置 在策略单元设置里进行映射 第二种是在oninit里 加入代码 SetOrderMap2MainSymbol()表示映射到主力合约 或者SetOrderMap2AppointedSymbol(relativesymbol)也可以达到同样效果 具体函数说明请移步函数列表

回复:OnInit() { SubscribeBar("IF888.CFFEX","5m",20210520); SetOrderMap2MainSymbol(); } 这种写法不正确,无法映射主力合约,应该如何改?

回复:实测是可以设置映射过去的,建议你完整的发一个详细操作说明,包括图文,看看你是不是哪里操作错了。 顺便提一句,这个设置是分图层的,不加前缀就是默认设置第一个图层映射。如果你是多图层,可以用range处理

回复:Params Numeric AfStep( 0.02); Numeric AfLimit( 0.2 ) ; Numeric a(0.006); Numeric initcapital(100); //单位:万 Numeric moneyrate(80); //资金使用比例:单位% Numeric money(100); //固定市值开仓:单位万 Vars Series<Numeric> lots(0); //下单手数 Events OnInit() { SubscribeBar("rb888.SHFE","10m",20210101); SubscribeBar("rb888.SHFE","10m",20210101); data1.SetOrderMap2MainSymbol(); //SetOrderMap2AppointedSymbol(relativesymbol); } OnBarclose(ArrayRef<Integer> indexs) { Range[0:DataSourceSize() - 1] { lots=IntPart(Portfolio_CurrentEquity*0.8/(data1.Close*contractunit*BigPointValue*0.1)); //计算开仓手数 If(MarketPosition == 0 And Portfolio_CurrentEquity == Portfolio_CurrentCapital ) { If( data0.Close > data0.OpenD(0) ) { data1.buy(lots,data1.Open); } If( data0.Close < data0.OpenD(0) ) { data1.SellShort(lots,data1.Open); } } If(MarketPosition == 1 ) { If(data0.Close < data0.OpenD(0) ) { data1.sell(0,data1.Open); } } If(MarketPosition == -1 ) { If(data0.Close > data0.OpenD(0) ) { data1.BuyToCover(0,data1.Open); } } } } 增加了前缀data1,但仍无法映射到主力合约,第0图层是出信号的,第1图层是用来交易的

回复:你是怎么看出来没映射成功的?就用你的代码打开测了单元设置,data0是没映射,data1是映射了的