以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  求某周期段内的最低值  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=139672)

--  作者:c100010231
--  发布时间:2016/9/18 9:36:29
--  求某周期段内的最低值

jinzhe老师,我想求得某个周期段内的最低值,请帮帮忙,非常感谢图片点击可在新窗口打开查看

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看

如上图所示,我想在当下求得:自DIFF小于零以来且其最小值小于-5的这个阶段内(MACD指标图上的绿色圈的阶段)的最小值(主图上的绿色箭头所指的那个值)。


--  作者:jinzhe
--  发布时间:2016/9/18 9:53:05
--  
1.要同时判断macd<0和diff<-5吗?
--  作者:c100010231
--  发布时间:2016/9/18 9:55:22
--  

嗯。判断条件就是:MACD〈0,同时,在MACD〈0的这个区间,DIFF的最低值小于-5,在这样的条件下,所对应的最低价是多少。

谢谢谢谢。


--  作者:jinzhe
--  发布时间:2016/9/18 10:19:40
--  

macd:=stkindi(\'\',\'macd.macd1\',0,datatype);

diff:=stkindi(\'\',\'macd.diff\',0,datatype);

ss:=if(diff<-5,diff,0);

nn:=barslast(cross(0,macd))+1;

 

ll:valuewhen(cross(macd,0),valuewhen(ref((diff=llv(diff,nn+1)),1),l));


--  作者:c100010231
--  发布时间:2016/9/18 10:34:15
--  


图片点击可在新窗口打开查看此主题相关图片如下:未命名111.jpg
图片点击可在新窗口打开查看

谢谢jinzhe老师,可是似乎有些问题,在条件成立的时候最低值是2214,但公式求得的值却是2218.


--  作者:c100010231
--  发布时间:2016/9/18 10:42:17
--  


图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看

jinzhe老师,在第二个绿色圈的期间,我所要求的那个值也有了变化,而在DIFF上穿零轴以前,这个值应该始终如一才对呀。(一直都是2214才对。)


--  作者:c100010231
--  发布时间:2016/9/18 10:46:09
--  
求:在DIFF下穿零轴后、再次上穿零轴前,在此区间内,如有DIFF最小值小于负5的那个MACD小于零的周期内所对应股价的最小值。图片点击可在新窗口打开查看
--  作者:jinzhe
--  发布时间:2016/9/18 10:47:54
--  

macd:=stkindi(\'\',\'macd.macd1\',0,datatype);

diff:=stkindi(\'\',\'macd.diff\',0,datatype);

ss:=if(diff<-5,l,1000000);

nn:=barslast(cross(0,macd))+1;

ll:valuewhen(cross(macd,0),ref(valuewhen(ss=llv(ss,nn+1),l),1));


--  作者:c100010231
--  发布时间:2016/9/18 10:49:58
--  
如果有DIFF最小值小于负5,那么,肯定要有一波MACD的绿柱子。我所要求的就是在当前DIFF依然在零下时(此时也可能MACD已经又有了几次红绿转换了,但DIFF一直都在零下)那一波MACD为绿柱子期间内所对应的股价的最小值。
--  作者:jinzhe
--  发布时间:2016/9/18 10:58:09
--  
以下是引用jinzhe在2016-9-18 10:47:54的发言:

macd:=stkindi(\'\',\'macd.macd1\',0,datatype);

diff:=stkindi(\'\',\'macd.diff\',0,datatype);

ss:=if(diff<-5,l,1000000);

nn:=barslast(cross(0,macd))+1;

ll:valuewhen(cross(macd,0),ref(valuewhen(ss=llv(ss,nn+1),l),1));