目前测试了几个品种,都只在5分钟出现问题,其他周期暂时没发现问题,请大佬解惑
纯碱 osc 值正常,氧化铝和橡胶返回 N/A 输入的 raw_osc 都正常,非常奇怪
这是下面是函数代码部分。
Numeric calculate_oscillator()
{
Numeric llv = LowestFC(Low, 20);
Numeric hhv = HighestFC(High, 20);
Numeric numerator = Close - llv;
Numeric denominator = hhv - llv;
Numeric osc_raw = (numerator / denominator) * 100;
Commentary("osc_raw:" + Text(osc_raw));
Commentary("ocs:" + Text(EMA(osc_raw, 4)));
Return EMA(osc_raw, 4);
}
作为一个程序员的基本常识,看到除法一定要写除数为0的异常处理。
如果还没想明白的话,提醒一点,出无效值的合约数据,一定有一字板吧?而且是一字板之后才无效值的对吗?
非常感谢,我往前翻合约涨停前正常,涨停后就出现这个问题
我在python的实现中考虑了除以0的异常(
denominator = hhv - llv + 1e-9 # 防止除零)
直接改 tb 代码当时报了个错顺手就删除了,太大意了
不过我测试python代码一般除以0立马抛出异常中断程序了,所以我刚接触tb中习惯性检查输入值 osc_raw 发现正常所以感到疑惑,所以没有第一时间想明白问题。