TR := SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IFELSE(HD>0&&HD>LD,HD,0),N,1);
DMM:= SMA(IFELSE(LD>0&&LD>HD,LD,0),N,1);
PDI:= DMP*100/TR;
MDI:= DMM*100/TR;
ADX:= SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:=(ADX+REF(ADX,M))/2;
CROSS(PDI,MDI) && TIME>0900 && TIME<1450,BK;//PDI上穿MDI开多仓。
CROSS(MDI,PDI) && TIME>0900 && TIME<1450,SK;//PDI下穿MDI开空仓。
ADX<HHV(ADX,N0)*(1-0.01*M0) || TIME>=1450,BP;//当ADX回落超过前N0周期内的M0%时平多仓。或收盘前平仓。
ADX<HHV(ADX,N0)*(1-0.01*M0) || TIME>=1450,SP;//当ADX回落超过前N0周期内的M0%时平空仓。或收盘前平仓。
参数 名称 最小 最大 缺省
1 N 2 100 14
2 M 1 100 6
3 N0 1 50 20
4 M0 1 100 20
转到金字塔(图形分析)
T := SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IF(HD>0&&HD>LD,HD,0),N,1);
DMM:= SMA(IF(LD>0&&LD>HD,LD,0),N,1);
PDI:= DMP*100/T;
MDI:= DMM*100/T;
ADX:= SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:=(ADX+REF(ADX,M))/2;
ENTERLONG:CROSS(PDI,MDI) && TIME>090100 && TIME<145000;//PDI上穿MDI开多仓。
ENTERSHORT:CROSS(MDI,PDI) && TIME>090100 && TIME<145000,SK;//PDI下穿MDI开空仓。
还差后两句,请高手帮忙
INPUT:N(14,2,100,1);
INPUT:M(6,1,100,1);
INPUT:N0(20,1,50,1);
INPUT:M0(20,1,100,2);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
DMM:= SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
PDI:= DMP*100/TR;
MDI:= DMM*100/TR;
ADX:= SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:=(ADX+REF(ADX,M))/2;
EXITLONG:ADX<HHV(ADX,N0)*(1-0.01*M0) OR TIME>=145000,TFILTER;//当ADX回落超过前N0周期内的M0%时平多仓。或收盘前平仓。
EXITSHORT:ADX<HHV(ADX,N0)*(1-0.01*M0) OR TIME>=145000,TFILTER;//当ADX回落超过前N0周期内的M0%时平空仓。或收盘前平仓。
ENTERLONG:CROSS(PDI,MDI) AND TIME>090000 AND TIME<145000,TFILTER;//PDI上穿MDI开多仓。
ENTERSHORT:CROSS(MDI,PDI) AND TIME>090000 AND TIME<145000,TFILTER;//PDI下穿MDI开空仓。