Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共33 条记录, 每页显示 10 条, 页签: [1] [2][3][4]
[浏览完整版]

标题:烦请老师帮忙修改一下

1楼
llz1124 发表于:2020/12/6 17:05:48
以下含有未来函数的画线代码在金字塔中编译可以通过,但是显示结果不对,烦请老师帮忙修改一下。另外请在高低点处 加上数值显示。比如数值20处,显示高点值3728.

E1:=REF(HIGH,5)=HHV(HIGH,11);
E2:=FILTER(E1,5);
E3:=BACKSET(E2,6);
E4:=FILTER(E3,5);
E5:=MA(CLOSE,5);
E6:=MA(CLOSE,10);
E7:=REF(HIGH,5)=HHV(HIGH,11);
E8:=REF(LOW,5)=LLV(LOW,11);
E9:=BACKSET(E7,6)>BACKSET(E7,5);
E10:=BACKSET(E8,6)>BACKSET(E8,5);
E11:=IF(BARSLAST(E9)=BARSLAST(E10) AND E5>E6,E9,IF(BARSLAST(E10)>BARSLAST(E9),E9,0));
E12:=IF(BARSLAST(E9)=BARSLAST(E10) AND E6>E5,E10,IF(BARSLAST(E9)>BARSLAST(E10),E10,0));
E13:=E11 AND HIGH=HHV(HIGH,BARSLAST(E12));
E14:=E12 AND LOW=LLV(LOW,BARSLAST(E11));
E15:=IF(E13,HIGH,DRAWNULL);
E16:=IF(E14,LOW,DRAWNULL);
E17:=LOW>REF(HIGH,1) AND DAY!=REF(DAY,1);
E18:=HIGH<REF(LOW,1) AND DAY!=REF(DAY,1);
E19:=REF(LOW,BARSLAST(E17));
E20:=REF(HIGH,BARSLAST(E18));
E21:=REF(HIGH,BARSLAST(E13));
E22:=REF(LOW,BARSLAST(E13));
E23:=REF(HIGH,BARSLAST(E13)+1);
E24:=REF(LOW,BARSLAST(E13)+1);
E25:=REF(HIGH,BARSLAST(E13)+2);
E26:=REF(LOW,BARSLAST(E13)+2);
E27:=REF(HIGH,BARSLAST(E14));
E28:=REF(LOW,BARSLAST(E14));
E29:=REF(HIGH,BARSLAST(E14)+1);
E30:=REF(LOW,BARSLAST(E14)+1);
E31:=REF(HIGH,BARSLAST(E14)+2);
E32:=REF(LOW,BARSLAST(E14)+2);
E33:=IF(E22<=E24,E25,E23);
E34:=IF(E23<E22,E22,IF(E22<=E24,E26,E24));
E35:=IF(E30>E27,E27,IF(E27>=E29,E31,E29));
E36:=IF(E27>=E29,E32,E30);
E37:=E21>E35 AND E13;
E38:=E28<E34 AND E14;
E39:=E37 AND E21>E27 AND E22>E28 AND E24>E28;
E40:=E38 AND E28<E22 AND E27<E21 AND E29<E21;
E41:=HIGH<=REF(HIGH,1) AND LOW>=REF(LOW,1) OR (HIGH>=REF(HIGH,1) AND LOW<=REF(LOW,1));
E42:=COUNT(E41,BARSLAST(E14));
E43:=COUNT(E41,BARSLAST(E13));
E44:=COUNT(E17,BARSLAST(E14));
E45:=COUNT(E18,BARSLAST(E13));
E46:=IF(E42>0,E42+2,IF(E43,E43+2,3));
E47:=IF(E44,E46-E44,IF(E45,E46-E45,E46));
E48:=E39 AND BARSLAST(E40)>E47;
E49:=E40 AND BARSLAST(E39)>E47;
E50:=E13 AND REF(HIGH,BARSLAST(E13))>=REF(HIGH,BARSLAST(E48)) AND BARSLAST(E49)>BARSLAST(E48) OR (E37 AND COUNT(E17,BARSLAST(E38))>0 AND REF(HIGH,BARSLAST(E37))>REF(HIGH,BARSLAST(E48)));
E51:=E14 AND REF(LOW,BARSLAST(E14))<=REF(LOW,BARSLAST(E49)) AND BARSLAST(E48)>BARSLAST(E49) OR (E38 AND COUNT(E18,BARSLAST(E37))>0 AND REF(LOW,BARSLAST(E38))<REF(HIGH,BARSLAST(E49)));
E52:=IF(BARSLAST(E51)>BARSLAST(E50),REF(HIGH,BARSLAST(E50)),REF(HIGH,BARSLAST(E51)));
E53:=IF(BARSLAST(E50)>BARSLAST(E51),REF(LOW,BARSLAST(E51)),REF(LOW,BARSLAST(E50)));
E54:=E50 AND HIGH=HHV(E52,BARSLAST(E51)+1) AND HIGH>REF(HIGH,1) AND BARSLAST(E51)>BARSLAST(E50);
E55:=E4 AND LOW=LLV(E53,BARSLAST(E50)+1) AND LOW<REF(LOW,1) AND BARSLAST(E50)>BARSLAST(E51);
E56:=E54 OR (E13 AND REF(HIGH,BARSLAST(E13))>REF(HIGH,BARSLAST(E54)) AND BARSLAST(E55)>BARSLAST(E54));
E57:=E55 OR (E14 AND REF(LOW,BARSLAST(E14))<REF(LOW,BARSLAST(E55)) AND BARSLAST(E54)>BARSLAST(E55));
高点:IF(E48,HIGH,DRAWNULL),POINTDOT,COLORGREEN,LINETHICK4;
低点:IF(E49,LOW,DRAWNULL),POINTDOT,COLORYELLOW,LINETHICK4;
上:DRAWLINE(E49,LOW,E48,HIGH,0),COLORGRAY,LINETHICK2;  
此主题相关图片如下:1.png
按此在新窗口浏览图片

