TBquant 公式如何 转换到 TB旗舰版? 只有序列变量和参数或数
本帖最后由 yjlh20 于 2020-10-5 10:46 编辑Params
Numeric bollingerLengths(50); // 布林通道参数
Numeric Offset(1.25); // 布林通道参数
Numeric rocCalcLength(30); // 过滤器参数
Numeric liqLength(50); // 自适应出场均线参数
Numeric Lots(0); // 交易手数
Vars
Series<Numeric> MidLine(0); // 布林通道中轨
Numeric Band(0);
Series<Numeric> upBand(0); // 布林通道上轨
Series<Numeric> rocCalc(0); // 过滤器
Series<Numeric> liqDays(50); // 自适应出场均线的参数
Series<Numeric> liqPoint(0); // 自适应的出场均线
Events
OnBar(ArrayRef<Integer> indexs)
{
// 布林通道中轨
MidLine = AverageFC(Close,bollingerLengths);
Band = StandardDev(Close,bollingerLengths,2);
// 布林通道上轨
upBand = MidLine + Offset*Band;
// 画线
PlotNumeric("MidLine",MidLine);
PlotNumeric("upBand",upBand);
// 进场过滤器
rocCalc = Close - Close;
// 满足过滤条件,并且价格突破布林通道上轨,开多单
If(MarketPosition != 1 And rocCalc > 0 And High >= upBand) Buy(Lots,Max(Open,upBand));
// 自适应出场均线
If(MarketPosition == 0)
{
liqDays = liqLength;
}Else
{
liqDays = liqDays - 1;
liqDays = Max(liqDays,10);
}
liqPoint = Average(Close,liqDays);
// 画线
PlotNumeric("liqPoint",liqPoint);
// 持有多单时,自适应出场均线低于布林通道上轨,并且价格下破自适应出场均线,平多单
If(MarketPosition == 1 And BarsSinceEntry >= 1 And liqPoint < upBand And Low <= liqPoint) Sell(0,Min(Open,liqPoint));
}
例如 这个布林强盗多的TBquant 公式转换到 TB旗舰版 以后红色部分就会提示
只有序列变量和参数或数组才能 使用回溯值 错误号 L0008
谢谢
没用过TBQuant。你把变量声明Series<Numeric>改写成NumericSeries试试?Begin下第一行屏蔽//OnBar(ArrayRef<Integer> indexs)
页:
[1]