这样子固定下来就不会闪烁,请问这是怎么了???
简化代码:
//------------------------------------------------------------------------
// 简称: DualMA
// 名称: 双均线交易系统
// 类别: 公式应用
// 类型: 内建应用
//------------------------------------------------------------------------
Params
Numeric FastLength(5);// 短期指数平均线参数
Numeric SlowLength(20);// 长期指数平均线参数
Numeric length(20);
Vars
Array<Numeric> AvgValue1;
Array<Numeric> AvgValue2;
Array<Numeric> arr;
Array<Integer> id;
Array<String> symb;
Numeric i;
Events
OnBar(ArrayRef<Integer> indexs)
{
//---------计算各个品种的斜率并存入数组----------
For i=0 To DataSourceSize-1
{
arr[i] = data[i].close[1]-data[i].close[10]; //将每一个品种,存入一个数组当中。
id[i]= i; //将品种数据源号,存入数组。这两个数组,用于冒泡排序。
symb[i] = Data[i].SymbolName;
}
Na1Sort2(arr, id, 0, DataSourceSize-1, False);//一维数组排序带下标
Numeric i;
Range[i = 0:datasourcesize-1]
{
ArrayInsert(data[i].AvgValue1,0,AverageFC(data[i].Close,FastLength));
ArrayInsert(data[i].AvgValue2,0,AverageFC(data[i].Close,SlowLength));
}
For i=0 to DataSourceSize-1
{
Commentary("品种:"+data[i].SymbolName+",id[0]:"+Text(id[0]));
Commentary("MA1:"+text(data[i].AvgValue1[0]));
Commentary("MA2:"+text(data[i].AvgValue2[0]));
If(i==id[0])
{
data[i].buy(0,data[i].o);
}
}
}
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 版权所有 TradeBlazer Software 2003-2025
// 更改声明 TradeBlazer Software保留对TradeBlazer平
// 台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
信号闪烁的原因就是判断条件会随着盘中数据变动发生变化
所以id[1]如果会发生变化,那就可能产生信号闪烁
所以疑问是什么?