I PUT THE MULTIPLIER CAUSE EVERY TIME TIMEFRAME CHANGE THERE IS A DIFFERENT WAY TO CALCULATE TIME
if (TIMEFRAME==60) {MULTIPLIER=1;}
if (TIMEFRAME==30) {MULTIPLIER=2;}
if (TIMEFRAME==15) {MULTIPLIER=4;}
if (TIMEFRAME==5) {MULTIPLIER=12;}
if (TIMEFRAME==1) {MULTIPLIER=60;}
TIME1 = (TimeCurrent()% TIMEFRAME)*MULTIPLIER;
CALCULATION TIME FOR LAST BAR
THIS DIFFERENT CASES CAUSE EVERY TIMEFRAME I WANTS LOOKING
FOR THE TIME OF THE LONGEST BAR IN INFERIOR TIMEFRAME WHATEVER IF ITS LONGER TO UP OR DOWN
if(Close[i]>Open[i])
{
if(TIMEFRAME==28800) {VARIANCE=iHigh(NULL,PERIOD_D1,0)-iLow(NULL,PERIOD_D1,0);}
if(TIMEFRAME==7200) {VARIANCE=iHigh(NULL,PERIOD_H4,0)-iLow(NULL,PERIOD_H4,0);}
if(TIMEFRAME==1440) {VARIANCE=iHigh(NULL,PERIOD_H1,0)-iLow(NULL,PERIOD_H1,0);}
if (TIMEFRAME==240) {VARIANCE=iHigh(NULL,PERIOD_M30,0)-iLow(NULL,PERIOD_M30,0);}
if (TIMEFRAME==60) {VARIANCE=iHigh(NULL,PERIOD_M15,0)-iLow(NULL,PERIOD_M15,0);}
if (TIMEFRAME==30) {VARIANCE=iHigh(NULL,PERIOD_M5,0)-iLow(NULL,PERIOD_M5,0);}
if (TIMEFRAME==15) {VARIANCE=iHigh(NULL,PERIOD_M1,0)-iLow(NULL,PERIOD_M1,0);}
if (TIMEFRAME==1) {VARIANCE=iHigh(NULL,PERIOD_M1,0)-iLow(NULL,PERIOD_M1,0);}
for(VARIANCE=0; VARIANCE<Bars; VARIANCE++)/// CALCULATE THE LONGER BAR
{
TIME2=Time[VARIANCE];/// TIME OF THE LONGER BAR ( & CLOSE > OPEN )
}
}
if (Close[i]<Open[i])
{
if(TIMEFRAME==28800) {VARIANCE=iHigh(NULL,PERIOD_D1,0)-iLow(NULL,PERIOD_D1,0);}
if(TIMEFRAME==7200) {VARIANCE=iHigh(NULL,PERIOD_H4,0)-iLow(NULL,PERIOD_H4,0);}
if(TIMEFRAME==1440) {VARIANCE=iHigh(NULL,PERIOD_H1,0)-iLow(NULL,PERIOD_H1,0);}
if (TIMEFRAME==240) {VARIANCE=iHigh(NULL,PERIOD_M30,0)-iLow(NULL,PERIOD_M30,0);}
if (TIMEFRAME==60) {VARIANCE=iHigh(NULL,PERIOD_M15,0)-iLow(NULL,PERIOD_M15,0);}
if (TIMEFRAME==30) {VARIANCE=iHigh(NULL,PERIOD_M5,0)-iLow(NULL,PERIOD_M5,0);}
if (TIMEFRAME==15) {VARIANCE=iHigh(NULL,PERIOD_M1,0)-iLow(NULL,PERIOD_M1,0);}
if (TIMEFRAME==1) {VARIANCE=iHigh(NULL,PERIOD_M1,0)-iLow(NULL,PERIOD_M1,0);}
for(VARIANCE=0; VARIANCE<Bars; VARIANCE++)/// CALCULATE THE LONGER BAR
{
TIME3=Time[VARIANCE];/// TIME OF THE LONGER BAR ( & CLOSE < OPEN )
}
}
CALCULATION PRICES OF LAST BAR LIKE YOU TELLS ME LAST TIME
PRICE11=iHigh(NULL,TIMEFRAME,0);
PRICE22=iOpen(NULL,TIMEFRAME,0);
PRICE33=iLow(NULL,TIMEFRAME,0);
PRICE44=iClose(NULL,TIMEFRAME,0);
///---
CALCULATION PRICES OF CURRENT BAR
PRICE1=iMA(Symbol(),0,1,0,MODE_EMA,PRICE_CLOSE,0);
PRICE2=iMA(Symbol(),0,1,0,MODE_EMA,PRICE_OPEN,0);
CALCULATION SPEED AND THE VARIABLE DIGITS FOR BALANCING VALUES OF SPEED
if( S=="ES"|| S=="WTI" || S=="XAU" || S=="GOLD") {DIGITS =10 ;}
if(S=="ER2" ||S=="FESX" || S=="FTSE" || S=="FDAX") {DIGITS =10 ;}
if(S=="GBPJPY" ||S=="EURJPY" || S=="USDJPY" || S=="GOLD"|| S=="AUDJPY"||S=="FGBL"||
S=="NZDJPY"|| S=="CADJPY" ||S== "CHFJPY" || S=="BRN" ||S=="WTI" || S=="NQ" || S=="ES"||
S=="XAU"||S=="XAG") {DIGITS = 100;}
if(S=="GBPUSD" || S=="EURUSD" ||S=="NZDUSD" || S=="USDCHF" ||
S=="USDCAD" ||S=="AUDUSD" || S=="EURUSD" ||S=="EURCHF" || S=="EURGBP"
|| S=="EURCAD" ||S=="EURAUD" || S=="AUDNZD"|| S== "GBPCHF"|| S=="EURAUD"||
S=="GBPAUD"|| S== "AUDCAD" || S=="AUDCHF"|| S=="NZDCHF"|| S=="NZDCAD" ||S=="NZDCHF"||
S=="EURNZD"|| S=="CADCHF"|| S=="EURCAD"|| S=="USDNOK"|| S=="USDDKK"){DIGITS = 10000;}
CURRENTSP=((PRICE1-PRICE2)*DIGITS)/TIME1; ///DIGITS=10||100||10000
SPEEDUP_1=((PRICE11-PRICE22)*DIGITS)/TIME2;
SPEEDDOWN_1=((PRICE33-PRICE22)*DIGITS)/TIME3;
if(PRICE44 > PRICE22) {LASTSP=SPEEDUP_1;}
if(PRICE44 < PRICE22) {LASTSP=SPEEDDOWN_1;}
CALCULATION AFFIRMATION
MATHPOWCUR=MathPow(CURRENTSP,2);
MATHPOWLAST=MathPow(LASTSP,2);
ROOT=MathSqrt(MATHPOWCUR+MATHPOWLAST);
///---
if (CURRENTSP > 0 && LASTSP >0) {AFFIR=ROOT;}
if ((CURRENTSP < 0 && LASTSP > 0) && (MathAbs(CURRENTSP) > MathAbs(LASTSP))) {AFFIR=ROOT;}
if ((CURRENTSP >0 && LASTSP < 0) && (MathAbs(CURRENTSP) < MathAbs(LASTSP))) {AFFIR=ROOT;}
if (CURRENTSP < 0 && LASTSP < 0) {AFFIR=-ROOT;}
if ((CURRENTSP >0 && LASTSP < 0) &&(MathAbs(CURRENTSP) > MathAbs(LASTSP))) {AFFIR=-ROOT;}
if ((CURRENTSP < 0 && LASTSP > 0) &&(MathAbs(CURRENTSP) < MathAbs(LASTSP))) {AFFIR=-ROOT;}