price movement calculator

 
I was looking at price on a weekly level and there are some really big moves. Is there an indicator that will show you the value between two points? The cross hairs give a meaning value ....... GBPUSD 12271~=12.271 (to 3rd decimal point) 5 digit = 1227 pips = 12.2 cents 1.71828 1.59435 = 0.12393 EURUSD 15022~=15.022 (to 3rd decimal point) 5 digit = 1502 pips = 15.0 cents 1.39695 1.24673 = 0.15022 AUDUSD 8507~=8.507 (to 3rd decimal point) 5 digit = 850 pips = 8.5 cents 0.95005 0.86310 = 0.08695 and not sure but ...... EURJPY 51178~=51.178 to 3rd decimal point 3 digit = 5117 pips = 51.17 cents 145.716 93.913 = 51.803 So this indicator may allow you to click between two places or maybe draw a rectangle and give you the $ amount of a move....... ?????? Something that is quicker and easier?
 

suppose this is a good place to start.   

void OnStart()
  {
//---


     string boxname = "box1";
     double speed = 0;
     double MyPips = 0;
 
     
  int      c1  = iBarShift(Symbol(),Period(),ObjectGet(boxname,OBJPROP_TIME1));
  int      c2  = iBarShift(Symbol(),Period(),ObjectGet(boxname,OBJPROP_TIME2));
  
  double   p1  = ObjectGet(boxname,OBJPROP_PRICE1);
  double   p2  = ObjectGet(boxname,OBJPROP_PRICE2);
  
  color    clr = ObjectGet(boxname,OBJPROP_COLOR);

  if (c1==c2)
  {
      speed = 0;
      MyPips = 0;
  }    
  else   
  {
    speed = ND(  (ND(p2-p1))/Point / (c2-c1)  );
    MyPips = ND(p2-p1);
  }  
   
  string   objname = "text1";
  string   objname2 = "text2";
  string   objname3 = "text3";
  string   objname4 = "text4";    
  
  string   objtext = "Price2=" + DoubleToStr(p2,Digits);
  string   objtext2 = "pips=" + DoubleToStr(ND((p1-p2)*10000),1);
  string   objtext3 = "Price1=" + DoubleToStr(p1,Digits);
  string   objtext4 = "value=$" + DoubleToStr(ND((p1-p2)*100000),2);
   
 
   if (ObjectFind(boxname) < 0  )  
  {
         Print("Missing boxname=",boxname);    
  }
  else
  {
      //  Print("Found boxname=",boxname);  
      double MyMulti = 0; 
      double MyMultiB = 0; 
      if(Digits==3)
      {
          MyMulti=30;
          MyMultiB=15;
      }
      else
      {
          MyMulti=-2;
          MyMultiB=-4;
      }
  ////////////////////////////////////////////////////////////////////  
  if (ObjectFind(objname) < 0)  
  {
    ObjectCreate(objname,OBJ_TEXT,0,Time[c2],p2+100*Point*MyMulti);
    ObjectSetText(objname,objtext,12,"Arial",clr);
  }
  else
  {
    ObjectDelete (objname);
    ObjectCreate(objname,OBJ_TEXT,0,Time[c2],p2+100*Point*MyMulti);
    ObjectSetText(objname,objtext,12,"Arial",clr);  
  }
  ////////////////////////////////////////////////////////////////////
  if (ObjectFind(objname2) < 0)  
  {
    ObjectCreate(objname2,OBJ_TEXT,0,Time[c1],p2+100*Point*MyMulti);
    ObjectSetText(objname2,objtext2,12,"Arial",clr);
  }
  else
  {
    ObjectDelete (objname2);
    ObjectCreate(objname2,OBJ_TEXT,0,Time[c1],p2+100*Point*MyMulti);
    ObjectSetText(objname2,objtext2,12,"Arial",clr);  
  }
  ////////////////////////////////////////////////////////////////////
  ////////////////////////////////////////////////////////////////////
  ////////////////////////////////////////////////////////////////////
  ////////////////////////////////////////////////////////////////////  
  if (ObjectFind(objname3) < 0)  
  {
    ObjectCreate(objname3,OBJ_TEXT,0,Time[c2],(p1)-100*Point*MyMultiB);
    ObjectSetText(objname3,objtext3,12,"Arial",clr);
  }
  else
  {
    ObjectDelete (objname3);
    ObjectCreate(objname3,OBJ_TEXT,0,Time[c2],(p1)-100*Point*MyMultiB);
    ObjectSetText(objname3,objtext3,12,"Arial",clr);  
  }
  ////////////////////////////////////////////////////////////////////
  if (ObjectFind(objname4) < 0)  
  {
    ObjectCreate(objname4,OBJ_TEXT,0,Time[c1],(p1)-100*Point*MyMultiB);
    ObjectSetText(objname4,objtext4,12,"Arial",clr);
  }
  else
  {
    ObjectDelete (objname4);
    ObjectCreate(objname4,OBJ_TEXT,0,Time[c1],(p1)-100*Point*MyMultiB);
    ObjectSetText(objname4,objtext4,12,"Arial",clr);  
  }
  ////////////////////////////////////////////////////////////////////
    
  
   // The above assumes that an object with the name "box1" already exists, 
   // and it will calculate and display the speed value, as a separate text object (named "text1").
  }
     
}    
//+------------------------------------------------------------------+
//<ND(diEnvelopesL)



//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
 double ND(double v){return(NormalizeDouble(v,Digits));}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
 double ND2(double v){return(NormalizeDouble(v,2));}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

....

 

Hey,

I may have misunderstood your question, but the crosshair feature on MT4 may be able to do what you are asking for. Just click on a point and drag, you should see 3 numbers.

The 1st number is the number of bars between the starting point and the ending point

The 2nd number is the pips value between this two points

The 3rd number is the price at the ending point.

Hope this helps! 

 
Yeile: the crosshair feature on MT4 may be able to do what you are asking for. Just click on a point and drag, you should see 3 numbers.
The 2nd number is the pips value between this two points
  1. Click on Cross button or Control-f then "click on a point and drag..."
  2. 2nd number is the number of points between. MT4 has no concept of pips and a point is 1/10 pip on a 5 digit broker.