//+------------------------------------------------------------------+
//|                                                       MIndex.mq4 |
//|                                  Copyright © 2005, Yuri Makarov. |
//|                                       http://mak.tradersmind.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Yuri Makarov."
#property link      "http://mak.tradersmind.com"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 OrangeRed

extern string Currency = "JPY";
//extern string Select1 = "Select USD-EUR-GBP or AUD";
//extern string Select2 = "Select CHF-JPY-CAD or NZD";

double EurUsd[],UsdChf[],GbpUsd[],UsdJpy[],AudUsd[],UsdCad[],NzdUsd[];
double Idx[];

int init()
{
   IndicatorShortName("Selected Currency ("+Currency+")");
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Idx);
   return(0);
}

void start()
{
  
   ArrayCopySeries(EurUsd,MODE_CLOSE,"EURUSD");
   ArrayCopySeries(GbpUsd,MODE_CLOSE,"GBPUSD");
   ArrayCopySeries(AudUsd,MODE_CLOSE,"AUDUSD");
   ArrayCopySeries(UsdChf,MODE_CLOSE,"USDCHF");
   ArrayCopySeries(UsdJpy,MODE_CLOSE,"USDJPY");
   ArrayCopySeries(UsdCad,MODE_CLOSE,"USDCAD");
   ArrayCopySeries(NzdUsd,MODE_CLOSE,"NZDUSD");

   int counted_bars=IndicatorCounted();
   double minArraySize;
   double USD;

   minArraySize = MathMin(ArraySize(EurUsd),ArraySize(GbpUsd));
   minArraySize = MathMin(ArraySize(AudUsd),minArraySize);
   minArraySize = MathMin(ArraySize(UsdChf),minArraySize);
   minArraySize = MathMin(ArraySize(UsdJpy),minArraySize);
   minArraySize = MathMin(ArraySize(UsdCad),minArraySize);
   minArraySize = MathMin(ArraySize(NzdUsd),minArraySize);
   
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
       limit=MathMin(limit,NormalizeDouble(minArraySize,0));
   for(int i=0; i<limit; i++)
   {
      USD = MathPow(UsdChf[i]*UsdJpy[i]*UsdCad[i]/EurUsd[i]/GbpUsd[i]/AudUsd[i],1./7.);
      if (Currency == "USD") Idx[i] = USD; 
      if (Currency == "EUR") Idx[i] = USD*EurUsd[i];
      if (Currency == "GBP") Idx[i] = USD*GbpUsd[i];
      if (Currency == "AUD") Idx[i] = USD*AudUsd[i];
      if (Currency == "CHF") Idx[i] = USD/UsdChf[i];
      if (Currency == "JPY") Idx[i] = 1/USD*UsdJpy[i];
      if (Currency == "CAD") Idx[i] = USD/UsdCad[i];
      if (Currency == "NZD") Idx[i] = USD*NzdUsd[i];
   }
}


