RUNMODE:0;//运行模式为逐K线计算
VARIABLE:arrSHV[] = 0;//短期波峰数组
VARIABLE:arrSHT[] = 0;//短期波峰位置数组
VARIABLE:arrSLV[] = 0;//短期波谷数组
VARIABLE:arrSLT[] = 0;//短期波谷位置数组
//===短期波峰===================================================================================
SHIF:=H[BARPOS-2] <= H[BARPOS-1] AND H[BARPOS-1] >= H[BARPOS];//判断波峰的条件
IF SHIF THEN BEGIN
arrSHV:=H[BARPOS-1]; //波峰值
arrSHT:=BARPOS-1; //波峰位置
END
SHVN:=UBOUND(arrSHV),NODRAW;//波峰个数
SHTN:=UBOUND(arrSHT),NODRAW;//波峰位置个数
SH:arrSHV;//短期波峰轨道
//检查如上代码计算结果是否正确
EXPLAIN(SHVN>0,'最近波峰:'&NUMTOSTR(arrSHV[SHVN],2)),COLORYELLOW;
EXPLAIN(SHVN>0,'次近波峰:'&NUMTOSTR(arrSHV[SHVN-1],2)),COLORRED;
EXPLAIN(SHVN>0,'第三近波峰:'&NUMTOSTR(arrSHV[SHVN-2],2)),COLORWHITE;
EXPLAIN(SHTN>0,'最近波峰周期:'&NUMTOSTR(arrSHT[SHTN],0)),COLORYELLOW;
EXPLAIN(SHTN>0,'次近波峰周期:'&NUMTOSTR(arrSHT[SHTN-1],0)),COLORRED;
EXPLAIN(SHTN>0,'第三近波峰周期:'&NUMTOSTR(arrSHT[SHTN-2],0)),COLORWHITE;
EXPLAIN(SHVN>0,'第一个波峰:'&NUMTOSTR(arrSHV[1],2)),COLORYELLOW;
EXPLAIN(SHVN>0,'第二个波峰:'&NUMTOSTR(arrSHV[2],2)),COLORRED;
EXPLAIN(SHVN>0,'第三个波峰:'&NUMTOSTR(arrSHV[3],2)),COLORWHITE;
EXPLAIN(SHVN>0,'第四个波峰:'&NUMTOSTR(arrSHV[4],2)),COLORWHITE;
EXPLAIN(SHTN>0,'第一个波峰周期:'&NUMTOSTR(arrSHT[1],0)),COLORYELLOW;
EXPLAIN(SHTN>0,'第二个波峰周期:'&NUMTOSTR(arrSHT[2],0)),COLORRED;
EXPLAIN(SHTN>0,'第三个波峰周期:'&NUMTOSTR(arrSHT[3],0)),COLORWHITE;
EXPLAIN(SHTN>0,'第四个波峰周期:'&NUMTOSTR(arrSHT[4],0)),COLORWHITE;
//===短期波谷=====================================================================================
SLIF:=L[BARPOS-2] >= L[BARPOS-1] AND L[BARPOS-1] <= L[BARPOS];//判断波谷的条件
IF SLIF THEN BEGIN
arrSLV:=L[BARPOS-1]; //波谷值
arrSLT:=BARPOS-1; //波谷位置
END
SLVN:=UBOUND(arrSLV),NODRAW;//波谷个数
SLTN:=UBOUND(arrSLT),NODRAW;//波谷位置个数
SL:arrSLV;//短期波谷轨道
//检查如上代码计算结果是否正确
EXPLAIN(SLVN>0,'最近波谷:'&NUMTOSTR(arrSLV[SLVN],2)),COLORYELLOW;
EXPLAIN(SLVN>0,'次近波谷:'&NUMTOSTR(arrSLV[SLVN-1],2)),COLORRED;
EXPLAIN(SLVN>0,'第三近波谷:'&NUMTOSTR(arrSLV[SLVN-2],2)),COLORWHITE;
EXPLAIN(SLTN>0,'最近波谷周期:'&NUMTOSTR(arrSLT[SLTN],0)),COLORYELLOW;
EXPLAIN(SLTN>0,'次近波谷周期:'&NUMTOSTR(arrSLT[SLTN-1],0)),COLORRED;
EXPLAIN(SLTN>0,'第三近波谷周期:'&NUMTOSTR(arrSLT[SLTN-2],0)),COLORWHITE;
EXPLAIN(SLVN>0,'第一个波谷:'&NUMTOSTR(arrSLV[1],2)),COLORYELLOW;
EXPLAIN(SLVN>0,'第二个波谷:'&NUMTOSTR(arrSLV[2],2)),COLORRED;
EXPLAIN(SLVN>0,'第三个波谷:'&NUMTOSTR(arrSLV[3],2)),COLORWHITE;
EXPLAIN(SLVN>0,'第四个波谷:'&NUMTOSTR(arrSLV[4],2)),COLORWHITE;
EXPLAIN(SLTN>0,'第一个波谷周期:'&NUMTOSTR(arrSLT[1],0)),COLORYELLOW;
EXPLAIN(SLTN>0,'第二个波谷周期:'&NUMTOSTR(arrSLT[2],0)),COLORRED;
EXPLAIN(SLTN>0,'第三个波谷周期:'&NUMTOSTR(arrSLT[3],0)),COLORWHITE;
EXPLAIN(SLTN>0,'第四个波谷周期:'&NUMTOSTR(arrSLT[4],0)),COLORWHITE;
看过了,但还是不知道如何解决问题!请老师帮助,莫非需要用REMOVEBOUND(X,D),来解决问题?
删除数组的数据:
REMOVEBOUND(X,D),X为数组名称,D为数据的下标
例如:REMOVEBOUND(X,5);表示删除数组X的第5个数组数据
我试着在上面的代码里加了条件语句让它从K线大于3时才开始运算,也不行的,怎么办?
IF DATACOUNT > 3 THEN BEGIN
...
END
RUNMODE:0;//运行模式为逐K线计算
VARIABLE:arrSHV[] = 0;//短期波峰数组
VARIABLE:arrSHT[] = 0;//短期波峰位置数组
VARIABLE:arrSLV[] = 0;//短期波谷数组
VARIABLE:arrSLT[] = 0;//短期波谷位置数组
//===短期波峰===================================================================================
IF DATACOUNT > 3 THEN BEGIN
SHIF:=H[BARPOS-2] <= H[BARPOS-1] AND H[BARPOS-1] >= H[BARPOS];//判断波峰的条件
IF SHIF THEN BEGIN
arrSHV:=H[BARPOS-1]; //波峰值
arrSHT:=BARPOS-1; //波峰位置
END
SHVN:=UBOUND(arrSHV),NODRAW;//波峰个数
SHTN:=UBOUND(arrSHT),NODRAW;//波峰位置个数
SH:arrSHV;//短期波峰轨道
//检查如上代码计算结果是否正确
EXPLAIN(SHVN>0,'最近波峰:'&NUMTOSTR(arrSHV[SHVN],2)),COLORYELLOW;
EXPLAIN(SHVN>0,'次近波峰:'&NUMTOSTR(arrSHV[SHVN-1],2)),COLORRED;
EXPLAIN(SHVN>0,'第三近波峰:'&NUMTOSTR(arrSHV[SHVN-2],2)),COLORWHITE;
EXPLAIN(SHTN>0,'最近波峰周期:'&NUMTOSTR(arrSHT[SHTN],0)),COLORYELLOW;
EXPLAIN(SHTN>0,'次近波峰周期:'&NUMTOSTR(arrSHT[SHTN-1],0)),COLORRED;
EXPLAIN(SHTN>0,'第三近波峰周期:'&NUMTOSTR(arrSHT[SHTN-2],0)),COLORWHITE;
EXPLAIN(SHVN>0,'第一个波峰:'&NUMTOSTR(arrSHV[1],2)),COLORYELLOW;
EXPLAIN(SHVN>0,'第二个波峰:'&NUMTOSTR(arrSHV[2],2)),COLORRED;
EXPLAIN(SHVN>0,'第三个波峰:'&NUMTOSTR(arrSHV[3],2)),COLORWHITE;
EXPLAIN(SHVN>0,'第四个波峰:'&NUMTOSTR(arrSHV[4],2)),COLORWHITE;
EXPLAIN(SHTN>0,'第一个波峰周期:'&NUMTOSTR(arrSHT[1],0)),COLORYELLOW;
EXPLAIN(SHTN>0,'第二个波峰周期:'&NUMTOSTR(arrSHT[2],0)),COLORRED;
EXPLAIN(SHTN>0,'第三个波峰周期:'&NUMTOSTR(arrSHT[3],0)),COLORWHITE;
EXPLAIN(SHTN>0,'第四个波峰周期:'&NUMTOSTR(arrSHT[4],0)),COLORWHITE;
//===短期波谷=====================================================================================
SLIF:=L[BARPOS-2] >= L[BARPOS-1] AND L[BARPOS-1] <= L[BARPOS];//判断波谷的条件
IF SLIF THEN BEGIN
arrSLV:=L[BARPOS-1]; //波谷值
arrSLT:=BARPOS-1; //波谷位置
END
SLVN:=UBOUND(arrSLV),NODRAW;//波谷个数
SLTN:=UBOUND(arrSLT),NODRAW;//波谷位置个数
SL:arrSLV;//短期波谷轨道
//检查如上代码计算结果是否正确
EXPLAIN(SLVN>0,'最近波谷:'&NUMTOSTR(arrSLV[SLVN],2)),COLORYELLOW;
EXPLAIN(SLVN>0,'次近波谷:'&NUMTOSTR(arrSLV[SLVN-1],2)),COLORRED;
EXPLAIN(SLVN>0,'第三近波谷:'&NUMTOSTR(arrSLV[SLVN-2],2)),COLORWHITE;
EXPLAIN(SLTN>0,'最近波谷周期:'&NUMTOSTR(arrSLT[SLTN],0)),COLORYELLOW;
EXPLAIN(SLTN>0,'次近波谷周期:'&NUMTOSTR(arrSLT[SLTN-1],0)),COLORRED;
EXPLAIN(SLTN>0,'第三近波谷周期:'&NUMTOSTR(arrSLT[SLTN-2],0)),COLORWHITE;
EXPLAIN(SLVN>0,'第一个波谷:'&NUMTOSTR(arrSLV[1],2)),COLORYELLOW;
EXPLAIN(SLVN>0,'第二个波谷:'&NUMTOSTR(arrSLV[2],2)),COLORRED;
EXPLAIN(SLVN>0,'第三个波谷:'&NUMTOSTR(arrSLV[3],2)),COLORWHITE;
EXPLAIN(SLVN>0,'第四个波谷:'&NUMTOSTR(arrSLV[4],2)),COLORWHITE;
EXPLAIN(SLTN>0,'第一个波谷周期:'&NUMTOSTR(arrSLT[1],0)),COLORYELLOW;
EXPLAIN(SLTN>0,'第二个波谷周期:'&NUMTOSTR(arrSLT[2],0)),COLORRED;
EXPLAIN(SLTN>0,'第三个波谷周期:'&NUMTOSTR(arrSLT[3],0)),COLORWHITE;
EXPLAIN(SLTN>0,'第四个波谷周期:'&NUMTOSTR(arrSLT[4],0)),COLORWHITE;
END