全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
循环BUG,求解答
xnzc01 分享到
2023-03-01 15:53


复权的888指数合约和具体的合约,第二三根K线,在公式里的循环少算了一步,如图:

data-href=data-href=

for循环的bug还是指数复权的bug?

公式如下:

Params

Vars

Bool IsRollover(True);//是否后复权

Bool IsRolloverRealPrice(True);//是否映射真实价格

Bool IsAutoSwapPosition(True);//是否自动换仓

Bool IgnoreSwapSiganlCalc(True); //是否忽略换仓信号计算

//----------------------------

Numeric Minpoint;

Numeric count;

Global Array<Numeric> everypArr;

Global Array<Numeric> countArr;

Events

OnInit()

{

Range[0:DataCount-1]

{

If(IsRollover)

{

AddDataFlag(Enum_Data_RolloverBackWard());//设置后复权

}

If(IsRolloverRealPrice)

{

AddDataFlag(Enum_Data_RolloverRealPrice());//是否映射真实价格

}

If(IsAutoSwapPosition)

{

AddDataFlag(Enum_Data_AutoSwapPosition());//设置自动换仓

}

If(IgnoreSwapSiganlCalc)

{

AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());//设置忽略换仓信号计算

}

}

}


OnBar(ArrayRef<Integer> indexs)

{

Minpoint=MinMove*PriceScale*Rollover;

count=(High-Low)/Minpoint;


//更新数组

If(CurrentBar<3)

{

Numeric i;

Commentary(count=+Text(count));

For i= 0 To count

{

Numeric arrlength;

arrlength=GetArraySize(everypArr);

Commentary(i=+Text(i));

Commentary(arrlength=+Text(arrlength));

everypArr[arrlength]=Low+ i*Minpoint;//复权和不复权少算一步???????

}

}

}


kyover

minmove的计算重复rollover了 复权以后合约属性应该也会相应进行复权的。 你可以输出一下两种状态下minmove取值

2023-03-01 16:00
xnzc01
@kyover

两种minmove的取值是一致的呀。这跟minmove有什么关系,不是根据count的次数来循环的吗。两个count的取值都是一样的,但是循环的次数不一样

2023-03-01 16:15
xnzc01

2023-03-06 15:26
wangkaiming

里面有数值需要取整data-href=

2023-03-07 15:25
xnzc01
@wangkaiming

谢谢!

2023-03-07 15:51
您未登录,请先 登录注册 后发表评论
顶部