此主题相关图片如下:2.png
按此在新窗口浏览图片

下:DRAWLINE(E48,HIGH,E49,LOW,0),COLORGRAY,LINETHICK2;
E58:=BARSLAST(E48);
E59:=BARSLAST(E49);
DRAWNUMBER(E49,LOW,E58,0),COLORYELLOW;
DRAWNUMBER(E48,HIGH*1.005,E59,0),COLORGREEN;
DRAWNUMBER(ISLASTBAR,IF(BARSLAST(E48)>BARSLAST(E49),LOW,HIGH*1.005),MIN(E58,E59),0),COLORMAGENTA;
//-----------------------------------------------------------------------------------------------------------------------------------
E1赋值:5日前的最高价=11日内最高价的最高值
E2赋值:E1的5日过滤
E3赋值:若E2则将最近6周期置为1
E4赋值:E3的5日过滤
E5赋值:收盘价的5日简单移动平均
E6赋值:收盘价的10日简单移动平均
E7赋值:5日前的最高价=11日内最高价的最高值
E8赋值:5日前的最低价=11日内最低价的最低值
E9赋值:若E7则将最近6周期置为1>若E7则将最近5周期置为1
E10赋值:若E8则将最近6周期置为1>若E8则将最近5周期置为1
E11赋值:如果上次E9距今天数=上次E10距今天数ANDE5>E6,返回E9,否则返回如果上次E10距今天数>上次E9距今天数,返回E9,否则返回0
E12赋值:如果上次E9距今天数=上次E10距今天数ANDE6>E5,返回E10,否则返回如果上次E9距今天数>上次E10距今天数,返回E10,否则返回0
E13赋值:E11 AND 最高价=上次E12距今天数日内最高价的最高值
E14赋值:E12 AND 最低价=上次E11距今天数日内最低价的最低值
E15赋值:如果E13,返回最高价,否则返回无效数
E16赋值:如果E14,返回最低价,否则返回无效数
E17赋值:最低价>1日前的最高价 AND 日不等于1日前的日
E18赋值:最高价<1日前的最低价 AND 日不等于1日前的日
E19赋值:上次E17距今天数日前的最低价
E20赋值:上次E18距今天数日前的最高价
E21赋值:上次E13距今天数日前的最高价
E22赋值:上次E13距今天数日前的最低价
E23赋值:上次E13距今天数+1日前的最高价
E24赋值:上次E13距今天数+1日前的最低价
E25赋值:上次E13距今天数+2日前的最高价
E26赋值:上次E13距今天数+2日前的最低价
E27赋值:上次E14距今天数日前的最高价
E28赋值:上次E14距今天数日前的最低价
E29赋值:上次E14距今天数+1日前的最高价
E30赋值:上次E14距今天数+1日前的最低价
E31赋值:上次E14距今天数+2日前的最高价
E32赋值:上次E14距今天数+2日前的最低价
E33赋值:如果E22<=E24,返回E25,否则返回E23
E34赋值:如果E23<E22,返回E22,否则返回如果E22<=E24,返回E26,否则返回E24
E35赋值:如果E30>E27,返回E27,否则返回如果E27>=E29,返回E31,否则返回E29
E36赋值:如果E27>=E29,返回E32,否则返回E30
E37赋值:E21>E35 AND E13
E38赋值:E28<E34 AND E14
E39赋值:E37 AND E21>E27 AND E22>E28 AND E24>E28
E40赋值:E38 AND E28<E22 AND E27<E21 AND E29<E21
E41赋值:最高价<=1日前的最高价 AND 最低价>=1日前的最低价 OR (最高价>=1日前的最高价 AND 最低价<=1日前的最低价)
E42赋值:统计上次E14距今天数日中满足E41的天数
E43赋值:统计上次E13距今天数日中满足E41的天数
E44赋值:统计上次E14距今天数日中满足E17的天数
E45赋值:统计上次E13距今天数日中满足E18的天数
E46赋值:如果E42>0,返回E42+2,否则返回如果E43,返回E43+2,否则返回3
E47赋值:如果E44,返回E46-E44,否则返回如果E45,返回E46-E45,否则返回E46
E48赋值:E39 AND 上次E40距今天数>E47
E49赋值:E40 AND 上次E39距今天数>E47
E50赋值:E13 AND 上次E13距今天数日前的最高价>=上次E48距今天数日前的最高价 AND 上次E49距今天数>上次E48距今天数 OR (E37 AND 统计上次E38距今天数日中满足E17的天数>0 AND 上次E37距今天数日前的最高价>上次E48距今天数日前的最高价)
E51赋值:E14 AND 上次E14距今天数日前的最低价<=上次E49距今天数日前的最低价 AND 上次E48距今天数>上次E49距今天数 OR (E38 AND 统计上次E37距今天数日中满足E18的天数>0 AND 上次E38距今天数日前的最低价<上次E49距今天数日前的最高价)
E52赋值:如果上次E51距今天数>上次E50距今天数,返回上次E50距今天数日前的最高价,否则返回上次E51距今天数日前的最高价
E53赋值:如果上次E50距今天数>上次E51距今天数,返回上次E51距今天数日前的最低价,否则返回上次E50距今天数日前的最低价
E54赋值:E50 AND 最高价=上次E51距今天数+1日内E52的最高值 AND 最高价>1日前的最高价 AND 上次E51距今天数>上次E50距今天数
E55赋值:E4 AND 最低价=上次E50距今天数+1日内E53的最低值 AND 最低价<1日前的最低价 AND 上次E50距今天数>上次E51距今天数
E56赋值:E54 OR (E13 AND 上次E13距今天数日前的最高价>上次E54距今天数日前的最高价 AND 上次E55距今天数>上次E54距今天数)
E57赋值:E55 OR (E14 AND 上次E14距今天数日前的最低价<上次E55距今天数日前的最低价 AND 上次E54距今天数>上次E55距今天数)
输出高点:如果E48,返回最高价,否则返回无效数,POINTDOT,画绿色,线宽为4
输出低点:如果E49,返回最低价,否则返回无效数,POINTDOT,画黄色,线宽为4
输出上:当满足条件E49时,在最低价位置画直线起点,当满足条件E48时,在最高价位置画直线终点,0表示是否延长.,画深灰色,线宽为2
输出下:当满足条件E48时,在最高价位置画直线起点,当满足条件E49时,在最低价位置画直线终点,0表示是否延长.,画深灰色,线宽为2
E58赋值:上次E48距今天数
E59赋值:上次E49距今天数
当满足条件E49时,在最低价位置书写数字,画黄色
当满足条件E48时,在最高价*1.005位置书写数字,画绿色
当满足条件是否最后一个周期时,在如果上次E48距今天数>上次E49距今天数,返回最低价,否则返回最高价*1.005位置书写数字,画洋红色




