以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  请老师帮助改为金字塔可用  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=172391)

--  作者:lgxyp
--  发布时间:2019/10/14 8:55:04
--  请老师帮助改为金字塔可用
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);

--  作者:FireScript
--  发布时间:2019/10/14 9:13:21
--  
部分代码替换下,其实就是一个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发下我看下。

--  作者:lgxyp
--  发布时间:2019/10/14 9:55:10
--  
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线为止画一条红色水平线。(该实例即为画出一天的开盘价格)

--  作者:FireScript
--  发布时间:2019/10/14 10:04:08
--  
 没有直接替换的函数。 我先试下。

--  作者:lgxyp
--  发布时间:2019/10/14 10:04:42
--  
谢谢!添麻烦了。
--  作者:FireScript
--  发布时间:2019/10/14 10:44:24
--  
画线的用下面这个替代,没有直接函数,稍微多绕了点圈子。

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);


--  作者:lgxyp
--  发布时间:2019/10/14 10:57:14
--  
老师,还是有问题,高点位置你应该用最高价,低点位置用最低价。
--  作者:lgxyp
--  发布时间:2019/10/14 11:00:48
--  
高点线画的位置不对
图片点击可在新窗口打开查看此主题相关图片如下:`04rqn5(5lzh0nocjn`2_9.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/10/14 11:01:19编辑过]

--  作者:FireScript
--  发布时间:2019/10/14 11:14:30
--  
 后面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编辑过]

--  作者:lgxyp
--  发布时间:2019/10/17 14:13:22
--  
老师好,那指标可不可以做成设定为任何周期的预警指标?DIF>T 线或DIF<T1线发出报警。
[此贴子已经被作者于2019/10/17 14:15:04编辑过]