客服001 发表于 2012-3-28 16:38:43

逐行逐根计算是什么意思

逐行计算:不对计算结果做保存,当有新数据来时,每次需要计算所有数据。
逐根计算:对每次的计算结果都做保存,当有新数据来时,只需计算最新数据。
优缺点:
1)        逐行计算在第一次计算中具有优势。因为它只需要计算一次;而逐根计算在第一次计算时,需要对所有K线的数据进行计算、保存,所以第一次使用速度较逐行慢。特别是体现在,没有接收新数据的状态下,逐行计算的方式要比逐根计算的方式感觉快。
2)        在实时行情下,由于逐行需要,每次计算所有数据。而逐根只需要计算最新的数据,所以逐根计算的速度,要大大快过逐行计算,特别是当历史数据较多、行情刷新速度较快时,逐根计算的优势更为明显。
3)        逐行运算是对序列的计算,可以比较灵活地输出和修改指标形态;逐根运算是单值的运算,适合分支和函数调用的交易逻辑。
适用范围:
1)        一般技术指标比较适用逐行模式。
2)        交易策略指标比较适合逐根模式。
3)        在策略评测中使用逐根模式计算,能减少评测所需的时间,提高评测的仿真度。

oceanocean 发表于 2012-8-23 19:35:47

那指标默认是逐行?

仁心慧能 发表于 2012-9-18 12:33:56

本帖最后由 仁心慧能 于 2012-9-18 12:44 编辑

逐行执行:对整个K线序列逐行地执行语句
逐根执行:对K线序列逐根地执行整个公式

假设当前有100根K线,公式有2行计算指标值1和指标值2的语句
MA1:MA(C,5);
MA2:MA(C,10);

逐行执行:
  1.执行第1行语句,计算这100根K线的MA1
  2.执行第2行语句,计算这100根K线的MA2

逐根执行:
  1.对第1根K线,执行整个公式,计算第1根K线的MA1和MA2
  2.对第2根K线,执行整个公式,计算第2根K线的MA1和MA2
...
  100.对第100根K线,执行整个公式,计算第100根K线的MA1和MA2

继续,当有新行情生成第101根K线时

逐行执行:
  3.执行第1行语句,计算全部101根K线的MA1
  4.执行第2行语句,计算全部101根K线的MA2
逐根执行:
  101.对第101根K线,执行整个公式,计算第101根K线的MA1和MA2

智能交易公式默认为逐根执行,为了能够对交易进行各种控制
技术指标类公式默认为逐行执行,为了兼容国内的主流公式
逐根执行是更灵活的执行方式,它能实现逐行执行做不到的功能

对技术指标类公式,可以用编译开关#RunMode设置执行模式
#RunMode RUN_BY_BAR  //逐根执行
#RunMode RUN_BY_SERIES  //逐行执行



312gd 发表于 2012-10-16 13:07:42

跑交易策略  必须 是 逐根执行。

蓝蓝天空 发表于 2014-1-8 21:47:26

仁心慧能 发表于 2012-9-18 12:33 static/image/common/back.gif
逐行执行:对整个K线序列逐行地执行语句
逐根执行:对K线序列逐根地执行整个公式


提一个问题,依然在第100根k时,还没有出现第101k时候,价格变动,出现新的tick,那么,逐行是不是 1.执行第1行语句,计算这100根K线的新MA1数值,   2.执行第2行语句,计算这100根K线的新MA2数值
页: [1]
查看完整版本: 逐行逐根计算是什么意思