2楼
llz1124 发表于:2020/12/6 17:25:22
E50--E57 行代码无用
3楼
FireScript 发表于:2020/12/7 9:50:06
 因为你这个代码逻辑本身比较绕,不是直接能一目了然理清的,你最好能先定位到具体哪里有问题,否则你这样直接说代码不对,我们几乎乜办法定位到错误的。我本地是没有其他软件可以运行这段代码来作为参照的。
4楼
llz1124 发表于:2020/12/7 10:05:29
老师,我发现是 E49 所对应的点找不到 。
5楼
FireScript 发表于:2020/12/7 10:40:00
 E49是直接控制画线的,但是E49几乎和前面所有变量都相关。

你这个原先是在哪个软件上的运行的。
[此贴子已经被作者于2020/12/7 10:40:21编辑过]
6楼
llz1124 发表于:2020/12/7 10:53:08
通达信
7楼
llz1124 发表于:2020/12/7 13:34:13
使用的函数在两个软件中含义相同,E48,E49 引用的前面的变量也都一样。实在想不出问题出在哪里。
8楼
FireScript 发表于:2020/12/7 15:35:35
 E42:=COUNT(E41,BARSLAST(E14)+1);
E43:=COUNT(E41,BARSLAST(E13)+1);
E44:=COUNT(E17,BARSLAST(E14)+1);
E45:=COUNT(E18,BARSLAST(E13)+1);

这样改下。但是还是没办法一致,代码太绕了,一点点排查没办法排查完。
9楼
llz1124 发表于:2020/12/7 16:41:48
这样一改E48点也变了,估计问题不在这里 。找E49点 是不是在哪里要增加 backset 之类的?
10楼
FireScript 发表于:2020/12/7 17:13:20
 1.数据量差异有影响,但是我不熟悉通达信那个,不知道怎么限制K线数据量。
2.BARSLAST 是肯定必须+1。你前面用到这个函数的地方估计也要改下。
共33 条记录, 每页显示 10 条, 页签: [1] [2][3][4]


Powered By Dvbbs Version 8.3.0
Processed in .04688 s, 3 queries.