Weekly & Monthly Pivot Support Resistance Calculation Issue

 

Weekly & Monthly Pivot Support Resistance Calculation Issue

 

Hi guys, thanks for looking.

 

I manage to calculate daily support & resistance but when i try output my weekly support/resistance and monthly support/resistance, i find that my data is wrong.
I check it with a pivot ea that I got and some website which post.

 

As i need the calculation on my new ea.. i need to code it out myself..

Below is my code

 

 

   
   int CalcPeriod;
   CalcPeriod = 1440;
      
   int shift,dow; 
        double HiPrice,LoPrice,Range,ClosePrice,Pivot;
        double DS1,DS2,DS3,DR1,DR2,DR3,DPP;
        double MS1,MS2,MS3,MR1,MR2,MR3,MPP;
        double WS1,WS2,WS3,WR1,WR2,WR3,WPP;
        double onePip,pCheck,SL,TP;
   double lotSize;
        int Ticket;
        int orderNow,orderEnd;
        bool result;
        datetime StartTime;
        
        lotSize = 0.1;
   onePip = 0.0001;
 
   if( (Symbol()=="EURJPY") || (Symbol()=="AUDJPY") || (Symbol()=="GBPJPY") || (Symbol()=="USDJPY") || (Symbol()=="CADJPY") || (Symbol()=="NZDJPY") )
   {
   onePip = 0.01;
   }
 
        
   shift        = iBarShift(NULL,CalcPeriod,Time[0])+ 1;        // default = one period ago      
        StartTime       = iTime(NULL,CalcPeriod,shift);  
        dow = TimeDayOfWeek(StartTime);
        
        string dowStr;
           switch(dow)
           {
           case 5:       
         dowStr = "Sunday  ";
         break;
      case 0:
         shift  = iBarShift(NULL,CalcPeriod,Time[0])+2; // two periods ago or Friday value       
         dowStr = "Monday  ";     
         break;
      case 1:
         dowStr = "Tuesday  ";
         break;
      case 2:
         dowStr = "Wednesday  ";
         break;
      case 3:
         dowStr = "Thursday  ";
         break;
      case 4:
         dowStr = "Friday  "; 
         break; 
      }          
      
            
      /*######## DAY PERIOD ########*/
 
            ClosePrice  = NormalizeDouble(iClose(NULL,CalcPeriod,shift),4);
       HiPrice     = NormalizeDouble (iHigh(NULL,CalcPeriod,shift),4); 
       LoPrice     = NormalizeDouble (iLow(NULL,CalcPeriod,shift),4);
       Range       = HiPrice -  LoPrice;
       Pivot       = NormalizeDouble((HiPrice+LoPrice+ClosePrice)/3,4);
   
      DPP = Pivot;
      DR1 = (2*Pivot)-LoPrice;
      DS1 = (2*Pivot)-HiPrice;
      DR2 = Pivot+(DR1-DS1);
      DS2 = Pivot-(DR1-DS1); 
      DR3 = ( 2.0 * Pivot) + ( HiPrice - ( 2.0 * LoPrice ) );
      DS3 = ( 2.0 * Pivot) - ( ( 2.0 * HiPrice ) - LoPrice );
      
      /*######## DAY PERIOD ########*/
 
 
       /*######## WEEK PERIOD ########*/
 
       CalcPeriod = 10080;
       
   shift        = iBarShift(NULL,CalcPeriod,Time[0])+ 1;        // default = one period ago      
        StartTime       = iTime(NULL,CalcPeriod,shift);  
        dow = TimeDayOfWeek(StartTime);
        
        
       ClosePrice  = NormalizeDouble(iClose(NULL,CalcPeriod,shift),4);
       HiPrice     = NormalizeDouble (iHigh(NULL,CalcPeriod,shift),4); 
       LoPrice     = NormalizeDouble (iLow(NULL,CalcPeriod,shift),4);
       Range       = HiPrice -  LoPrice;
       Pivot       = NormalizeDouble((HiPrice+LoPrice+ClosePrice)/3,4);
   
      WR1 = (2*Pivot)-LoPrice;
      WS1 = (2*Pivot)-HiPrice;
      WR2 = Pivot+(WR1-WS1);
      WS2 = Pivot-(WR1-WS1); 
      WR3 = ( 2.0 * Pivot) + ( HiPrice - ( 2.0 * LoPrice ) );
      WS3 = ( 2.0 * Pivot) - ( ( 2.0 * HiPrice ) - LoPrice );
      WPP = Pivot;
      
      /*######## WEEK PERIOD ########*/
      
      /*######## MONTH PERIOD ########*/
 
      
       CalcPeriod = 43200;
       
   shift        = iBarShift(NULL,CalcPeriod,Time[0])+ 1;        // default = one period ago      
        StartTime       = iTime(NULL,CalcPeriod,shift);  
        dow = TimeDayOfWeek(StartTime);
        
       ClosePrice  = NormalizeDouble(iClose(NULL,CalcPeriod,shift),4);
       HiPrice     = NormalizeDouble (iHigh(NULL,CalcPeriod,shift),4); 
       LoPrice     = NormalizeDouble (iLow(NULL,CalcPeriod,shift),4);
       Range       = HiPrice -  LoPrice;
       Pivot       = NormalizeDouble((HiPrice+LoPrice+ClosePrice)/3,4);
   
      MR1 = (2*Pivot)-LoPrice;
      MS1 = (2*Pivot)-HiPrice;
      MR2 = Pivot+(MR1-MS1);
      MS2 = Pivot-(MR1-MS1); 
      MR3 = ( 2.0 * Pivot) + ( HiPrice - ( 2.0 * LoPrice ) );
      MS3 = ( 2.0 * Pivot) - ( ( 2.0 * HiPrice ) - LoPrice );
      MPP = Pivot;
      
      /*######## MONTH PERIOD ########*/
      
      double priceAction,priceRange;
      double trendEMA;
      trendEMA = iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,0);
      
      priceAction = MarketInfo(Symbol(),MODE_BID);
      string movement = "NO_STATE";
      
      //14 price range
      priceRange = 14*onePip;
      /*DAY CHECK*/

      bool doneLot;
      
      
      Alert("WS1 : " + WS1 + " || WS2 " + WS2 + " || WS3 " + WS3);
      Alert("WR1 : " + WR1 + " || WR2 " + WR2 + " || WR3 " + WR3);

 

Can anyone tell me whats wrong with my code, i check Daily Support & Resistance & Pivot Point its fine but the weekly & monthly data is wrong..

I changed the calc Period to weekly & monthly but the calculated Weekly & Monthly S/R & Pivot Point is wrong 

 
baokydev: I changed the calc Period to weekly & monthly but the calculated Weekly & Monthly S/R & Pivot Point is wrong 

Wrong compared to what? A website?

Did you verify the Data your Weekly && Monthly pivot calculation is using?

Did you verify the calculation in your codes with a hand-held calculator?

Is your weekly / monthly Data the same as the Website? 

Reason: