以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  [讨论]把SMA提到IF前面后,出现问题?  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=156820)

--  作者:red7
--  发布时间:2017/8/14 17:39:01
--  [讨论]把SMA提到IF前面后,出现问题?
 
以下是截取1小段代码:
IF mod(当前K线序号,3)=1 THEN BEGIN

       A:=CALLSTOCK(\'\',vtCLOSE,3,0);     
       
       15分钟长RSI:=SMA(MAX(C-A,0),N1,1)/SMA(ABS(C-A),N1,1)*100;
 
     
   END


按照提示,需要把SMA提到IF前面,但是我的SMA里面的A值,是通过CALLSTOCK取得,难道把CALLSTOCK也提到IF前?还是怎解决?

--  作者:FireScript
--  发布时间:2017/8/15 8:38:37
--  
常规做法是把SMA以及CALLSTOCK单独抽离出来,放在条件语句外面用变量存储下,然后在IF里面调用。意思就是无论你是否用的到,反正先给算出来放边上备用。
--  作者:客人
--  发布时间:2017/8/15 9:52:40
--  

 


--  作者:red7
--  发布时间:2017/8/15 9:53:10
--  
CALLSTOCK是在满足IF条件才能进行,要是把他放到IF前面,我要怎增加语句,来实现CALLSTOCK调用数据?
--  作者:gxx978
--  发布时间:2017/8/15 10:02:05
--  

你直接引用15分钟周期上的RSI指标就可以了,不需要再算一遍啊。

IF mod(当前K线序号,3)=1 THEN
  15分钟RSI:=stkindi(\'\',\'RSI.RSI1\',0,3,0);

[此贴子已经被作者于2017/8/15 10:02:19编辑过]