Tick_on_Chart_multi3





//+--------------------------------------------------------------------------------------
//    10/11/2007 - Modified to work with IBFX mini accounts and dropped USDJPY references
//    10/11/2007 - Corrected local/global variable usage in init() and initialization of tik & t

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Green //gbpusd
#property indicator_color2 Red //chart limits
#property indicator_color3 White //eurusd
#property indicator_color4 Yellow //usdchf

extern int  period=200;
extern bool IBFXMiniAcct=true;

double      ExtMapBuffer1[],ExtMapBuffer2[],ExtMapBuffer3[],ExtMapBuffer4[];
int         tik=0,t=0;
double      bufGU[],MaxB,MinB=1000, bufEU[],bufUCH[];
double      startpricegbpusd,startpriceeurusd,startpriceusdchf;
double      avgvalue;
string      eurusd="EURUSD",gbpusd="GBPUSD",usdchf="USDCHF";

//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_SECTION);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"GBPUSD Tick");
   SetIndexStyle(1,DRAW_NONE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexLabel(1,"Chart Limit");
   SetIndexStyle(2,DRAW_SECTION);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexLabel(2,"EURUSD Tick");
   SetIndexStyle(3,DRAW_SECTION);
   SetIndexBuffer(3,ExtMapBuffer4);   
   SetIndexLabel(3,"USDCHF Tick");

   if(IBFXMiniAcct)
      {
      eurusd="EURUSDm";
      gbpusd="GBPUSDm";
      usdchf="USDCHFm";
      }
   startpricegbpusd=MarketInfo(gbpusd,MODE_BID);
   startpriceeurusd=MarketInfo(eurusd,MODE_BID);
   startpriceusdchf=MarketInfo(usdchf,MODE_BID);
   return(0);
  }

//+------------------------------------------------------------------+
int start()
  {
   int i,b;   
   double bidgbpusd=MarketInfo(gbpusd,MODE_BID);
   double pointgbpusd=MarketInfo(gbpusd,MODE_POINT);
   double bideurusd=MarketInfo(eurusd,MODE_BID);
   double pointeurusd=MarketInfo(eurusd,MODE_POINT);
   double bidusdchf=MarketInfo(usdchf,MODE_BID);
   double pointusdchf=MarketInfo(usdchf,MODE_POINT);
   t++;
   b=period;
   ArrayResize(bufGU,b);
   ArrayResize(bufEU,b);
   ArrayResize(bufUCH,b);
   if(tik==0)
      {
      for(i=0;i<b;i++)
         {
         bufGU[i]=0;
         startpricegbpusd=bidgbpusd;
         bufEU[i]=0;
         startpriceeurusd=bideurusd;
         bufUCH[i]=0;
         startpriceusdchf=bidusdchf;            
         }
      ExtMapBuffer2[0]=+5;   
      ExtMapBuffer2[1]=-5;   
      tik=1;
      }
   MaxB=-1;MinB=1000;
   for(i=b-1;i>0;i--)
      {
      bufGU[i]=bufGU[i-1];
      if(MaxB<bufGU[i])MaxB=bufGU[i];
      if(MinB>bufGU[i])MinB=bufGU[i];
      bufEU[i]=bufEU[i-1];
      if(MaxB<bufEU[i])MaxB=bufEU[i];
      if(MinB>bufEU[i])MinB=bufEU[i];
      bufUCH[i]=bufUCH[i-1];
      if(MaxB<bufUCH[i])MaxB=bufUCH[i];
      if(MinB>bufUCH[i])MinB=bufUCH[i];      
      } 
   bufGU[0]=(bidgbpusd-startpricegbpusd)/pointgbpusd;
   bufEU[0]=(bideurusd-startpriceeurusd)/pointeurusd;
   bufUCH[0]=(bidusdchf-startpriceusdchf)/pointusdchf* (-1);
   for(i=0;i<b;i++)
      {
      ExtMapBuffer1[i]=bufGU[i];
      ExtMapBuffer3[i]=bufEU[i];
      ExtMapBuffer4[i]=bufUCH[i];
      }
   if(MathCeil(t/10)*10==t)
      {
      for(i=b;i<Bars;i++)
         {
         ExtMapBuffer1[i]=(bidgbpusd-startpricegbpusd)/pointgbpusd;
         ExtMapBuffer3[i]=(bideurusd-startpriceeurusd)/pointeurusd;
         ExtMapBuffer4[i]=(bidusdchf-startpriceusdchf)/pointusdchf* (-1);
         avgvalue=(
               ((bidgbpusd-startpricegbpusd)/pointgbpusd)+
               ((bideurusd-startpriceeurusd)/pointeurusd)+
               (((bidusdchf-startpriceusdchf)/pointusdchf)* (-1))
               ) /4;
         }
      ArrayInitialize(ExtMapBuffer2,avgvalue); 
      if(MaxB-avgvalue<5)ExtMapBuffer2[0]=avgvalue+5;
      if( (avgvalue-MinB)<5)ExtMapBuffer2[1]=(avgvalue)-5;
      }   
   return(0);
   }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:

Implements a curve of type DRAW_SECTION

Implements a curve of type DRAW_NONE

Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: