TR1 := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),m);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
PDM:= SUM(IF(HD>0 AND HD>LD,HD,0),m);
MDM:= SUM(IF(LD>0 AND LD>HD,LD,0),m);
PDI:= PDM*100/TR1;
MDI:= MDM*100/TR1;
buy(CROSS(PDI,MDI),1,thisclose);
sell(CROSS(MDI,PDI) ,1,thisclose);