执行模式

来自tradeStar帮助系统
2013年5月21日 (二) 11:10Coogle (讨论 | 贡献)的版本

跳转到: 导航, 搜索

星语言中,公式有两种执行模式,一种叫逐行模式,一种叫逐根模式。关于这两种模式的运行机制,请看: 逐行和逐根

那么,语言里,是怎样选择运行模式的呢?是通过编译开关来控制的:

#Run_By_Bar
#Run_By_Series

其中,#Run_By_Bar表示适用逐根模式,#Run_By_Series表示适用逐行模式。 这两个开关也可以不写,在不同的指标类型中,分别有不同的默认值。 在“技术指标”、“条件选股”、“交易系统”、“五彩K线”这四种指标中,默认是逐行模式。 在“智能策略”、“公共函数”、“优化评价”这三种指标中,默认是逐根模式(而且只能是逐根,指定逐行开关无效)。

#Run_Every_Tick
#Run_Every_Bar

OnStart => 每次行情到来都会触发(除非是 #Run_Every_Bar + #Run_By_Bar 逐根且每根只运行一次的模式)。不在函数体里面的代码都等于 OnStart 函数,除非显式声明了 OnStart 函数。

OnInit => 每次重算时调用1次,后续行情到来不触发。重算在历史数据发生变化时触发,此时公式将清除所有状态重新运行。

OnExit => 每次 OnStart 执行后都会接着执行 OnExit, 与 OnStart 的区别是当OnStart被终止时,OnExit 仍然会保证运行,这样可以确保Dll能正确释放资源,解锁等。


若品种,周期发生变化时,公式将会触发重算, DLL需要自己判断变换发生。可以把BarPos传给DLL, 如果BarPos变成1了,那就是发生重算了;

个人工具
名字空间

变换
操作
导航
工具箱