以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  画线  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=170551)

--  作者:llz1124
--  发布时间:2019/6/19 12:34:47
--  画线
 这是在其他软件里的写法  PartLine( TodayBAR +1=1 , 0 ,C[1],5,C[1], Rgb(30,144,255), 4);       当日第1k   以 昨日收盘价画一条线 ,起点昨日倒数第5k处,终点当前k处 。请老师帮忙写一下金字塔的写法。
--  作者:llz1124
--  发布时间:2019/6/19 13:27:42
--  
DRAWLINE(CURRBARSCOUNT=5 ,REF(C,1) ,TodayBAR =1 ,REF(C,1),1 ,COLORYELLOW ,4 ); 这样好像不对哦,没有输出。
--  作者:FireScript
--  发布时间:2019/6/19 13:59:19
--  
 只能处理成从当日第一个K开始画线,另外试了下用画线函数实现不如直接用普通指标线处理
p:=ref(c,TODAYBAR);
s:VALUEWHEN(TODAYBAR=1,p);

最后效果大概是这样的

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

--  作者:FireScript
--  发布时间:2019/6/19 14:01:56
--  
 或者画线函数也可以:
p:=ref(c,TODAYBAR);
DRAWLINE(TODAYBAR=1,p,ISLASTBAR or time=CLOSETIME(0),p,0);


图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

颜色什么的你自己再弄下就行了
[此贴子已经被作者于2019/6/19 14:02:21编辑过]

--  作者:llz1124
--  发布时间:2019/6/20 8:03:45
--  

老师帮忙给看看问题出在哪里了:当日高点回调30点画一次连接线

BARZHI:=IF(DATATYPE=17 ,TodayBAR            ,DRAWNULL);
 H_DAY:=IF(DATATYPE=17 ,HHV(H,BARZHI)     ,DRAWNULL);
VARIABLE: bs1 := 0 ; 
IF (BARZHI=1 or (BARZHI>1 and H=H_DAY ) ) THEN BEGIN
     bs1 := 0;
END

IF (BARZHI>1 AND bs1=0 ) THEN BEGIN
    DRAWLINE( H =H_DAY , H , L<=H_DAY -30*MINDIFF,H_DAY -30*MINDIFF,0,RGB(255,140,0),2);
    bs1:=1;
END


--  作者:FireScript
--  发布时间:2019/6/20 9:23:08
--  
你这里:
DRAWLINE( H =H_DAY , H , L<=H_DAY -30*MINDIFF,H_DAY -30*MINDIFF,0,RGB(255,140,0),1);

开始画线时候H_DAY和后面进行判断时候的H_DAY是不一样的。因为这个H_DAY是一直跟随K变动的,当日最高价在最后一个K之前都是可能变化的。
这和你实际需求是不一致的。
[此贴子已经被作者于2019/6/20 9:25:11编辑过]

--  作者:FireScript
--  发布时间:2019/6/20 9:31:34
--  
 你这个思路也要看下是不是需要调整。因为当日最高价在最后一个K之前都是不确定的。而画线函数本身也是无法进行未来判断的。
--  作者:llz1124
--  发布时间:2019/6/20 9:32:27
--  
我是想表达的意思 :比如 当日开盘 是 2000 ,随后一直小震荡上涨到了 2100 ,然后有个30点的回调 到了2070 以下,这时候画线 , 然后 如果后面又继续上涨了到了2120 ,当日高点变了,然后又回调了30多点,还画线
--  作者:FireScript
--  发布时间:2019/6/20 9:55:09
--  
你这个点数调整下线还是能画出来的。但是还是6楼提到的那个问题。画线结束时候判断的回落并不是按照画线开始时候的当日最高价判断的。

--  作者:llz1124
--  发布时间:2019/6/20 10:01:48
--  

BARZHI:=IF(DATATYPE=17 ,TodayBAR            ,DRAWNULL);

H_BARZHI:=IF(DATATYPE=17  ,HHVBars(H,BARZHI ) ,DRAWNULL);
 H_DAY:=IF(DATATYPE=17 ,HHV(H,BARZHI)     ,DRAWNULL);
VARIABLE: bs1 := 0 ; 
IF (BARZHI=1 or (BARZHI>1 and H=H_DAY ) ) THEN BEGIN
     bs1 := 0;
END

    P1:=REF(H, H_BARZHI);  

    P2:=HHV(H,BARZHI) -30*MINDIFF;
     
   IF ( BARZHI>1 AND BS1=0) THEN BEGIN
     DRAWLINE(  H=H_DAY  , P1 , L<=P2  ,P2 ,0,RGB(255,140,0),2);
     bs1:=1;
    END  

修改成这样 还是不行