以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  序列模式疑问  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=159633)

--  作者:grayelf
--  发布时间:2017/11/17 14:17:16
--  序列模式疑问
 写个程序判断close和均线的关系,如下代码在逐k模式正常。
在序列模式的时候maGL始终是-1。。。。不明白

MA1:ma(ref(close,1),5);
if barpos<malen+1 then maGL:=0;
else if close<ma1 then maGL:=-1;
else if close>ma1 then maGL:=1;
--  作者:FireScript
--  发布时间:2017/11/17 15:03:35
--  

序列模式是每次来一个分笔,只在最新K上计算一次。 逐K会从第一个K计算到最新K。

 

历史的序列模式不会算,只看最新K结果。


--  作者:grayelf
--  发布时间:2017/11/17 16:19:51
--  
还是有点懵懂。。。
比如ma1:ma(close,10),序列模式,历史k线也能显示均线呀。。。

--  作者:wenarm
--  发布时间:2017/11/20 8:24:31
--  

是可以显示,那是因为一开始就计算好存在那了。

图表程序化只能是逐k模式。其它的后台,技术指标。两个都行。


--  作者:yukizzc
--  发布时间:2017/11/20 8:58:37
--  

http://www.weistock.com/runmode.htm

序列模式计算时,控制语句条件允许使用序列变量,由于序列模式只执行一次控制语句解析,对于序列变量,仅取最后一个数据做为条件判断。


--  作者:FireScript
--  发布时间:2017/11/20 10:39:15
--  

序列模式只采用最新一个K的解析结果。历史上的所以K均按照这个解析结果来计算一次。序列模式是解析一次,不是说计算只计算一次。依然是每个K都计算。但是解析只有一次。

 

 

这样说不直接。 我给个例子你按照我说的去操作。

代码:

if O<c then qq:=o-c;
if o>c  then qq:=c-o;

vl:qq;

 

 

1.当前最新K是阳线。

那么历史上所有qq的值的计算都采用 o-c;

2.当前最新K是阴线

qq的计算切换成c-o;

3.如果当前K的阴阳线发生变化。相应的计算也会发生改变。

 

4.如果某一瞬间 c=o,那么图表上qq值就消失了。因为代码里没有对c=o的处理。