N:=10;
DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);
MACD:=EMA(DIF,9);
DM:=(DIF-MACD)*2;
A11:=REF(DIF,N)=HHV(DIF,2*N+1);
B21:=FILTER(A11,N);
C11:=BACKSET(B21,N+1);
D11:=FILTER(C11,N);
T线:REF(DIF,BARSLAST(D11)),COLORFF00FF,NODRAW;
A12:=REF(DIF,N)=LLV(DIF,2*N+1);
B22:=FILTER(A12,N);
C12:=BACKSET(B22,N+1);
D12:=FILTER(C12,N);
T1线:REF(DIF,BARSLAST(D12)),COLORFF00FF,NODRAW;
STICKLINE(DIF<T1线,O,C,8,0),COLOR00FF00;
STICKLINE(DIF>T线,O,C,8,0),COLORMAGENTA;
AA:=BACKSET(REFX(CROSSDOWN(DIF<T1线,0.5),1),LLVBARS(L,BARSLAST(CROSS(DIF<T1线,0.5))+1)+1),NODRAW;
BB:=BACKSET(REFX(CROSSDOWN(DIF<T1线,0.5),1),HHVBARS(H,BARSLAST(CROSS(DIF<T1线,0.5))+1)+1),NODRAW;
CC:=BACKSET(REFX(CROSSDOWN(DIF>T线,0.5),1),LLVBARS(L,BARSLAST(CROSS(DIF>T线,0.5))+1)+1),NODRAW;
DD:=BACKSET(REFX(CROSSDOWN(DIF>T线,0.5),1),HHVBARS(H,BARSLAST(CROSS(DIF>T线,0.5))+1)+1),NODRAW;
DRAWHORIZONTALLINE(CROSS(AA,0.5)||CROSS(CC,0.5),L,COLORGREEN);
DRAWHORIZONTALLINE(CROSS(BB,0.5)||CROSS(DD,0.5),H,COLORRED);
部分代码替换下,其实就是一个cross函数有差异。
AA:=BACKSET(REFX(CROSS(0.5,DIF<T1线),1),LLVBARS(L,BARSLAST(CROSS(DIF<T1线,0.5))+1)+1),NODRAW;
BB:=BACKSET(REFX(CROSS(0.5,DIF<T1线),1),HHVBARS(H,BARSLAST(CROSS(DIF<T1线,0.5))+1)+1),NODRAW;
CC:=BACKSET(REFX(CROSS(0.5,DIF>T线),1),LLVBARS(L,BARSLAST(CROSS(DIF>T线,0.5))+1)+1),NODRAW;
DD:=BACKSET(REFX(CROSS(0.5,DIF>T线),1),HHVBARS(H,BARSLAST(CROSS(DIF>T线,0.5))+1)+1),NODRAW;
然后 DRAWHORIZONTALLINE 这个函数 函数说明我没查到。请提供下原软件里面这个函数的函数说明,copy发下我看下。
DRAWHORIZONTALLINE 画水平线。
用法:DRAWHORIZONTALLINE(COND,DATA,COLOR);
从本地起始K线开始计算,满足COND条件K线的DATA值处画水平线,颜色为COLOR,截至下一根满足COND条件的K线处。
例1:
DRAWHORIZONTALLINE(C>O,H,COLORGREEN);
//以一根阳线的最高价为起点,画绿色水平线,截至下一根阳线为止。
例2:
DRAWHORIZONTALLINE(DATE<>REF(DATE,1),O,COLORRED);
//当天第一根k线的开盘价为起点,截至下一根满足条件的k线为止画一条红色水平线。(该实例即为画出一天的开盘价格)
画线的用下面这个替代,没有直接函数,稍微多绕了点圈子。
cd:=CROSS(AA,0.5) or CROSS(CC,0.5);
ct:=count(cd,0);
ct2:=count(cd,BARSSINCE(cd));
len:=BARSLAST(cd);
z:=ct<>ref(ct,1);
DRAWLINE(cd,L,z,ref(l,ref(len,1)+1),COLORGREEN);
DRAWLINE(ct2=ct-1 and cd,L,z,ref(l,ref(len,1)+1),COLORGREEN);
cd1:=CROSS(BB,0.5) or CROSS(DD,0.5);
ct1:=count(cd1,0);
ct21:=count(cd1,BARSSINCE(cd1));
len1:=BARSLAST(cd1);
z1:=ct1<>ref(ct1,1);
DRAWLINE(cd1,L,z1,ref(l,ref(len1,1)+1),COLORGREEN);
DRAWLINE(ct21=ct1-1 and cd1,L,z1,ref(l,ref(len1,1)+1),COLORGREEN);
老师,还是有问题,高点位置你应该用最高价,低点位置用最低价。
高点线画的位置不对

此主题相关图片如下:`04rqn5(5lzh0nocjn`2_9.png
[此贴子已经被作者于2019/10/14 11:01:19编辑过]
后面2句再改下
DRAWLINE(cd1,
H,z1,ref(
H,ref(len1,1)+1),COLORGREEN);
DRAWLINE(ct21=ct1-1 and cd1,
H,z1,ref(
H,ref(len1,1)+1),COLORGREEN);
[此贴子已经被作者于2019/10/14 11:14:50编辑过]
老师好,那指标可不可以做成设定为任何周期的预警指标?DIF>T 线或DIF<T1线发出报警。
[此贴子已经被作者于2019/10/17 14:15:04编辑过]