以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  序列模式和逐K线模式  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=156857)

--  作者:花哥
--  发布时间:2017/8/15 15:22:38
--  序列模式和逐K线模式
VARIABLE:单位金额:=10000;
VARIABLE:中间值1:=floor(单位金额/(C*100));
a:中间值1,linethick0;
a1:c,linethick0;


上述代码,在海康威视的日线图上,应用于图

在序列模式下得到的显示结果是A:3      A1:30.54
在逐K线模式下得到的显示结果是A:8      A1:30.54

请解释原因

--  作者:FireScript
--  发布时间:2017/8/15 15:54:14
--  

因为这个全局变量的初始化问题。

1.走完K线:这个中间值1用的C是你图表上K线图上第一个K。

2.序列:用的是最后一个K的C。

 

这个你结合下:http://www.weistock.com/runmode.htm 模式说明理解下。


--  作者:花哥
--  发布时间:2017/8/15 16:51:18
--  
VARIABLE:单位金额:=10000;



VARIABLE:中间值1:=floor(单位金额/(C*100));
昨收:=ref(c,1);

a:中间值1,linethick0;
a1:c,linethick0;
a2:昨收,linethick0;

增加了  昨收:=ref(c,1);     a2:昨收,linethick0;
这个语句里的C,在序列和逐K线都一样,他怎么没有取图表里的第一个C?

--  作者:FireScript
--  发布时间:2017/8/15 16:59:14
--  
以下是引用花哥在2017/8/15 16:51:18的发言:
VARIABLE:单位金额:=10000;



VARIABLE:中间值1:=floor(单位金额/(C*100));
昨收:=ref(c,1);

a:中间值1,linethick0;
a1:c,linethick0;
a2:昨收,linethick0;

增加了  昨收:=ref(c,1);     a2:昨收,linethick0;
这个语句里的C,在序列和逐K线都一样,他怎么没有取图表里的第一个C?

1.问题只出在variable全局变量的初始化上:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm 这里有这个全局变量说明。你看下它是在什么时候初始化的,这个全局变量初始化一次之后不会再初始化。所以就要注意2种模式下全局变量到底在什么位置初始化的。

2.ref这类函数对数据的引用和模式没有关联,该怎样就怎样。


--  作者:gxx978
--  发布时间:2017/8/15 17:00:41
--  

1、在序列模式下,variable申明的序列变量会被强制转化为常数,与普通常数变量没有差别。逐K模式下在第一根K线上就被初始化了,所以用第一根K的收盘价计算出的中间值1.

2、a1:c,获取到的就是当根K线的收盘价啊。