RSI背离代码 (文华财经WH8赢智V8.2)

投资者咨询:RSI背离代码 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-25 19:06
 之前我用的网上的一个RSI 7,RSI14 交叉来判断背离的,感觉假信号太多了。
我觉得还是按形态的好。
需求如下,麻烦老师看下。



图片点击可在新窗口打开查看

如上图。以底背离为例
1、获取第一个谷(谷值的左部6根K线,右部2根K线,也就是谷部小于右边2根K线即可,);
2、获取第二个谷(谷值的左部6根K线,右部6根K线。第二个谷尖和第一个谷尖的时间距离大于8根K线,如果不满足这个条件,那么需要继续往左扫描,找到第二个谷,最多往左回溯200根K线。
3、至此找到了两个谷。求这两个谷的区间 的  LOW的 最小值。记录为P1,P2.
4、这两个谷会有对应区间的RSI值,获取对应区间的RSI的两个极值/最小值。记录为RSI1,RSI2
5、如果P1<P2 and rsi1>rsi2, 为底背离,在当前K线标注买入(也就是说,当前K线为第一个谷右边第2根K线处)。

需要历史信号都有绘制,这样方便我查看图形,调整代码。

   
技术人员回复
日期:2018-5-25 19:27
核实您的思路:

1、谷定义,对比的是最低价,还是收盘价?

看您截图P3标出处,前一根阳线是小于在前一根阴线的,不需要最低价依次递减吗?

2、两个谷会有对应区间的RSI值,指的是P1,P2对应的那根k线的RS1,RS2吗?
投资者咨询:RSI背离代码 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-25 19:06
 1、谷定义,对比的是最低价,还是收盘价?
答复:最低价

看您截图P3标出处,前一根阳线是小于在前一根阴线的,不需要最低价依次递减吗?
答复:我没有标注P3啊。

2、两个谷会有对应区间的RSI值,指的是P1,P2对应的那根k线的RS1,RS2吗?
答复:不是对应的那根K线,而是整个区间的最小值。
技术人员回复
日期:2018-5-26 12:27
下周一工作时间给您回复
技术人员回复
日期:2018-5-28 13:43
 分析后回复,预计周三22点前
投资者咨询:RSI背离代码 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-25 19:06
 好的。
投资者咨询:RSI背离代码 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-25 19:06
 麻烦老师上班了看看。 首帖红色字体是新加的条件。
技术人员回复
日期:2018-5-29 8:36
 明白您的意思了,相关老师上午休息,我们会把您的思路转交给她

 请您耐心等待一下
技术人员回复
日期:2018-5-29 13:48
 请参考:

LC:=REF(CLOSE,1);
RSI:SMA(MAX(CLOSE-LC,0),7,1)/SMA(ABS(CLOSE-LC),7,1)*100;
LX1:=L<LV(L,6)&&L<REFX(LLV(L,2),2);
XN1:=BARSLAST(LX1)+1;
P1:=REF(L,XN1-1);
RSI1:=REF(MIN(LLV(RSI,7),REFX(LLV(RSI,2),2)),XN1-1);

LX2:=L<LV(L,6)&&L<REFX(LLV(L,6),6);
XN2:=BARSLAST(LX2)+1;
P2:=REF(REF(L,XN2-1),XN1);
RSI2:=REF(REF(MAX(LLV(RSI,7),REFX(LLV(RSI,6),6)),XN2-1),XN1);
NX:=REF(XN1,XN2);

DRAWTEXT(CROSS(P1<P2 AND RSI1>RSI2 && NX>8 && NX<200,0.5),L,'背离'),VALIGN0;

投资者咨询:RSI背离代码 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-25 19:06
 谢谢老师,我花了一上午仔细看了代码,还是不太懂,主要ref有点绕。我做了些修改,麻烦老师确认下是否修改正确。
 对于未来函数,LX2:=L<LV(L,6)&&L<REFX(LLV(L,6),6);           //找第二个谷,这个未来函数是否会导致把第一个谷也算进去了??? 
这行有疑问?有没有可能把第一个谷也算进去了。我现在设置的是第一个谷右边两根K线,但如果以后调整为6根K线,那么可能会有错误吗?是否需要以第一个谷的右部边界为  起点开始  扫描?


TR := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));//求最高价减去最低价,一个周期前的收盘价减去最高价的绝对值,一个周期前的收盘价减去最低价的绝对值,这三个值中的最大值
TRANGE := REF(MA(TR,50),1);//求N个周期内的TR的简单移动平均

LC:=REF(CLOSE,1);
RSI:SMA(MAX(CLOSE-LC,0),7,1)/SMA(ABS(CLOSE-LC),7,1)*100;
LX1:=L<LV(L,6)&&L<REFX(LLV(L,2),2);
XN1:=BARSLAST(LX1)+1;
P1:=REF(L,XN1-1);
RSI1:=REF(MIN(LLV(RSI,7),REFX(LLV(RSI,2),2)),XN1-1);

LX2:=L<LV(L,6)&&L<REFX(LLV(L,6),6);           //找第二个谷,这个未来函数是否会导致把第一个谷也算进去了???
XN2:=BARSLAST(LX2)+1;
P2:=REF(REF(L,XN2-1),XN1);
RSI2:=REF(REF(MIN(LLV(RSI,7),REFX(LLV(RSI,6),6)),XN2-1),XN1);   //修改,原文是MAX
NX:=XN2-XN1;              //修改。原文是NX:=REF(XN1,XN2);

BB:=CROSS(P1<P2 AND RSI1>RSI2 && NX>8 && NX<200,0.5);      
DRAWTEXT(BB,L,'背离'),VALIGN0;

KTEXT(BB,-XN2+1,REF(L,XN2-1),1,COLORRED,'RSI 2');

//下面是我添加的查看值得代码
DRAWNUMBER(BB,L-TRANGE,P1,2,COLORRED);
DRAWNUMBER(BB,L-2*TRANGE,P2,2,COLORRED);
DRAWNUMBER(BB,L-3*TRANGE,RSI1,2,COLORRED);
DRAWNUMBER(BB,L-4*TRANGE,RSI2,2,COLORRED);
DRAWNUMBER(BB,L-5*TRANGE,NX,2,COLORRED);