TBQ跨周期调用实时进出场的例子

最近在客服群看到还有很多用户在讨论如何写跨周期的问题,尤其是有一些执迷于非要从大周期去产生信号,到小周期去执行的用户,我实在忍不住要说一句,这是绝对错误的,至少基于TB的机制来写策略,这样写是必定会产生信号闪烁的!! 所以,正确的写法一定是从小周期来调用大周期。这样写完全能够实现大家想从大周期调用要实现的策略目标,而且不会产生信号闪烁。个中原理,有时间再发帖细述。 今天先贴个TBQ一出来,我就写过的老例子,供TBQ爱好者参考。 // 演示 -- 跨周期加数组实现盘中进出场 // 以单均线系统为例,Data0为小周期(可Tick),Data1为实际策略运行周期 // 通过数组从Data1读取大周期历史数据,从data0获取实时数据 //在Data0(小周期)上通过数组函数计算大周期实时指标,判断交易条件 // 实现盘中进场和出场等 // // 总结: //通过TBQuant提供的跨周期调用,加上数组,实现对大周期实时数据的调用 Params Numeric MaLen(5,5,50,5);// 均线周期 Numeric amount(100);// 使用资金N万 Numeric myTP(200);// 止盈跳数 Numeric mySL(50);// 止损跳数 Numeric Offset(10);// 均线突破偏移跳数,避免价格频繁穿越均线产生交易 Vars Numeric Lots;// 交易手数 Series<Numeric> Ma(1,2);// 均线 Array<Numeric> D1Close;// D1收盘价 Series<Numeric> TradeDirection(0); // 交易方向 Numeric MinPoint; Numeric i; Events onBar(ArrayRef<Integer> indexs) { MinPoint = MinMove * PriceScale; Lots = Max(1,IntPart(amount*10000/(Open*ContractUnit*BigPointValue))); // 计算大周期均线 Range[1:1] { Ma = AverageFC(Close,MaLen); PlotNumeric("Ma",Ma); } // 通过数组实现在Data0图层计算Data1图层的实时指标 // 历史数据直接从Data1获取 for i = 1 to MaLen-1 { D1Close[i] = Data1.Close[i]; } // 实时数据从Data0获取 D1Close[0] = Close; // 数据集中到数组后,通过数组函数计算Data1均线 Ma = AverageArray(D1Close); PlotNumeric("Ma",Ma); // 交易进场 If(MarketPosition <> 1 And Close[1] > Ma[1] + Offset*MinPoint And TradeDirection <> 1) { Buy(Lots,Open); TradeDirection = 1; } If(MarketPosition <> -1 And Close[1] < Ma[1] - Offset*MinPoint And TradeDirection <> -1) { SellShort(Lots,Open); TradeDirection = -1; } // 多头出场 If(MarketPosition == 1 And BarsSinceEntry > 0 And Low <= EntryPrice - mySL * MinPoint) { //止损 Sell(0,Min(Open,EntryPrice - mySL * MinPoint)); } Else If(MarketPosition == 1 And BarsSinceEntry > 0 And High >= EntryPrice + myTP * MinPoint) { // 止盈 Sell(0,Max(Open,EntryPrice + myTP * MinPoint)); } // 空头出场 If(MarketPosition == -1 And BarsSinceEntry > 0 And High >= EntryPrice + mySL * MinPoint) { //止损 BuyToCover(0,Max(Open,EntryPrice + mySL * MinPoint)); } Else If(MarketPosition == -1 And BarsSinceEntry > 0 And Low <= EntryPrice - myTP * MinPoint) { // 止盈 BuyToCover(0,Min(Open,EntryPrice - myTP * MinPoint)); } } 请大家多多关注TBQuant社区,也欢迎大家评论。

请问这个变量定义后面的括号里的数字是什么意思? Series<Numeric> Ma(1,2);// 均线