MA1=7;
MA2=15,
MA3=45;
中波=42;
大波=72;
短波=6;
DRAWGBK(1,COLORRGB(0,0,20),COLORRGB(0,0,20),0);{背景}
INPUT:MA1(7,1,300),MA2(15,1,300),MA3(45,1,300);短:=6; 中:=42; 长:=72;
DRAWTEXTEX(ISLASTBAR,1,850,5,'时'+STRMID(NUMTOSTR(HOUR,0),0,2)+':'+STRMID(NUMTOSTR(MINUTE,0),0,2)+'分钟'),ALIGN1,COLORWHITE;{显时间}
DRAWTEXT(DAY<>REF(DAY,1) AND DATATYPE<=2 AND WEEKDAY=1,LOW,' 一'),ALIGN5;
DRAWTEXT(DAY<>REF(DAY,1) AND DATATYPE<=2 AND WEEKDAY=2,LOW,' 二'),ALIGN5;
DRAWTEXT(DAY<>REF(DAY,1) AND DATATYPE<=2 AND WEEKDAY=3,LOW,' 三'),ALIGN5;
DRAWTEXT(DAY<>REF(DAY,1) AND DATATYPE<=2 AND WEEKDAY=4,LOW,' 四'),ALIGN5;
DRAWTEXT(DAY<>REF(DAY,1) AND DATATYPE<=2 AND WEEKDAY=5,LOW,' 五'),ALIGN5;
VERTLINE(DATE<>REFX(DATE,1) AND DATATYPE<2)LINEDOT,COLOR313131;
DRAWNUMBER(REFX(DAY,1)<>REFX(DAY,2) AND DATATYPE<4,LOW,REFX(DAY,2),0)ALIGN5,COLORGRAY;{显日期}
K线根数:=(BARSLAST(DATE<>REF(DATE,1))+1),LINETHICK0;AA:=1111230;
OC:=(OPEN+CLOSE)/2; LH:=(LOW+HIGH)/2; CO:=CLOSE-OPEN; HL:=HIGH-LOW; 均价:=(OPEN+CLOSE+LOW+HIGH)/4; 均线:=MA(均价,2);
AC:=CLOSE;a0:=0;a1:=0;a2:=0;a3:=0;
H1:=EMA(HIGH,短); L1:=EMA(LOW,短);H2:=MA(HIGH,中); L2:=MA(LOW,中);H3:=MA(HIGH,长); L3:=MA(LOW,长);
FOR I=1+短 TO DATACOUNT DO BEGIN
IF ac[I]>H1[I-1] THEN a1[I]:=1;ELSE IF aC[I]<L1[I-1] THEN a1[I]:=-1;ELSE a1[I]:=a1[I-1];END;
FOR I=2+中 TO DATACOUNT DO BEGIN
IF ac[I]>H2[I-1] THEN a2[I]:=1;ELSE IF aC[I]<L2[I-1] THEN a2[I]:=-1;ELSE a2[I]:=a2[I-1];END;
FOR I=3+长 TO DATACOUNT DO BEGIN
IF AC[I]>H3[I-1] THEN a3[I]:=1;ELSE IF AC[I]<L3[I-1] THEN a3[I]:=-1;ELSE a3[I]:=a3[I-1];END;
转1:=IF(a1=1,L1,H1),COLOR2A2A2A;多1:=a1=1;空1:=a1=-1;卖1:=CROSS(0,A1);买1:=CROSS(A1,0);
转2:=IF(a2=1,L2,H2),COLOR464646;多2:=a2=1;空2:=a2=-1;卖2:=CROSS(0,A2);买2:=CROSS(A2,0);
转3:=IF(a3=1,L3,H3),COLOR757575;多3:=a3=1;空3:=a3=-1;卖3:=CROSS(0,A3);买3:=CROSS(A3,0);
INPUT:中波(42,1,45),大波(72,30,80),短波(6,1,20);
新H1:=WMA(HIGH,中波); 新L1:=WMA(LOW,中波); 新H2:=EMA(HIGH,大波); 新L2:=EMA(LOW,大波);新H3:=WMA(HIGH,短波); 新L3:=WMA(LOW,短波);
中:=EMA(LH,中波)COLORMAGENTA,LINETHICK2;
AC:=OC;新a1:=0;新a2:=0;新a3:=0;
FOR I=中波+2 TO DATACOUNT DO BEGIN
IF ac[I]>新H1[I-1] THEN 新a1[I]:=1;ELSE IF aC[I]<新L1[I-1] THEN 新a1[I]:=-1;ELSE 新a1[I]:=新a1[I-1];END;
FOR I=大波+2 TO DATACOUNT DO BEGIN
IF ac[I]>新H2[I-1] THEN 新a2[I]:=1;ELSE IF aC[I]<新L2[I-1] THEN 新a2[I]:=-1;ELSE 新a2[I]:=新a2[I-1];END;
FOR I=短波+2 TO DATACOUNT DO BEGIN
IF ac[I]>新H3[I-1] THEN 新a3[I]:=1;ELSE IF aC[I]<新L3[I-1] THEN 新a3[I]:=-1;ELSE 新a3[I]:=新a3[I-1];END;
新转1:=IF(新a1=1,新L1,新H1);DAT1:=1111230;DATT1:=(DATE<DAT1 AND DATE<AA);新多1:=OC>=新转1;新空1:=OC<=新转1;新买1:=CROSS(OC,新转1);新卖1:=CROSS(新转1,OC);
新转2:=IF(新a2=1,新L2,新H2);新多2:=OC>=新转2;新空2:=OC<=新转2;新买2:=CROSS(OC,新转2);新卖2:=CROSS(新转2,OC);
新转3:=IF(新a3=1,新L3,新H3);新多3:=OC>=新转3;新空3:=OC<=新转3;新买3:=CROSS(OC,新转3);新卖3:=CROSS(新转3,OC);
{-------3D红蓝实心空心K线-------------------------------------------------}
DAT:=1111230; DATT:=(DATE<DAT AND DATE<AA); 阴:=OPEN>CLOSE; 涨:=多2 AND DATT;跌:=空2 AND DATT;
IF DATACOUNT<=短 THEN KLINE(OPEN,HIGH,LOW,CLOSE,0);
STICKLINE(涨,LOW,HIGH,0,0),COLORRED;
STICKLINE(涨,OPEN,CLOSE,8,1),COLORRED;
STICKLINE(跌,LOW,HIGH,0,0),COLORFF8800;
STICKLINE(跌,OPEN,CLOSE,8,1),COLORFF8800;
STICKLINE(涨 AND 阴,CLOSE,OPEN,8,0),COLOR0000B0;
STICKLINE(涨 AND 阴,CLOSE,OPEN,6,0),COLORRED;
STICKLINE(涨 AND 阴 AND DATT1,CLOSE,OPEN,4,0),COLOR4444FF;
STICKLINE(涨 AND 阴,CLOSE,OPEN,2,0),COLOR6868FF;
STICKLINE(跌 AND 阴 AND DATT1,CLOSE,OPEN,8,0),COLORFF5B00;
STICKLINE(跌 AND 阴,CLOSE,OPEN,6,0),COLORFF8800;
STICKLINE(跌 AND 阴,CLOSE,OPEN,4,0),COLORFFAA00;
STICKLINE(跌 AND 阴 AND DATT1,CLOSE,OPEN,2,0),COLORFFCC00;
DRAWNUMBER(ISLASTBAR,CLOSE,CLOSE,2),COLORYELLOW;{显现价}
偏:=SUM(HIGH-LOW,10)/10;
里面有数组越界啊
是逻辑设计的问题吧!
显示数组越界操作
因为里面有未来函数
好像也有向下取值的语句,就在for循环的地方,下标超了,所以越界。
描述一下你策略的思路,节省修改者的时间.
向上,K线的收盘价越过一根均价线后,以最低价为支撑均价,翻红,
向下,K线的收盘价跌破支撑均价线后,以最高价为压力线,翻绿,以此循环.
最怪的是有的月份正常,有的不正常!