又回到基础知识了:
尽管指数移动平均线(EMA)相对简单,代码执行时间在不同版本之间差异不大(EMA 本身没有嵌套循环),但我们依然缺乏一些易于重用且执行速度快的代码。这一版本在这方面有所改进。
另外,使用 OnCalculate() 的替代模式:
int OnCalculate( constint rates_total, // price[] 数组大小 constint prev_calculated, // 上一次调用处理的柱子数量 constint begin, // price[] 数组中有意义数据的起始索引 constdouble& price[] // 计算用的值数组 );
这样会使得执行时间更短更快(通过函数获取选定价格确实需要一些时间 - 虽然不多,但与没有该步骤的版本相比,可以明显感受到),不过为了灵活性,我还是选择了“标准”模式。此外,如果将其改成单一颜色版本,会更快,但那样就失去了乐趣了 :)



评论 0