以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 这是一个BUG吗? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=153047) |
-- 作者:jcyluck -- 发布时间:2017/5/16 13:37:07 -- 这是一个BUG吗? INPUT:(P,10,5,30,2),(M,30,10,100,2); MA10:=MA(CLOSE,P); MA30:=MA(CLOSE,M); JCH:=CROSS(MA10,MA30); SCH:=CROSS(MA30,MA10); {第一次金叉位置} JCH1_P:BARSLAST(JCH)+1,NODRAW; SCH1_P:BARSLAST(SCH)+1,NODRAW; {第二次金叉位置} JCH2_P:REF(BARSLAST (JCH),JCH1_P)+JCH1_P+1,NODRAW; SCH2_P:REF(BARSLAST(SCH),SCH1_P)+SCH1_P+1,NODRAW;
{最近二次金叉的高点价格} JCH1_D:REF(HHV(H,JCH1_P-SCH1_P+5),SCH1_P),NODRAW; JCH2_D:REF(HHV(H,JCH2_P-SCH2_P+5),SCH2_P),NODRAW; {最近二次死叉的低点价格} SCH1_D:LLV(L,SCH1_P+5),NODRAW; SCDEV2_P:=CONST(SCH2_P-JCH1_P+5),NODRAW; SCH2_D:REF(LLV(L,SCDEV2_P),JCH1_P),NODRAW; { 当前如果是死叉情况,JCH1_D,JCH2_D,SCH2_D均不能正确计算出来。 } 请大神帮忙 看看,是不是存在这个问题,如果是,这个问题要怎么解决呢? |
-- 作者:wenarm -- 发布时间:2017/5/16 13:58:43 -- 你的代码想表达什么意思? [此贴子已经被作者于2017/5/16 13:58:51编辑过]
|
-- 作者:jcyluck -- 发布时间:2017/5/16 14:12:14 -- 求最近两次金叉的高点和最近两次死叉的低点。 |
-- 作者:pyd -- 发布时间:2017/5/16 14:58:45 -- ma1:ma(c,10); ma2:ma(c,20); jc:cross(ma1,ma2); sc:cross(ma2,ma1); n:barslast(jc); m:barslast(sc); hn:ref(hhv(h,n),n+1);//最近两次金叉的高点 hm:ref(hhv(h,m),m+1);//最近两次死叉的低点 |
-- 作者:jcyluck -- 发布时间:2017/5/16 15:17:32 -- 谢谢! 但结果明显不对: hn:ref(hhv(h,n),n+1);//最近两次金叉的高点 这里两个N所处位置的变量大多数时候是不相同。 应该是 hn:ref(hhv(h,前二死叉周期-n),n+1);才对。 所以必须要计算出前面第二次死叉的位置。 麻烦版主再实盘试试。。。
|
-- 作者:jcyluck -- 发布时间:2017/5/16 15:38:29 -- 对不起,看来是我错了。实盘验证的结果是对的。 那么,请版主解释一下 hm:ref(hhv(h,m1),m1+1);//最近两次死叉的低点 这个,假如M1为3,把这个代码中的M1替换为数字3,结果又是错误的,为什么?请版主解释一下。 另外,如果求第三次和第四次金叉的高点,要怎么求? |
-- 作者:pyd -- 发布时间:2017/5/16 15:49:47 -- barslast求出的结果是一个变化的值,不能用具体值替换, 如果是第n次金叉请用函数sumbars,用请看函数说明 结合自己图上验证 [此贴子已经被作者于2017/5/16 15:50:12编辑过]
|
-- 作者:jcyluck -- 发布时间:2017/5/16 19:58:34 -- 按照版主的代码,计算的值也不总是正确的,版主可以将周期一直向前滑动,就会发现问题。 另外,版主的解释有些差强人意, n:barslast(jc); 求出n的值是3, 但在 hn:ref(hhv(h,n),n+1); 中,将n用3来替代: hn:ref(hhv(h,3),3+1); 计算的结果却是不同的。 hn:ref(hhv(h,3),3+1); 这段代码中,只涉及到ref和hhv这两个函数,与barslast应该没什么关系啊。 求版主举例详解,谢谢!!! |
-- 作者:wenarm -- 发布时间:2017/5/17 9:17:33 -- barslast返回的是一个序列值,你直接只用一个定值代替。那么在非定位的点,barslast的值并不是在时3了
|