历史高点位置划线。 (文华财经WH8赢智V8.2)

投资者咨询:历史高点位置划线。 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2019-7-29 14:57

YG:=HHVBARS(HIGH,0);//历史高点位置
DRAWSL1(HIGH=HHV(HIGH,YG),HIGH,0,20,0),COLORYELLOW;

 

 

我想在,历史高点位置,画一条横线。如上代码,写完后如图:

历史高点在8062位置,可是却画出了3条线,是为什么呢?



图片点击可在新窗口打开查看
技术人员回复
日期:2019-7-29 15:02
因为在第二根画线点未出现之前 第一根k线是历史的最高点,所以画线

第二根同理。

这样改下:

YG:=HHVBARS(HIGH,0);//历史高点位置
A:=BACKSET(ISLASTBAR,YG+1);
DRAWSL1(CROSS(A,0.5),HIGH,0,20,0),COLORYELLOW;
投资者咨询:历史高点位置划线。 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2019-7-29 14:57
 // 黄金分割比例
G0:=0.191;
G1:=0.382;
G2:=0.5;
G3:=0.618;
G4:=0.809;

YG:=HHV(HIGH,0);//年线高点,遍历历史数据
YGP:=HHVBARS(HIGH,0);//年线高点,到当前的周期数
YD:=LLV(LOW,0);//年线低点,遍历历史数据
YDP:=LLVBARS(LOW,0);//年线低点,到当前的周期数

//黄金分割位计算
P1:=POW(YD,G1)*POW(YG,G3);
P2:=POW((YD*YG),G2);
P3:=POW(YD,G3)*POW(YG,G1);
P4:=POW(YD,G4)*POW(YG,G0);
//绘制黄金分割率

A:=BACKSET(ISLASTBAR,YGP+1);
DRAWSL1(CROSS(A,0.5),HIGH,0,20,0),COLORYELLOW;
DRAWSL1(CROSS(A,0.5),P1,0,20,0),COLORYELLOW,POINTDOT;
DRAWSL1(CROSS(A,0.5),P2,0,20,0),COLORYELLOW,POINTDOT;
DRAWSL1(CROSS(A,0.5),P3,0,20,0),COLORYELLOW,POINTDOT;
DRAWSL1(CROSS(A,0.5),P4,0,20,0),COLORYELLOW,POINTDOT;

B:=BACKSET(ISLASTBAR,YDP+1);
DRAWSL1(CROSS(B,0.5),LOW,0,20,0),COLORYELLOW;

以上为:绘制黄金分割线的代码,画历史低点这条线的时候,开始绘制的点和之前定的分割线,起点不同(如图),这个怎么解决呢?

 



按此在新窗口浏览图片
文件名:66666.png
技术人员回复
日期:2019-7-29 15:40
 您的意思是 低点的起点画在高点这根k线?
投资者咨询:历史高点位置划线。 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2019-7-29 14:57
 是的。这样才是黄金分割线的画法。不知道是否和官方的实现方式一致,如果不对,请赐教。图片点击可在新窗口打开查看
技术人员回复
日期:2019-7-29 15:52
 参考:


 // 黄金分割比例
G0:=0.191;
G1:=0.382;
G2:=0.5;
G3:=0.618;
G4:=0.809;
YG:=HHV(HIGH,0);//年线高点,遍历历史数据
YGP:=HHVBARS(HIGH,0);//年线高点,到当前的周期数
YD:=LLV(LOW,0);//年线低点,遍历历史数据
YDP:=LLVBARS(LOW,0);//年线低点,到当前的周期数

//黄金分割位计算
P1:=POW(YD,G1)*POW(YG,G3);
P2:=POW((YD*YG),G2);
P3:=POW(YD,G3)*POW(YG,G1);
P4:=POW(YD,G4)*POW(YG,G0);
//绘制黄金分割率

A:=BACKSET(ISLASTBAR,YGP+1);
DRAWSL1(CROSS(A,0.5),HIGH,0,20,0),COLORYELLOW;
DRAWSL1(CROSS(A,0.5),P1,0,20,0),COLORYELLOW,POINTDOT;
DRAWSL1(CROSS(A,0.5),P2,0,20,0),COLORYELLOW,POINTDOT;
DRAWSL1(CROSS(A,0.5),P3,0,20,0),COLORYELLOW,POINTDOT;
DRAWSL1(CROSS(A,0.5),P4,0,20,0),COLORYELLOW,POINTDOT;

B:=BACKSET(ISLASTBAR,YDP+1);
DRAWSL1(CROSS(A,0.5),VALUEWHEN(CROSS(B,0.5),L),0,20,0),COLORYELLOW;
投资者咨询:历史高点位置划线。 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2019-7-29 14:57

 因为两个模型间,无法传参。那就不能把上述的黄金分割代码,单独做成一个模型,然后被其他模型,传参调用。

 

这样,画一次,就要重复写一次吗?

 

比如,我想在日线界定2个高低点(画黄金分割),60分钟再界定两个高低点(画黄金分割)。就得重复写2次代码?

技术人员回复
日期:2019-7-29 19:13
是的

需要修改YG等变量的周期参数