以文本方式查看主题

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

--  作者:racky2016
--  发布时间:2018/8/17 17:14:47
--  VALUEWHEN问题

请问VALUEWHEN与IF THEN用法的不同点。下面的公式中,VALUEWHEN是否可以用IF THEN代替?

DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  : EMA(DIFF,9);
MACD1 : 2*(DIFF-DEA), COLORSTICK;
a:VALUEWHEN(time=140000,dea);
b:VALUEWHEN(time=150000,dea);
aa:VALUEWHEN(TODAYBAR=1,a);
bb:VALUEWHEN(TODAYBAR=1,b);


--  作者:FireScript
--  发布时间:2018/8/17 17:29:29
--  
  要看你具体思路是什么样的。

就上面的代码要取到aa,bb对应含义的值,用if..then也是可以的。但是只在TODAYBAR=1才取到指定的值。这点是和VALUEWHEN 不一样的地方。

--  作者:racky2016
--  发布时间:2018/8/20 8:09:28
--  
以下是引用FireScript在2018/8/17 17:29:29的发言:
  要看你具体思路是什么样的。

就上面的代码要取到aa,bb对应含义的值,用if..then也是可以的。但是只在TODAYBAR=1才取到指定的值。这点是和VALUEWHEN 不一样的地方。

"但是只在TODAYBAR=1才取到指定的值。这点是和VALUEWHEN 不一样的地方。"这一句不是很理解是什么意思。


--  作者:wenarm
--  发布时间:2018/8/20 8:30:54
--  
a:VALUEWHEN(time=010100,c);
IF time=010100 THEN AAA:c;

 

你自己用上面的代码看就知道。后者只有在成立时才有结果输出。


--  作者:racky2016
--  发布时间:2018/8/20 9:18:06
--  

哦,明白了,就是说每一根K线上用VALUEWHEN都可以取到值,用IF THEN只有符合条件的K线才能取到值。