以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]麻烦编写一个指标:早上9点开盘价  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=172141)

--  作者:无所微距
--  发布时间:2019/9/23 8:38:22
--  [求助]麻烦编写一个指标:早上9点开盘价
麻烦编写一个指标:早上9点开盘价,下午1点30开盘价,晚上9点开盘价。每个时段开盘价都画一条延长直线,使用不同颜色线区分,线的末端标注数值。谢谢!





--  作者:wenarm
--  发布时间:2019/9/23 9:39:33
--  
aa:VALUEWHEN(ref(time,1)=CLOSETIME(1) or ref(time,1)=CLOSETIME(3) or ref(time,1)=CLOSETIME(4), open);
--  作者:无所微距
--  发布时间:2019/9/23 10:25:50
--  
是这个意思,但是可以用线段形式表现吗,谢谢。
--  作者:无所微距
--  发布时间:2019/9/23 10:41:05
--  
然后在线段末端标注数值。
--  作者:wenarm
--  发布时间:2019/9/23 10:50:13
--  
线段不好处理。
aa:VALUEWHEN(ref(time,1)=CLOSETIME(1) or ref(time,1)=CLOSETIME(3) or ref(time,1)=CLOSETIME(4), open);
DRAWTEXT(time=CLOSETIME(1) or time=CLOSETIME(3) or time=CLOSETIME(4) , HIGH,NUMTOSTR(aa,2) )

--  作者:无所微距
--  发布时间:2019/9/23 10:56:40
--  
用stickline,把宽度设置大点可以吗,可惜我不会写
--  作者:FireScript
--  发布时间:2019/9/23 10:56:56
--  
 cd1:ref(time,1)=CLOSETIME(1) or (time>=130000 and ref(time,1) =CLOSETIME(0));//需要额外处理下 节假日没有夜盘的情况
cd2:ref(time,1)=CLOSETIME(3);
cd3:ref(time,1)=CLOSETIME(4) and time<130000;//需要额外处理下 节假日没有夜盘的情况

a1:=VALUEWHEN(cd1,o);//上午开盘价
a2:=VALUEWHEN(cd2,o);//下午开盘价
a3:=VALUEWHEN(cd3,o);//夜盘开盘价


DRAWLINE(cd1,o,time=CLOSETIME(3) or ISLASTBAR ,a1 ,0 ,COLORWHITE);//上午
DRAWLINE(cd2,o,time=CLOSETIME(4) or ISLASTBAR,a2 ,0 ,COLORRED);//下午
DRAWLINE(cd3,o,time=CLOSETIME(1) or ISLASTBAR ,a3 ,0 ,COLORGREEN);//夜盘,但是夜盘需要考虑到节假日的情况。


DRAWNUMBER(cd1,h+2*MINDIFF, a1,0,COLORWHITE,0);//起始点标注价格  末端画在当日K上实现效果不是很好。
DRAWNUMBER(cd2,h+2*MINDIFF, a2,0,COLORRED,0);
DRAWNUMBER(cd3,h+2*MINDIFF, a3,0,COLORGREEN);

颜色自行调整,标注数字的位置也可以自行调整。具体参考函数说明里面的参数说明吧。

--  作者:FireScript
--  发布时间:2019/9/23 10:57:20
--  

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

大致效果如上图所示,感觉还可以。

--  作者:无所微距
--  发布时间:2019/9/23 11:45:04
--  
我测试白色线段怎么都是倾斜的,红绿线段是水平的,数值标注可以放在线段末端吗。
--  作者:wenarm
--  发布时间:2019/9/23 12:57:09
--  
DRAWTEXT(time=CLOSETIME(1) or time=CLOSETIME(3) or time=CLOSETIME(4) , HIGH,NUMTOSTR(aa,2) )