以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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。

如果你只关注效率那么两者一样,但是内在构造是不同的,具体你还是要根据函数使用来决定