以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- [求助]请老师能否按截图中解决延长线的问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=165716) |
-- 作者:东德 -- 发布时间:2018/9/28 8:37:40 -- [求助]请老师能否按截图中解决延长线的问题 我是原文华的用户,在一次培训中看到老师使用贵公司的软件,并且让我对截图中的压力位与支撑位的画线非常感兴趣,因此才初来贵宝地学习,下面的公式是在文华画的支撑线, A1:=FILTER(AA,10); 但文华无法解决我的问题:如上指标图中横线那样,设长了价格将来上穿了还在,设短了又不便于观察,能不能有什么方法,比如从开始标注横线开始,后面有K线完全穿过时横线的长度将不在行长延长?或有其他更好的方法? [此贴子已经被作者于2018/9/28 8:39:13编辑过]
|
-- 作者:FireScript -- 发布时间:2018/9/28 9:11:08 -- “后面有K线完全穿过时横线的长度将不在行长延长?” 你这句意思是画的线达到条件不在延长是吗? |
-- 作者:东德 -- 发布时间:2018/9/28 9:49:08 -- 谢谢老师回复,是这样的,但支撑线的要求是被上升K线穿过不停止,而是被上升穿过后的再次下跌穿过就终止。 |
-- 作者:wenarm -- 发布时间:2018/9/28 10:31:49 -- 这个不好实现 |
-- 作者:东德 -- 发布时间:2018/9/28 10:48:04 -- 如能做到截图中的效果也行的,实在不成就做从开始标注横线开始,后面有K线完全穿过时横线的长度将不在行长延长谢谢。 |
-- 作者:FireScript -- 发布时间:2018/9/28 11:31:16 -- 1.DRAWLINE函数可以从指定开始位置画到指定结束位置。并且可以选择不额外延伸。 2. 1提到的画线函数需要明确的画线条件。包括你说的“被上升K线穿过不停止,而是被上升穿过后的再次下跌穿过就终止。” 最终需要代码上的实现才行。 你可以先看下函数说明,然后明确下自己的画线条件。这样我们判断下是否可以把你的条件写成代码形式。
|
-- 作者:东德 -- 发布时间:2018/9/28 12:04:47 -- 谢谢老师的回复,我提出另一个想法来解决这个问题,是否可以用到缠论的上升线与下降线来实现,也就是支撑延长线被第一个下降线终止。也是下面公式倒数第二行成形的下降线。 缠论指标如下: G:=MA(C,5); D:=MA(C,10); NNH:=BARSLAST(H=HHV(H,7)) ,NODRAW; NNL:=BARSLAST(L=LLV(L,7)) ,NODRAW; //PD:=REF(G,NNH)>REF(D,NNH) ,NODRAW; NN:=IF(REF(G,NNH)>REF(D,NNH) AND NNH<=4,NNH,IF(REF(G,NNL)<REF(D,NNL) AND NNL<=4,NNL,5)) ,NODRAW; N:=IF(ISLASTBAR AND NN>0,NN,5) ,NODRAW; HH:=REF(H,N)=HHV(H,6); LL:=REF(L,N)=LLV(L,6); FG01:BACKSET(HH,N+1)>BACKSET(HH,N),NODRAW;//只设置前面第6个 FD01:BACKSET(LL,N+1)>BACKSET(LL,N) ,NODRAW; FG02:=FG01=FD01 AND G>D,NODRAW; FD02:FG01=FD01 AND G<D,NODRAW; //FG02:=IF(BARSLAST(FG01)=BARSLAST(FD01) AND G>D,FG01,//高底是同一K看均线位置 // IF(BARSLAST(FD01)>BARSLAST(FG01),FG01,0)),NODRAW;//高点处BARLAST(FG01)=0 //FD02:=IF(BARSLAST(FG01)=BARSLAST(FD01) AND D>G,FD01, //IF(BARSLAST(FG01)>BARSLAST(FD01),FD01,0)),NODRAW; TTTT:BARSLAST(FD01),NODRAW; //FG0:=FG01 AND H=HHV(H,IF(FG02=1,BARSLAST(REF(FD01,1))+1,BARSLAST(FD01))) AND FD02=0 ,NODRAW; //FD0:=FD01 AND L=LLV(L,IF(FD02=1,BARSLAST(REF(FG01,1))+1,BARSLAST(FG01))) AND FG02=0 ,NODRAW; FG0:=FG01 AND IF(FG02=1,H=HHV(H,BARSLAST(REF(FD01,1))+1),H=HHV(H,IF(BARSLAST(L=LLV(L,7))>=5,5,BARSLAST(FD01)))) AND FD02=0 ,NODRAW; FD0:=FD01 AND IF(FD02=1,L=LLV(L,BARSLAST(REF(FG01,1))+1),L=LLV(L,IF(BARSLAST(H=HHV(L,7))>=5,5,BARSLAST(FG01)))) AND FG02=0 ,NODRAW; //高低点间周期 //高低点间周期 GT:BARSLAST(FG0),NODRAW; DT:BARSLAST(FD0),NODRAW; //第一次处理高低点间多余的点 LLLL:DT=0 AND REF(DT,1)<GT AND L>REF(L,REF(DT,1)+1),NODRAW; FG1:BACKSET(REFX(GT,1)=0 AND GT<DT AND REFX(H,1)>=REF(H,GT),GT+1),NODRAW; FD1:BACKSET(REFX(DT,1)=0 AND DT<GT AND REFX(L,1)<=REF(L,DT),DT+1),NODRAW; FG11:IF(GT=0 AND REF(GT,1)<DT AND IF(REF(G,BARSLAST(L=LLV(L,7)))>REF(D,BARSLAST(L=LLV(L,7))),BARSLAST(L=LLV(L,7))<5,1) AND H<REF(H,REF(GT,1)+1),1,0),NODRAW; FD11:IF(DT=0 AND REF(DT,1)<GT AND IF(REF(G,BARSLAST(H=HHV(H,7)))<REF(D,BARSLAST(H=HHV(H,7))),BARSLAST(H=HHV(H,7))<5,1) AND L>REF(L,REF(DT,1)+1),1,0),NODRAW; //再次周期 GT1:BARSLAST(FG11<>1 AND FG1<>1 AND FG0),NODRAW; DT1:BARSLAST(FD11<>1 AND FD1<>1 AND FD0),NODRAW; //GGT1:=REF(GT1,1),NODRAW; //处理两边都少于3根的笔 //HHHH:REF(H,GT1),NODRAW; //HHHHH:HHV(H,GT1+5),NODRAW; FD2:BACKSET(REFX(GT1,1)=0 AND DT1<3 AND GT1-DT1<4 AND REF(L,DT1)>LLV(L,GT1+5),DT1+1),NODRAW; //加两句,低是最低,去两边; //NL:GT1=0 AND DT1<4 AND REF(GT1,1)-DT1<4 ,NODRAW; //LLLLLLLL:LLV(L,GT1+5),NODRAW; FG2A:BACKSET(REFX(GT1,1)=0 AND DT1<3 AND GT1-DT1<4 AND REF(L,DT1)<=LLV(L,GT1+5) AND REF(H,GT1)>HHV(H,GT1+5),GT1+1),NODRAW; FG2B:IF(GT1=0 AND DT1<4 AND REF(GT1,1)-DT1<4 AND REF(L,DT1)<=LLV(L,REF(GT1,1)+6) AND H>HHV(H,REF(GT1,1)+6),1,0),NODRAW; FG2:BACKSET(REFX(DT1,1)=0 AND GT1<3 AND DT1-GT1<4 AND REF(H,GT1)<HHV(H,DT1+5),GT1+1),NODRAW; FD2A:BACKSET(REFX(DT1,1)=0 AND GT1<3 AND DT1-GT1<4 AND REF(H,GT1)>=HHV(L,DT1+5) AND REF(L,DT1)>LLV(L,DT1+5),DT1+1),NODRAW; FD2B:IF(DT1=0 AND GT1<4 AND REF(DT1,1)-GT1<4 AND REF(H,GT1)>=HHV(H,REF(DT1,1)+6) AND L>LLV(L,REF(DT1,1)+6),1,0),NODRAW; // //HHV(H,GT1+1)<HHV(H,GT1+15) //GGG:HHV(H,GT1+1),NODRAW; //DDD:HHV(H,GT1+15),NODRAW; //处理单边都少于3根的笔 //GT11:=BARSLAST(GT1=0 AND FG2<>1),NODRAW; //DT11:=BARSLAST(DT1=0 AND FD2<>1 AND FD20<>1),NODRAW; //FG21:IF(GT1=0 AND DT1<4 AND H<HHV(H,REF(GT1,1)+3),1,0),NODRAW; //FD21:IF(DT1=0 AND GT1<4 AND L>LLV(L,REF(DT1,1)+3) ,1,0),NODRAW; //FD22:BACKSET(REFX(GT1,1)=0 AND DT1<3 AND REFX(H,1)>REF(H,GT1) AND REF(L,DT1)>LLV(L,GT1+5),DT1+1),NODRAW; //FG22:BACKSET(REFX(DT1,1)=0 AND GT1<3 AND REFX(L,1)<REF(L,DT1) AND REF(H,GT1)<HHV(H,DT1+5),GT1+1),NODRAW; TTTTTT: H<REF(H,REF(GT1,1)+1) AND DT1<4,NODRAW; HHHHHH:REF(LLV(L,10),DT1),NODRAW; //前长后短; FG21:IF(GT1=0 AND DT1<4 AND H<=REF(H,REF(GT1,1)+1) ,1,0),NODRAW; FD21:IF(DT1=0 AND GT1<4 AND L>=REF(L,REF(DT1,1)+1) ,1,0),NODRAW; //前短后长,前低后高(去低); FD231:BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)>REF(H,GT1) AND REF(L,DT1)>REF(LLV(L,10),DT1),DT1+1),NODRAW; FG23:BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)>REF(H,GT1) AND (REF(H,GT1)<REF(HHV(H,13),GT1) OR REF(FD231,DT1)=0),GT1+1),NODRAW; //前短后长,前高后低(去高); //NNN:REF(H,GT1)>=REF(HHV(H,8),GT1),NODRAW; //前短后长,去2; FG231:BACKSET(REFX(DT1,1)=0 AND GT1>3 AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)<REF(L,DT1) AND REF(H,GT1)<REF(HHV(H,10),GT1) ,GT1+1),NODRAW; FD23:BACKSET(REFX(DT1,1)=0 AND GT1>3 AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)<REF(L,DT1) AND ( REF(L,DT1)>REF(LLV(L,13),DT1) OR REF(FG231,GT1)=0),DT1+1),NODRAW; ///前短后长,去3; FDD23:REF(H,GT1)<REF(HHV(H,10),GT1) OR REF(FD23,DT1)=0,NODRAW; FD24:BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)<HHV(H,GT1+3) AND REF(L,DT1)>LLV(L,DT1+5),DT1+1),NODRAW; FG24:BACKSET(REFX(DT1,1)=0 AND GT1>3 AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)>LLV(L,DT1+3) AND REF(H,GT1)<HHV(H,GT1+5),GT1+1),NODRAW; //FG241:IF(GT1=0 AND DT1>4 AND REF(GT1,1)-DT1<3 AND H<HHV(H,REF(GT1,1)+3) AND REF(FD24,DT1+2)<>1,1,0),NODRAW; //FD241:IF(DT1=0 AND GT1>4 AND REF(DT1,1)-GT1<3 AND L>LLV(L,REF(DT1,1)+3) AND REF(FG24,GT1+2)<>1,1,0),NODRAW; //FGE:BACKSET(ISLASTBAR AND DT1-GT1<3 AND DT1>GT1, GT1+1),NODRAW; //FDE:BACKSET(ISLASTBAR AND GT1-DT1<3 AND GT1>DT1, DT1+1),NODRAW; //FG21:IF(GT1=0 AND DT1<4 AND REF(GT1,1)<4,1,0),NODRAW; //FD21:IF(DT1=0 AND GT1<4 AND REF(DT1,1)<4 ,1,0),NODRAW; //做两次高低点间多余的点 GT2:BARSLAST(FG21<>1 AND FG23<>1 AND FG231<>1 AND FG24<>1 AND FG2<>1 AND FG2A<>1 AND FG2B<>1 AND GT1=0),NODRAW; DT2:BARSLAST(FD21<>1 AND FD23<>1 AND FD231<>1 AND FD24<>1 AND FD2<>1 AND FD2A<>1 AND FD2B<>1 AND DT1=0),NODRAW; FG3:BACKSET(REFX(GT2,1)=0 AND GT2<DT2 AND REFX(H,1)>=REF(H,GT2),GT2+1),NODRAW; //HHX:REF(H,GT2),NODRAW; FD3:BACKSET(REFX(DT2,1)=0 AND DT2<GT2 AND REFX(L,1)<=REF(L,DT2),DT2+1),NODRAW; FG31:IF(GT2=0 AND REF(GT2,1)<DT2 AND H<REF(H,REF(GT2,1)+1),1,0),NODRAW; FD31:IF(DT2=0 AND REF(DT2,1)<GT2 AND L>REF(L,REF(DT2,1)+1),1,0),NODRAW; GT3:BARSLAST(GT2=0 AND FG3<>1 AND FG31<>1 ),NODRAW; DT3:BARSLAST(DT2=0 AND FD3<>1 AND FD31<>1),NODRAW; FG4:BACKSET(REFX(GT3,1)=0 AND GT3<DT3 AND REFX(H,1)>=REF(H,GT3),GT3+1),NODRAW; FD4:BACKSET(REFX(DT3,1)=0 AND DT3<GT3 AND REFX(L,1)<=REF(L,DT3),DT3+1),NODRAW; FG41:IF(GT3=0 AND REF(GT3,1)<DT3 AND H<REF(H,REF(GT3,1)+1),1,0),NODRAW; FD41:IF(DT3=0 AND REF(DT3,1)<GT3 AND L>REF(L,REF(DT3,1)+1),1,0),NODRAW; //FD31:IF(DT2=0 AND REF(DT2,1)<REF(GT2,1) AND L>REF(L,DT2+1),1,0),NODRAW; //HHH:=GT3=0,NODRAW; //LLL:=DT3=0,NODRAW; HHH:=GT3=0 AND FG31<>1 AND FG3<>1,NODRAW; LLL:=DT3=0 AND FD31<>1 AND FD3<>1,NODRAW; //HHH:=FG0 AND FG11<>1 AND FG1<>1 AND FG2<>1 AND FG21<>1 AND FG31<>1 AND FG3<>1; //LLL:=FD0 AND FD11<>1 AND FD1<>1 AND FD2<>1 AND FD21<>1 AND FD31<>1 AND FD3<>1; DRAWLINE1(HHH ,H,LLL,L,0),COLORWHITE;//,DOT; DRAWLINE1(LLL,L,HHH ,H,0),COLORWHITE;//,DOT; |
-- 作者:东德 -- 发布时间:2018/9/28 12:39:50 -- 或者是更简单一点,这可能要用到向后引用函数或者未来函数,想法如下: AA:=C>REF(C,1)*1.005&&V>MA(V,60)*1.381;
取这满足AA根K线的开盘价O, 同时开始划延长线,结束为向后引用函数取得这根延长线上的某一天的收盘价C2<O. |
-- 作者:wenarm -- 发布时间:2018/9/28 14:09:18 -- AA:C>REF(C,1)*1.005 AND V>MA(V,60)*1.381; A1:FILTER(AA,10); AAA:BARSLAST(A1=1); DRAWLINE(A1 ,open ,VALUEWHEN(A1=1,OPEN)>CLOSE ,VALUEWHEN(A1=1,OPEN) ,COLORRED ); [此贴子已经被作者于2018/9/28 14:09:26编辑过]
|
-- 作者:东德 -- 发布时间:2018/9/28 14:55:55 -- 谢谢老师,但貌似不对呀,没有显示横线呀,到是出了个AAA的划线?烦请老师再帮看看。 |