以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 对序列模式和对逐k模式的疑惑 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=97454) |
-- 作者:sadrick -- 发布时间:2016/5/16 10:16:24 -- 对序列模式和对逐k模式的疑惑 看了你们的例子,有些疑问 问题1. 算法一: INPUT:N(5,2,500); //参数申明 RUNMODE:1; //运行于序列模式 VARIABLE:I=0,S=0;//变量申明 VAR1:=C; FOR J=1 TO DATACOUNT DO BEGIN S:=S+VAR1[J]; IF J>=N THEN BEGIN IF J>N THEN S:=S-VAR1[J-N]; MA1[J]:S/N; //实现MA(C,N) I:=0; END; END; 算法二: INPUT:N(5,2,500); //参数申明 RUNMODE:0; //工作于 逐K线模式 IF BARPOS <= N THEN //从计算周期开始计算 EXIT; MA1:C; FOR J=1 TO N-1 DO MA1:=MA1+CLOSE[BARPOS-J]; MA1:=MA1/N; 算法一是序列模式 ,我的理解是当没有实时数据时第一次加载公式,那么要循环回圈 datacount 次,当有实时数据时,新的bar每更新 1 tick 就要循环回圈datacount次,才可以算出最新的均线值,是这样理解吗? 对于算法二:这种逐k模式 ,如果实时数据搭配仅刷最后一根k的选项,那么新的bar每更新 1 tick 显然只需要循环回圈n次 ,便可算出最新的均线值,如例子中的5 ,那么对比算法一 ,效率高很多 ,为什么你们在后面的说明去说“在通常情况下,我们推荐用户在序列模式下运行你的公式系统,因为这样会有很高的执行 效率”,,这个怎么理解
|
-- 作者:yukizzc -- 发布时间:2016/5/16 10:19:48 -- 逐k是每根k都会刷新进行 另外如果你是做图表模型的话,没有必要去理会,图表是必须运行在逐k模式下的 序列模式多用于技术指标等不交易的,或者走后台程序化 |
-- 作者:sadrick -- 发布时间:2016/5/16 10:36:47 -- 疑惑 我一楼的问题就是针对指标的效率, 我就想了解清楚这个机制,麻烦技术老师正面解答一下 |
-- 作者:yukizzc -- 发布时间:2016/5/16 10:39:32 -- 序列在盘中只对最新一根k进行计算,逐k是所有加载的k都会计算一遍。 效率肯定是序列高 |
-- 作者:sadrick -- 发布时间:2016/5/16 10:42:21 -- 疑惑 那换句话说 ,序列模式和逐k仅刷最后一根k不是一样的 |
-- 作者:yukizzc -- 发布时间:2016/5/16 10:47:24 -- 执行上都是最后一根k 但是对于很多函数是不同的,比如variable函数说明中说道全局变量必须用在逐k。 如果你只关注效率那么两者一样,但是内在构造是不同的,具体你还是要根据函数使用来决定 |