//+---------------------------------------------------------------------+
//|                           Copyright © 2008, Orest @ ForexFactory    |
//+---------------------------------------------------------------------+
#property copyright "Copyright © 2008, Orest @ ForexFactory"
#property link      ""
//#property indicator_separate_window

extern string Buy_currency_pairs = "----- List of Buy currency pairs -----";
extern string Buy_pair_1 = "USDCHF";// "USDJPY";
extern bool  Show_buy_direction_1 = true;
extern string Buy_pair_2 = "EURGBP";//  "EURUSD";
extern bool  Show_buy_direction_2 = true;

extern string Buy_pair_3 = "GBPUSD"; //  "EURCHF";
extern bool  Show_buy_direction_3 = true;

extern string Buy_pair_4 = "NZDUSD" ;//"GBPJPY";
extern bool  Show_buy_direction_4 = true;

extern string Buy_pair_5 = "EURJPY" ; //"USDCAD";
extern bool  Show_buy_direction_5 = true;

extern string Buy_pair_6 = "AUDJPY";// "CADJPY";
extern bool  Show_buy_direction_6 = true;

extern string Buy_pair_7 = "GBPJPY" ; //"AUDUSD";
extern bool  Show_buy_direction_7 = true;

extern string Sell_currency_pairs = "----- List of Sell currency pairs -----";
extern string Sell_pair_1 = "AUDUSD"; //"EURJPY";
extern bool  Show_sell_direction_1 = true;

extern string Sell_pair_2 = "NZDJPY"; // "GBPUSD";
extern bool  Show_sell_direction_2 = true;

extern string Sell_pair_3 = "CHFJPY"; //"EURGBP";
extern bool  Show_sell_direction_3 = true;

extern string Sell_pair_4 = "USDJPY";//"GBPCHF";
extern bool  Show_sell_direction_4 = true;

extern string Sell_pair_5 = "EURUSD";//"CHFJPY";
extern bool  Show_sell_direction_5 = true;

extern string Sell_pair_6 = "EURCHF";//"USDCHF";
extern bool  Show_sell_direction_6 = true;

extern string Sell_pair_7 = "GBPCHF";//"AUDJPY";
extern bool  Show_sell_direction_7 = true;

extern string Columns_0 = "======= Columns Customization ========== ";

extern string Columns_1 = "1 - 30d,      2 - 21d,  3 - 14d,  4-This week";
extern string Columns_2 = "5 - This day, 6 - 12h,  7 - 8h,   8 - 4h";
extern string Columns_3 = "9 - 2h,       10 - 1h,  11 - 30min";
extern string Columns_4 = "12 - 15min,   13 - 5min,14 - 1min";

extern int column1 = 4;
extern int column2 = 5;
extern int column3 = 8;
extern int column4 = 9;
extern int column5 = 10;
extern int column6 = 11;
extern int column7 = 12;

double GBPUSDm, EURGBPm, GBPJPYm, USDCHFm, NZDUSDm, AUDJPYm, EURJPYm;
double EURUSDm, USDJPYm, AUDUSDm, NZDJPYm, GBPCHFm, CHFJPYm, EURCHFm;

int blue, red, blue_usd, red_usd, blue_jpy, red_jpy, blue_oth, red_oth ;

double GBPUSDm_now,EURGBPm_now,GBPJPYm_now,USDCHFm_now,NZDUSDm_now,AUDJPYm_now,EURJPYm_now;
double EURUSDm_now,USDJPYm_now,AUDUSDm_now,NZDJPYm_now,GBPCHFm_now,CHFJPYm_now,EURCHFm_now;

double GBPUSDm_pips, EURGBPm_pips, GBPJPYm_pips, USDCHFm_pips, NZDUSDm_pips,
       AUDJPYm_pips, EURJPYm_pips;

double EURUSDm_pips, USDJPYm_pips,AUDUSDm_pips,NZDJPYm_pips,GBPCHFm_pips,
       CHFJPYm_pips,EURCHFm_pips;

double GBPUSDm_pips_5min,EURGBPm_pips_5min,GBPJPYm_pips_5min,USDCHFm_pips_5min,NZDUSDm_pips_5min=0,
       AUDJPYm_pips_5min,EURJPYm_pips_5min;

double EURUSDm_pips_5min,USDJPYm_pips_5min,AUDUSDm_pips_5min,NZDJPYm_pips_5min,GBPCHFm_pips_5min,
       CHFJPYm_pips_5min,EURCHFm_pips_5min;


bool loop_running = false;

string short_name;
int wnd;

string PairsNames1[14];   
string PairsNames2[14];   
string PairsNames3[14];   
string PairsNames4[14];   
string PairsNames5[14];   
string PairsNames6[14];   
string PairsNames7[14];   

double PLArray1[14];   
double PLArray2[14];   
double PLArray3[14];   
double PLArray4[14];   
double PLArray5[14];   
double PLArray6[14];   
double PLArray7[14];   

int Columns[7];
string Titles[7];

int init()
{
      
   short_name="T101_v.1.14_Orest@ForexFactory";
   IndicatorShortName(short_name);

   Columns[0] = column1;
   Columns[1] = column2;
   Columns[2] = column3;
   Columns[3] = column4;
   Columns[4] = column5;
   Columns[5] = column6;
   Columns[6] = column7;

   for (int i=0; i<7; i++)
   {
      if (Columns[i]==1)
          Titles[i]="30d ago"; 
      else if (Columns[i]==2)
         Titles[i]="21d ago";
      else if (Columns[i]==3)
         Titles[i]="14d ago";
      else if (Columns[i]==4)
         Titles[i]="This Week";
      else if (Columns[i]==5)
         Titles[i]="This Day";
      else if (Columns[i]==6)
         Titles[i]="12h ago";
      else if (Columns[i]==7)
         Titles[i]="8h ago";
      else if (Columns[i]==8)
         Titles[i]="4 hours ago";
      else if (Columns[i]==9)
         Titles[i]="2 hour ago";
      else if (Columns[i]==10)
         Titles[i]="1 hour ago";
      else if (Columns[i]==11)
         Titles[i]="30 min ago";
      else if (Columns[i]==12)
         Titles[i]="15 min ago";
      else if (Columns[i]==13)
         Titles[i]="5 min ago";
      else if (Columns[i]==14)
         Titles[i]="1 min ago";
   }

   return(0);
}

int deinit()
{
 for (int i=1; i<=7; i++)
   delete_objects(i);
   
   return(0);
}

int start()
{
   
  if (loop_running) return(0);

  while (true)
  {

   loop_running = true;

   RefreshRates();

   for (int i=0; i<7; i++)
   {
      //delete_objects(Columns[i]);
      run_statistics_longs(Columns[i]);  
      run_statistics_shorts(Columns[i]); 
      
      if (i==0)
         draw_objects(i,PairsNames1,PLArray1); 
      else if (i==1)
         draw_objects(i,PairsNames2,PLArray2); 
      else if (i==2)
         draw_objects(i,PairsNames3,PLArray3); 
      else if (i==3)
         draw_objects(i,PairsNames4,PLArray4); 
      else if (i==4)
         draw_objects(i,PairsNames5,PLArray5); 
      else if (i==5)
         draw_objects(i,PairsNames6,PLArray6); 
      else if (i==6)
         draw_objects(i,PairsNames7,PLArray7); 
   }

   Sleep(2000);
}
  
return(0);
}


void run_statistics_longs(int week_back)
{

int tf=0;
int bars_back = 0;

datetime period_starts_5min;
int bars_period_starts_5min;
double open_5min;
double spread;

GBPUSDm =0; EURGBPm =0; GBPJPYm=0; USDCHFm=0; NZDUSDm=0; AUDJPYm=0; EURJPYm=0;

GBPUSDm_now =0; EURGBPm_now = 0; GBPJPYm_now =0; USDCHFm_now =0; NZDUSDm_now = 0; AUDJPYm_now=0;EURJPYm_now=0;

GBPUSDm_pips = 0; EURGBPm_pips=0; GBPJPYm_pips = 0; USDCHFm_pips =0; NZDUSDm_pips=0;
AUDJPYm_pips = 0; EURJPYm_pips=0;

GBPUSDm_pips_5min = 0; EURGBPm_pips_5min=0; GBPJPYm_pips_5min = 0; USDCHFm_pips_5min =0; NZDUSDm_pips_5min=0;
AUDJPYm_pips_5min = 0; EURJPYm_pips_5min=0;

 if (week_back==1)  // 30 days ago
 {
     tf = PERIOD_D1;
     bars_back = 29;
 }    
 else if (week_back==2) // 21 days ago
 {
     tf = PERIOD_D1;
     bars_back = 20;
 }    
 else if (week_back==3) // 14 days ago
 {
     tf = PERIOD_D1;
     bars_back = 13;
    
 }    
 else if (week_back==4) // this week
 {
     tf = PERIOD_W1;
     bars_back = 0;
 }    
 else if (week_back==5) // this day
 {
     tf = PERIOD_D1;
     bars_back = 0;
 }
else if (week_back==6) // 12 hours ago
 {
     tf = PERIOD_M1;
     bars_back = 719;
 }
else if (week_back==7) // 8 hours ago
 {
     tf = PERIOD_M1;
     bars_back = 479;
 }
else if (week_back==8) // 4 hours ago
 {
     tf = PERIOD_M1;
     bars_back = 239;
 }
else if (week_back==9) // 2 hour ago
 {
     tf = PERIOD_M1;
     bars_back = 119;
 }
else if (week_back==10) // hour ago
 {
     tf = PERIOD_M1;
     bars_back = 59;
 }
else if (week_back==11) // 30 min ago
 {
     tf = PERIOD_M1;
     bars_back = 29;
 }
else if (week_back==12) // 15min ago
 {
     tf = PERIOD_M1;
     bars_back = 14;
 }
else if (week_back==13) // 5min ago
 {
     tf = PERIOD_M1;
     bars_back = 4;
 }
else if (week_back==14) // 1 min ago
 {
     tf = PERIOD_M1;
     bars_back = 0;
 }
 
if (StringLen(Buy_pair_1)>0  && iOpen(Buy_pair_1, tf, bars_back)!=0)
{
   spread = MarketInfo(Buy_pair_1, MODE_SPREAD)*dPoint(Buy_pair_1);

   period_starts_5min  = iTime(Buy_pair_1, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Buy_pair_1, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Buy_pair_1, PERIOD_M1, bars_period_starts_5min);

   GBPUSDm      = iOpen(Buy_pair_1, tf, bars_back);
   GBPUSDm_now  = MarketInfo(Buy_pair_1, MODE_ASK);
   GBPUSDm_pips = (GBPUSDm_now-GBPUSDm-spread)/dPoint(Buy_pair_1);

   GBPUSDm_pips_5min = (open_5min - GBPUSDm - spread)/dPoint(Buy_pair_1);
}

if (StringLen(Buy_pair_2)>0 && iOpen(Buy_pair_2, tf, bars_back)!=0)
{
   spread = MarketInfo(Buy_pair_2, MODE_SPREAD)*dPoint(Buy_pair_2);
   period_starts_5min  = iTime(Buy_pair_2, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Buy_pair_2, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Buy_pair_2, PERIOD_M1, bars_period_starts_5min);

   EURGBPm= iOpen(Buy_pair_2, tf, bars_back);
   EURGBPm_now= MarketInfo(Buy_pair_2, MODE_ASK);
   EURGBPm_pips = (EURGBPm_now-EURGBPm-spread)/dPoint(Buy_pair_2);

   EURGBPm_pips_5min = (open_5min - EURGBPm - spread)/dPoint(Buy_pair_2);

}

if (StringLen(Buy_pair_3)>0 && iOpen(Buy_pair_3, tf, bars_back)!=0)
{
   spread = MarketInfo(Buy_pair_3, MODE_SPREAD)*dPoint(Buy_pair_3);

   period_starts_5min  = iTime(Buy_pair_3, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Buy_pair_3, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Buy_pair_3, PERIOD_M1, bars_period_starts_5min);

   GBPJPYm= iOpen(Buy_pair_3, tf, bars_back);
   GBPJPYm_now= MarketInfo(Buy_pair_3, MODE_ASK);
   GBPJPYm_pips = (GBPJPYm_now-GBPJPYm-spread)/dPoint(Buy_pair_3);
   
   GBPJPYm_pips_5min = (open_5min - GBPJPYm - spread)/dPoint(Buy_pair_3);
}

if (StringLen(Buy_pair_4)>0 && iOpen(Buy_pair_4, tf, bars_back)!=0)
{
   spread = MarketInfo(Buy_pair_4, MODE_SPREAD)*dPoint(Buy_pair_4);

   period_starts_5min  = iTime(Buy_pair_4, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Buy_pair_4, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Buy_pair_4, PERIOD_M1, bars_period_starts_5min);

   USDCHFm= iOpen(Buy_pair_4, tf, bars_back);
   USDCHFm_now= MarketInfo(Buy_pair_4, MODE_ASK);
   USDCHFm_pips = (USDCHFm_now-USDCHFm-spread)/dPoint(Buy_pair_4);

   USDCHFm_pips_5min = (open_5min - USDCHFm - spread)/dPoint(Buy_pair_4);

}

if (StringLen(Buy_pair_5)>0 && iOpen(Buy_pair_5, tf, bars_back)!=0)
{
   spread = MarketInfo(Buy_pair_5, MODE_SPREAD)*dPoint(Buy_pair_5);

   period_starts_5min  = iTime(Buy_pair_5, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Buy_pair_5, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Buy_pair_5, PERIOD_M1, bars_period_starts_5min);

   NZDUSDm= iOpen(Buy_pair_5, tf, bars_back);
   NZDUSDm_now= MarketInfo(Buy_pair_5, MODE_ASK);
   NZDUSDm_pips = (NZDUSDm_now-NZDUSDm-spread)/dPoint(Buy_pair_5);

   NZDUSDm_pips_5min = (open_5min - NZDUSDm - spread)/dPoint(Buy_pair_5);

}

if (StringLen(Buy_pair_6)>0 && iOpen(Buy_pair_6, tf, bars_back)!=0)
{
   spread = MarketInfo(Buy_pair_6, MODE_SPREAD)*dPoint(Buy_pair_6);

   period_starts_5min  = iTime(Buy_pair_6, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Buy_pair_6, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Buy_pair_6, PERIOD_M1, bars_period_starts_5min);

   AUDJPYm= iOpen(Buy_pair_6, tf, bars_back);
   AUDJPYm_now= MarketInfo(Buy_pair_6, MODE_ASK);
   AUDJPYm_pips = (AUDJPYm_now-AUDJPYm-spread)/dPoint(Buy_pair_6);

   AUDJPYm_pips_5min = (open_5min - AUDJPYm - spread)/dPoint(Buy_pair_6);
}

if (StringLen(Buy_pair_7)>0 && iOpen(Buy_pair_7, tf, bars_back)!=0)
{
   spread = MarketInfo(Buy_pair_7, MODE_SPREAD)*dPoint(Buy_pair_7);

   period_starts_5min  = iTime(Buy_pair_7, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Buy_pair_7, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Buy_pair_7, PERIOD_M1, bars_period_starts_5min);

   EURJPYm= iOpen(Buy_pair_7, tf, bars_back);
   EURJPYm_now= MarketInfo(Buy_pair_7, MODE_ASK);
   EURJPYm_pips = (EURJPYm_now-EURJPYm-spread)/dPoint(Buy_pair_7);

   EURJPYm_pips_5min = (open_5min - EURJPYm - spread)/dPoint(Buy_pair_7);
   
}
   return;
}


void run_statistics_shorts(int week_back)
{

int tf=0;
int bars_back = 0;

datetime period_starts_5min;
int bars_period_starts_5min;
double open_5min;
double spread;

EURUSDm=0; USDJPYm=0; AUDUSDm=0; NZDJPYm=0; GBPCHFm=0; CHFJPYm=0; EURCHFm=0;
EURUSDm_now=0;USDJPYm_now=0;AUDUSDm_now=0;NZDJPYm_now=0;GBPCHFm_now=0;CHFJPYm_now=0;EURCHFm_now=0;

EURUSDm_pips=0; USDJPYm_pips=0;AUDUSDm_pips=0;NZDJPYm_pips=0; GBPCHFm_pips=0;
CHFJPYm_pips=0;EURCHFm_pips=0;

EURUSDm_pips_5min=0; USDJPYm_pips_5min=0;AUDUSDm_pips_5min=0;NZDJPYm_pips_5min=0; GBPCHFm_pips_5min=0;
CHFJPYm_pips_5min=0;EURCHFm_pips_5min=0;

 if (week_back==1)  // 30 days ago
 {
     tf = PERIOD_D1;
     bars_back = 29;
 }    
 else if (week_back==2) // 21 days ago
 {
     tf = PERIOD_D1;
     bars_back = 20;
 }    
 else if (week_back==3) // 14 days ago
 {
     tf = PERIOD_D1;
     bars_back = 13;
    
 }    
 else if (week_back==4) // this week
 {
     tf = PERIOD_W1;
     bars_back = 0;
 }    
 else if (week_back==5) // this day
 {
     tf = PERIOD_D1;
     bars_back = 0;
 }
else if (week_back==6) // 12 hours ago
 {
     tf = PERIOD_M1;
     bars_back = 719;
 }
else if (week_back==7) // 8 hours ago
 {
     tf = PERIOD_M1;
     bars_back = 479;
 }
else if (week_back==8) // 4 hours ago
 {
     tf = PERIOD_M1;
     bars_back = 239;
 }
else if (week_back==9) // 2 hour ago
 {
     tf = PERIOD_M1;
     bars_back = 119;
 }
else if (week_back==10) // hour ago
 {
     tf = PERIOD_M1;
     bars_back = 59;
 }
else if (week_back==11) // 30 min ago
 {
     tf = PERIOD_M1;
     bars_back = 29;
 }
else if (week_back==12) // 15min ago
 {
     tf = PERIOD_M1;
     bars_back = 14;
 }
else if (week_back==13) // 5min ago
 {
     tf = PERIOD_M1;
     bars_back = 4;
 }
else if (week_back==14) // 1 min ago
 {
     tf = PERIOD_M1;
     bars_back = 0;
 }
  
if (StringLen(Sell_pair_1)>0 && iOpen(Sell_pair_1, tf, bars_back)!=0)
{
   spread = MarketInfo(Sell_pair_1, MODE_SPREAD)*dPoint(Sell_pair_1);

   period_starts_5min  = iTime(Sell_pair_1, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Sell_pair_1, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Sell_pair_1, PERIOD_M1, bars_period_starts_5min);

   EURUSDm      = iOpen(Sell_pair_1, tf, bars_back);
   
   EURUSDm_now  = MarketInfo(Sell_pair_1, MODE_BID);
   EURUSDm_pips = (EURUSDm-EURUSDm_now-spread)/dPoint(Sell_pair_1);
   
   EURUSDm_pips_5min = (EURUSDm - open_5min - spread)/dPoint(Sell_pair_1);
}

if (StringLen(Sell_pair_2)>0 && iOpen(Sell_pair_2, tf, bars_back)!=0)
{
   spread = MarketInfo(Sell_pair_2, MODE_SPREAD)*dPoint(Sell_pair_2);

   period_starts_5min  = iTime(Sell_pair_2, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Sell_pair_2, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Sell_pair_2, PERIOD_M1, bars_period_starts_5min);

   USDJPYm= iOpen(Sell_pair_2, tf, bars_back);
   USDJPYm_now= MarketInfo(Sell_pair_2, MODE_BID);
   USDJPYm_pips = (USDJPYm-USDJPYm_now-spread)/dPoint(Sell_pair_2);

   USDJPYm_pips_5min = (USDJPYm - open_5min - spread)/dPoint(Sell_pair_2);
}

if (StringLen(Sell_pair_3)>0 && iOpen(Sell_pair_3, tf, bars_back)!=0)
{
   spread = MarketInfo(Sell_pair_3, MODE_SPREAD)*dPoint(Sell_pair_3);

   period_starts_5min  = iTime(Sell_pair_3, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Sell_pair_3, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Sell_pair_3, PERIOD_M1, bars_period_starts_5min);

   AUDUSDm= iOpen(Sell_pair_3, tf, bars_back);
   AUDUSDm_now= MarketInfo(Sell_pair_3, MODE_BID);
   AUDUSDm_pips = (AUDUSDm-AUDUSDm_now-spread)/dPoint(Sell_pair_3);

   AUDUSDm_pips_5min = (AUDUSDm - open_5min - spread)/dPoint(Sell_pair_3);
}

if (StringLen(Sell_pair_4)>0 && iOpen(Sell_pair_4, tf, bars_back)!=0)
{
   spread = MarketInfo(Sell_pair_4, MODE_SPREAD)*dPoint(Sell_pair_4);

   period_starts_5min  = iTime(Sell_pair_4, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Sell_pair_4, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Sell_pair_4, PERIOD_M1, bars_period_starts_5min);

   NZDJPYm= iOpen(Sell_pair_4, tf, bars_back);
   NZDJPYm_now= MarketInfo(Sell_pair_4, MODE_BID);
   NZDJPYm_pips = (NZDJPYm-NZDJPYm_now-spread)/dPoint(Sell_pair_4);

   NZDJPYm_pips_5min = (NZDJPYm - open_5min - spread)/dPoint(Sell_pair_4);
}

if (StringLen(Sell_pair_5)>0 && iOpen(Sell_pair_5, tf, bars_back)!=0)
{
   spread = MarketInfo(Sell_pair_5, MODE_SPREAD)*dPoint(Sell_pair_5);

   period_starts_5min  = iTime(Sell_pair_5, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Sell_pair_5, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Sell_pair_5, PERIOD_M1, bars_period_starts_5min);

   GBPCHFm= iOpen(Sell_pair_5, tf, bars_back);
   GBPCHFm_now= MarketInfo(Sell_pair_5, MODE_BID);
   GBPCHFm_pips = (GBPCHFm-GBPCHFm_now-spread)/dPoint(Sell_pair_5);

   GBPCHFm_pips_5min = (GBPCHFm - open_5min - spread)/dPoint(Sell_pair_5);
}

if (StringLen(Sell_pair_6)>0 && iOpen(Sell_pair_6, tf, bars_back)!=0)
{
   spread = MarketInfo(Sell_pair_6, MODE_SPREAD)*dPoint(Sell_pair_6);

   period_starts_5min  = iTime(Sell_pair_6, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Sell_pair_6, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Sell_pair_6, PERIOD_M1, bars_period_starts_5min);

   CHFJPYm= iOpen(Sell_pair_6, tf, bars_back);
   CHFJPYm_now= MarketInfo(Sell_pair_6, MODE_BID);
   CHFJPYm_pips = (CHFJPYm-CHFJPYm_now-spread)/dPoint(Sell_pair_6);

   CHFJPYm_pips_5min = (CHFJPYm - open_5min - spread)/dPoint(Sell_pair_6);
}

if (StringLen(Sell_pair_7)>0 && iOpen(Sell_pair_7, tf, bars_back)!=0)
{
   spread = MarketInfo(Sell_pair_7, MODE_SPREAD)*dPoint(Sell_pair_7);

   period_starts_5min  = iTime(Sell_pair_7, tf, bars_back)+60;
   bars_period_starts_5min = iBarShift(Sell_pair_7, PERIOD_M1, period_starts_5min);
   open_5min       = iOpen(Sell_pair_7, PERIOD_M1, bars_period_starts_5min);

   EURCHFm= iOpen(Sell_pair_7, tf, bars_back);
   EURCHFm_now= MarketInfo(Sell_pair_7, MODE_BID);
   EURCHFm_pips = (EURCHFm-EURCHFm_now-spread)/dPoint(Sell_pair_7);

   EURCHFm_pips_5min = (EURCHFm - open_5min - spread)/dPoint(Sell_pair_7);
}
   return;
}


void draw_objects(int week_back, string& PairsNames[],double& Pairspips[])
{

int x_coord;
string loc_date = Titles[week_back];

week_back = week_back+1;

 if (week_back==1)
     x_coord = 5;
 else if (week_back==2)
     x_coord = 145;
 else if (week_back==3)
     x_coord = 285;
 else if (week_back==4)
     x_coord = 425;
 else if (week_back==5)
     x_coord = 565;
 else if (week_back==6)
     x_coord = 705;
 else if (week_back==7)
     x_coord = 845;

int companion =WindowFind(short_name);
if (companion == -1)companion=0;

blue=0; red=0;
blue_usd=0; red_usd=0; blue_jpy=0; red_jpy=0; blue_oth=0; red_oth=0;                                                                                  

int result;
string add_str;
double diff;

   string PairsDisplay[14];   

   string PairsSearch[14];
   
   color  PairsColor[14];              
   double PLArray[14];

   double PLArray_5min[14];

   bool ShowDirections[14];

   PLArray_5min[0]=GBPUSDm_pips_5min;
   PLArray_5min[1]=EURGBPm_pips_5min;
   PLArray_5min[2]=GBPJPYm_pips_5min;
   PLArray_5min[3]=USDCHFm_pips_5min;
   PLArray_5min[4]=NZDUSDm_pips_5min;
   PLArray_5min[5]=AUDJPYm_pips_5min;
   PLArray_5min[6]=EURJPYm_pips_5min;
   
   PLArray_5min[7]=  EURUSDm_pips_5min;
   PLArray_5min[8]=  USDJPYm_pips_5min;
   PLArray_5min[9]=  AUDUSDm_pips_5min;
   PLArray_5min[10]= NZDJPYm_pips_5min;
   PLArray_5min[11]= GBPCHFm_pips_5min;
   PLArray_5min[12]= CHFJPYm_pips_5min;
   PLArray_5min[13]= EURCHFm_pips_5min;

   PLArray[0]=GBPUSDm_pips;
   PLArray[1]=EURGBPm_pips;
   PLArray[2]=GBPJPYm_pips;
   PLArray[3]=USDCHFm_pips;
   PLArray[4]=NZDUSDm_pips;
   PLArray[5]=AUDJPYm_pips;
   PLArray[6]=EURJPYm_pips;
   
   PLArray[7]=  EURUSDm_pips;
   PLArray[8]=  USDJPYm_pips;
   PLArray[9]=  AUDUSDm_pips;
   PLArray[10]= NZDJPYm_pips;
   PLArray[11]= GBPCHFm_pips;
   PLArray[12]= CHFJPYm_pips;
   PLArray[13]= EURCHFm_pips;

   PairsNames[0]=Buy_pair_1;
   PairsNames[1]=Buy_pair_2;
   PairsNames[2]=Buy_pair_3;
   PairsNames[3]=Buy_pair_4;
   PairsNames[4]=Buy_pair_5;
   PairsNames[5]=Buy_pair_6;
   PairsNames[6]=Buy_pair_7;

   PairsNames[7]=Sell_pair_1;
   PairsNames[8]=Sell_pair_2;
   PairsNames[9]=Sell_pair_3;
   PairsNames[10]=Sell_pair_4;
   PairsNames[11]=Sell_pair_5;
   PairsNames[12]=Sell_pair_6;
   PairsNames[13]=Sell_pair_7;

   for(int m=0;m<=13;m++)
   { 
     PairsSearch[m]   = PairsNames[m];
   }

   ShowDirections[0] = Show_buy_direction_1;    
   ShowDirections[1] = Show_buy_direction_2;    
   ShowDirections[2] = Show_buy_direction_3;    
   ShowDirections[3] = Show_buy_direction_4;    
   ShowDirections[4] = Show_buy_direction_5;    
   ShowDirections[5] = Show_buy_direction_6;    
   ShowDirections[6] = Show_buy_direction_7;    

   ShowDirections[7] = Show_sell_direction_1;    
   ShowDirections[8] = Show_sell_direction_2;    
   ShowDirections[9] = Show_sell_direction_3;    
   ShowDirections[10] = Show_sell_direction_4;    
   ShowDirections[11] = Show_sell_direction_5;    
   ShowDirections[12] = Show_sell_direction_6;    
   ShowDirections[13] = Show_sell_direction_7;    

   PairsColor[0] = Aqua;
   PairsColor[1] = Aqua;
   PairsColor[2] = Aqua;
   PairsColor[3] = Aqua;
   PairsColor[4] = Aqua;
   PairsColor[5] = Aqua;
   PairsColor[6] = Aqua;

   PairsColor[7] = Tomato;
   PairsColor[8] = Tomato;
   PairsColor[9] = Tomato;
   PairsColor[10]= Tomato;
   PairsColor[11]= Tomato;
   PairsColor[12]= Tomato;
   PairsColor[13]= Tomato;

   int plarr_size = ArraySize(PLArray);
   
   double temp_var;
   string temp_str;
   color temp_color;
   bool temp_direction;
   double temp_var_5min;
   
   for(int i=0;i < plarr_size;i++) //Hold the first element
	{
		for(int j=i+1;j<plarr_size;j++) //Hold the next element from the first element
		{
			if(PLArray[i] < PLArray[j])	//comparing first and next element
			{
				temp_var = PLArray[j];	
				PLArray[j] = PLArray[i];
				PLArray[i] = temp_var;
				
				temp_str = PairsNames[j];	
				PairsNames[j] = PairsNames[i];
				PairsNames[i] = temp_str;

				temp_color  = PairsColor[j];	
				PairsColor[j] = PairsColor[i];
				PairsColor[i] = temp_color;

				temp_direction  = ShowDirections[j];	
				ShowDirections[j] = ShowDirections[i];
				ShowDirections[i] = temp_direction;

				temp_var_5min = PLArray_5min[j];	
				PLArray_5min[j] = PLArray_5min[i];
				PLArray_5min[i] = temp_var_5min;
			}
		}
	}
   
   // Sorting 5 min array
   for(i=0;i < plarr_size;i++) //Hold the first element
	{
		for(j=i+1;j<plarr_size;j++) //Hold the next element from the first element
		{
			if(PLArray_5min[i] < PLArray_5min[j]) //comparing first and next element
			{
				temp_var_5min = PLArray_5min[j];	
				PLArray_5min[j] = PLArray_5min[i];
				PLArray_5min[i] = temp_var_5min;

				temp_str = PairsSearch[j];	
				PairsSearch[j] = PairsSearch[i];
				PairsSearch[i] = temp_str;
			}
		}
	}

  
   for(i=0;i<=13;i++)
    { 
      Pairspips[i] = PLArray[i];
    
      if(PairsColor[i] == Aqua) 
       {
         PairsDisplay[i] = ""+PairsNames[i]; // Buy
         blue = blue + PLArray[i];

        if (StringFind(PairsNames[i], "USD")>=0)
            blue_usd = blue_usd + PLArray[i];
        else if (StringFind(PairsNames[i], "JPY")>=0)
            blue_jpy = blue_jpy + PLArray[i];
        else    
            blue_oth = blue_oth + PLArray[i];        
       }
       
      if(PairsColor[i] == Tomato) 
       {
         PairsDisplay[i] = ""+PairsNames[i]; // Sell
         red = red + PLArray[i];
      
         if (StringFind(PairsNames[i], "USD")>=0)
            red_usd = red_usd + PLArray[i];
         else if (StringFind(PairsNames[i], "JPY")>=0)
            red_jpy = red_jpy + PLArray[i];
         else    
            red_oth = red_oth + PLArray[i];          
         
       }
       
    }


if (ObjectFind(week_back+"sig_tit") == -1 ){
   ObjectCreate(week_back+"sig_tit", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"sig_tit", OBJPROP_COLOR, Tomato);
   ObjectSet(week_back+"sig_tit", OBJPROP_XDISTANCE, x_coord);
   ObjectSet(week_back+"sig_tit", OBJPROP_YDISTANCE, 15);
   
   ObjectSetText(week_back+"sig_tit",loc_date,10,"Courier New",White);
}

int y_coord = 40;

if (StringLen(PairsDisplay[0])>0) //StringLen(StringTrimLeft(StringSubstr(PairsDisplay[0],4)))>0
{
   if (ObjectFind("W"+week_back+"00") == -1 ){
      ObjectCreate("W"+week_back+"00", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"00", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"00", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"00", OBJPROP_YDISTANCE, y_coord);
   }

   ObjectSetText("W"+week_back+"00",PairsDisplay[0]+"  "+DoubleToStr(PLArray[0],0), 9,
                     "Lucida Console Bold",PairsColor[0]);

      if (ShowDirections[0])
         draw_rating(0,week_back,PairsSearch,PairsDisplay[0], x_coord, y_coord, companion);

      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[1])>0)
{
   if (ObjectFind("W"+week_back+"01") == -1 ){
      ObjectCreate("W"+week_back+"01", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"01", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"01", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"01", OBJPROP_YDISTANCE, y_coord);
   }

   ObjectSetText("W"+week_back+"01",PairsDisplay[1]+"  "+DoubleToStr(PLArray[1],0)+add_str, 9,
         "Lucida Console Bold",PairsColor[1]);

       if (ShowDirections[1])
         draw_rating(1,week_back,PairsSearch,PairsDisplay[1], x_coord, y_coord, companion);
         
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[2])>0)
{
   if (ObjectFind("W"+week_back+"02") == -1 ){
      ObjectCreate("W"+week_back+"02", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"02", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"02", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"02", OBJPROP_YDISTANCE, y_coord);
   }

   ObjectSetText("W"+week_back+"02",PairsDisplay[2]+"  "+DoubleToStr(PLArray[2],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[2]);

       if (ShowDirections[2])
         draw_rating(2,week_back,PairsSearch,PairsDisplay[2], x_coord, y_coord, companion);
         
      y_coord = y_coord + 15;

}

if (StringLen(PairsDisplay[3])>0)
{
   if (ObjectFind("W"+week_back+"03") == -1 ){
      ObjectCreate("W"+week_back+"03", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"03", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"03", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"03", OBJPROP_YDISTANCE, y_coord);
   }

   ObjectSetText("W"+week_back+"03",PairsDisplay[3]+"  "+DoubleToStr(PLArray[3],0)+add_str, 9,
       "Lucida Console Bold",PairsColor[3]);

      if (ShowDirections[3])
         draw_rating(3,week_back,PairsSearch,PairsDisplay[3], x_coord, y_coord, companion);
         
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[4])>0)
{
   if (ObjectFind("W"+week_back+"04") == -1 ){
      ObjectCreate("W"+week_back+"04", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"04", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"04", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"04", OBJPROP_YDISTANCE, y_coord);
   }

   ObjectSetText("W"+week_back+"04",PairsDisplay[4]+"  "+DoubleToStr(PLArray[4],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[4]);

      if (ShowDirections[4])
         draw_rating(4,week_back,PairsSearch,PairsDisplay[4], x_coord, y_coord, companion);
         
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[5])>0)
{
   if (ObjectFind("W"+week_back+"05") == -1 ){
      ObjectCreate("W"+week_back+"05", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"05", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"05", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"05", OBJPROP_YDISTANCE, y_coord);
   }

   ObjectSetText("W"+week_back+"05",PairsDisplay[5]+"  "+DoubleToStr(PLArray[5],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[5]);

      if (ShowDirections[5])
        draw_rating(5,week_back,PairsSearch,PairsDisplay[5], x_coord, y_coord, companion);
      
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[6])>0)
{
   if (ObjectFind("W"+week_back+"06") == -1 ){
      ObjectCreate("W"+week_back+"06", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"06", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"06", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"06", OBJPROP_YDISTANCE, y_coord);
   }

      ObjectSetText("W"+week_back+"06",PairsDisplay[6]+"  "+DoubleToStr(PLArray[6],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[6]);

      if (ShowDirections[6])
         draw_rating(6,week_back,PairsSearch,PairsDisplay[6], x_coord, y_coord, companion);
      
      y_coord = y_coord + 15;
}

if (ObjectFind(week_back+"lin_med") == -1 ){
    ObjectCreate(week_back+"lin_med",OBJ_LABEL,companion,0, 0);
    ObjectSet(week_back+"lin_med",OBJPROP_COLOR,White);
    ObjectSet(week_back+"lin_med", OBJPROP_XDISTANCE, x_coord);
    ObjectSet(week_back+"lin_med", OBJPROP_YDISTANCE, y_coord-10);
    ObjectSetText(week_back+"lin_med","--------------", 10,
         "Courier New",Yellow);
}

if (StringLen(PairsDisplay[7])>0)
{
   if (ObjectFind("W"+week_back+"07") == -1 ){
      ObjectCreate("W"+week_back+"07", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"07", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"07", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"07", OBJPROP_YDISTANCE, y_coord);
   }

   ObjectSetText("W"+week_back+"07",PairsDisplay[7]+"  "+DoubleToStr(PLArray[7],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[7]);

      if (ShowDirections[7])
         draw_rating(7,week_back,PairsSearch,PairsDisplay[7], x_coord, y_coord, companion);
         
      y_coord = y_coord + 15;

}

if (StringLen(PairsDisplay[8])>0)
{
   if (ObjectFind("W"+week_back+"08") == -1 ){
      ObjectCreate("W"+week_back+"08", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"08", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"08", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"08", OBJPROP_YDISTANCE, y_coord);
   }

   ObjectSetText("W"+week_back+"08",PairsDisplay[8]+"  "+DoubleToStr(PLArray[8],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[8]);


     if (ShowDirections[8])
       draw_rating(8,week_back,PairsSearch,PairsDisplay[8], x_coord, y_coord, companion);
      
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[9])>0)
{
   if (ObjectFind("W"+week_back+"09") == -1 ){
      ObjectCreate("W"+week_back+"09", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"09", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"09", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"09", OBJPROP_YDISTANCE, y_coord);
   }

      ObjectSetText("W"+week_back+"09",PairsDisplay[9]+"  "+DoubleToStr(PLArray[9],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[9]);

      if (ShowDirections[9])
         draw_rating(9,week_back,PairsSearch,PairsDisplay[9], x_coord, y_coord, companion);
         
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[10])>0)
{
   if (ObjectFind("W"+week_back+"10") == -1 ){
      ObjectCreate("W"+week_back+"10", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"10", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"10", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"10", OBJPROP_YDISTANCE, y_coord);
   }

      ObjectSetText("W"+week_back+"10",PairsDisplay[10]+"  "+DoubleToStr(PLArray[10],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[10]);

      if (ShowDirections[10])
         draw_rating(10,week_back,PairsSearch,PairsDisplay[10], x_coord, y_coord, companion);
      
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[11])>0)
{
   if (ObjectFind("W"+week_back+"11") == -1 ){
      ObjectCreate("W"+week_back+"11", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"11", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"11", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"11", OBJPROP_YDISTANCE, y_coord);
   }
      ObjectSetText("W"+week_back+"11",PairsDisplay[11]+"  "+DoubleToStr(PLArray[11],0)+add_str, 9,
      "Lucida Console Bold",PairsColor[11]);


      if (ShowDirections[11])
         draw_rating(11,week_back,PairsSearch,PairsDisplay[11], x_coord, y_coord, companion);
      
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[12])>0)
{
   if (ObjectFind("W"+week_back+"12") == -1 ){
      ObjectCreate("W"+week_back+"12", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"12", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"12", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"12", OBJPROP_YDISTANCE, y_coord);
   }

      ObjectSetText("W"+week_back+"12",PairsDisplay[12]+"  "+DoubleToStr(PLArray[12],0)+add_str, 9,
         "Lucida Console Bold",PairsColor[12]);

      if (ShowDirections[12])
         draw_rating(12,week_back,PairsSearch,PairsDisplay[12], x_coord, y_coord, companion);
      
      y_coord = y_coord + 15;
}

if (StringLen(PairsDisplay[13])>0)
{
   if (ObjectFind("W"+week_back+"13") == -1 ){
      ObjectCreate("W"+week_back+"13", OBJ_LABEL, companion, 0, 0);
      ObjectSet("W"+week_back+"13", OBJPROP_COLOR, Tomato);
      ObjectSet("W"+week_back+"13", OBJPROP_XDISTANCE, x_coord);
      ObjectSet("W"+week_back+"13", OBJPROP_YDISTANCE, y_coord);
   }

      ObjectSetText("W"+week_back+"13",PairsDisplay[13]+"  "+DoubleToStr(PLArray[13],0)+add_str, 9,
         "Lucida Console Bold",PairsColor[13]);

      if (ShowDirections[13])
         draw_rating(13,week_back,PairsSearch,PairsDisplay[13], x_coord, y_coord, companion);
      
      y_coord = y_coord + 15;
}

if (ObjectFind(week_back+"lin") == -1 ){
    ObjectCreate(week_back+"lin",OBJ_LABEL,companion,0, 0);
    ObjectSet(week_back+"lin",OBJPROP_COLOR,White);
    ObjectSet(week_back+"lin", OBJPROP_XDISTANCE, x_coord);
    ObjectSet(week_back+"lin", OBJPROP_YDISTANCE, y_coord);
    ObjectSetText(week_back+"lin","--------------", 10,
         "Courier New",White);
    y_coord = y_coord+15;
}

//---------------------------------------------------------------
if (ObjectFind(week_back+"bu_lett") == -1 ){
   ObjectCreate(week_back+"bu_lett", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"bu_lett", OBJPROP_COLOR, White);
   ObjectSet(week_back+"bu_lett", OBJPROP_XDISTANCE, x_coord-7);
   ObjectSet(week_back+"bu_lett", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"bu_lett","U", 9, "Courier New",White);

if (ObjectFind(week_back+"bu_tot") == -1 ){
   ObjectCreate(week_back+"bu_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"bu_tot", OBJPROP_COLOR, SpringGreen);
   ObjectSet(week_back+"bu_tot", OBJPROP_XDISTANCE, x_coord);
   ObjectSet(week_back+"bu_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"bu_tot",DoubleToStr(blue_usd,0), 9,
         "Courier New",SpringGreen);

if (ObjectFind(week_back+"su_tot") == -1 ){
   ObjectCreate(week_back+"su_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"su_tot", OBJPROP_COLOR, OrangeRed);
   ObjectSet(week_back+"su_tot", OBJPROP_XDISTANCE, x_coord + 45);
   ObjectSet(week_back+"su_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"su_tot",DoubleToStr(red_usd,0), 9,
         "Courier New",OrangeRed);

if (ObjectFind(week_back+"u_tot") == -1 ){
   ObjectCreate(week_back+"u_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"u_tot", OBJPROP_COLOR, Yellow);
   ObjectSet(week_back+"u_tot", OBJPROP_XDISTANCE, x_coord + 80);
   ObjectSet(week_back+"u_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"u_tot","T:"+DoubleToStr(red_usd+blue_usd,0), 9,
         "Courier New",Yellow);
   y_coord = y_coord +12;         

if (ObjectFind(week_back+"bj_lett") == -1 ){
   ObjectCreate(week_back+"bj_lett", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"bj_lett", OBJPROP_COLOR, White);
   ObjectSet(week_back+"bj_lett", OBJPROP_XDISTANCE, x_coord-7);
   ObjectSet(week_back+"bj_lett", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"bj_lett","J", 9, "Courier New",White);

if (ObjectFind(week_back+"bj_tot") == -1 ){
   ObjectCreate(week_back+"bj_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"bj_tot", OBJPROP_COLOR, SpringGreen);
   ObjectSet(week_back+"bj_tot", OBJPROP_XDISTANCE, x_coord);
   ObjectSet(week_back+"bj_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"bj_tot",DoubleToStr(blue_jpy,0), 9,
         "Courier New",SpringGreen);

if (ObjectFind(week_back+"sj_tot") == -1 ){
   ObjectCreate(week_back+"sj_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"sj_tot", OBJPROP_COLOR, OrangeRed);
   ObjectSet(week_back+"sj_tot", OBJPROP_XDISTANCE, x_coord + 45);
   ObjectSet(week_back+"sj_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"sj_tot",DoubleToStr(red_jpy,0), 9,
         "Courier New",OrangeRed);

if (ObjectFind(week_back+"j_tot") == -1 ){
   ObjectCreate(week_back+"j_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"j_tot", OBJPROP_COLOR, Yellow);
   ObjectSet(week_back+"j_tot", OBJPROP_XDISTANCE, x_coord + 80);
   ObjectSet(week_back+"j_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"j_tot","T:"+DoubleToStr(red_jpy+blue_jpy,0), 9,
         "Courier New",Yellow);
   y_coord = y_coord +12;         

if (ObjectFind(week_back+"bo_lett") == -1 ){
   ObjectCreate(week_back+"bo_lett", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"bo_lett", OBJPROP_COLOR, White);
   ObjectSet(week_back+"bo_lett", OBJPROP_XDISTANCE, x_coord-7);
   ObjectSet(week_back+"bo_lett", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"bo_lett","O", 9, "Courier New",White);

if (ObjectFind(week_back+"bo_tot") == -1 ){
   ObjectCreate(week_back+"bo_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"bo_tot", OBJPROP_COLOR, SpringGreen);
   ObjectSet(week_back+"bo_tot", OBJPROP_XDISTANCE, x_coord);
   ObjectSet(week_back+"bo_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"bo_tot",DoubleToStr(blue_oth,0), 9,
         "Courier New",SpringGreen);

if (ObjectFind(week_back+"so_tot") == -1 ){
   ObjectCreate(week_back+"so_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"so_tot", OBJPROP_COLOR, OrangeRed);
   ObjectSet(week_back+"so_tot", OBJPROP_XDISTANCE, x_coord + 45);
   ObjectSet(week_back+"so_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"so_tot",DoubleToStr(red_oth,0), 9,
         "Courier New",OrangeRed);

if (ObjectFind(week_back+"o_tot") == -1 ){
   ObjectCreate(week_back+"o_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"o_tot", OBJPROP_COLOR, Yellow);
   ObjectSet(week_back+"o_tot", OBJPROP_XDISTANCE, x_coord + 80);
   ObjectSet(week_back+"o_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"o_tot","T:"+DoubleToStr(red_oth+blue_oth,0), 9,
         "Courier New",Yellow);
   y_coord = y_coord +12;         

if (ObjectFind(week_back+"b_tot") == -1 ){
   ObjectCreate(week_back+"b_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"b_tot", OBJPROP_COLOR, Chartreuse);
   ObjectSet(week_back+"b_tot", OBJPROP_XDISTANCE, x_coord);
   ObjectSet(week_back+"b_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"b_tot",DoubleToStr(blue,0), 9,
         "Courier New",Chartreuse);

if (ObjectFind(week_back+"s_tot") == -1 ){
   ObjectCreate(week_back+"s_tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"s_tot", OBJPROP_COLOR, Orange);
   ObjectSet(week_back+"s_tot", OBJPROP_XDISTANCE, x_coord + 45);
   ObjectSet(week_back+"s_tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"s_tot",DoubleToStr(red,0), 9,
         "Courier New",Orange);

if (ObjectFind(week_back+"tot") == -1 ){
   ObjectCreate(week_back+"tot", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"tot", OBJPROP_COLOR, Peru);
   ObjectSet(week_back+"tot", OBJPROP_XDISTANCE, x_coord + 80);
   ObjectSet(week_back+"tot", OBJPROP_YDISTANCE, y_coord);
}

   ObjectSetText(week_back+"tot","T:"+DoubleToStr(red+blue,0), 9,
         "Courier New",Peru);
   y_coord = y_coord +20;         

//---------------------------------------------------------------
if (ObjectFind(week_back+"sig") == -1 ){
   ObjectCreate(week_back+"sig", OBJ_LABEL, companion, 0, 0);
   ObjectSet(week_back+"sig", OBJPROP_COLOR, Tomato);
   ObjectSet(week_back+"sig", OBJPROP_XDISTANCE, x_coord);
   ObjectSet(week_back+"sig", OBJPROP_YDISTANCE, y_coord);
}

  string trend = "NONE";
   color col = White;
   
   if (red > 0 && blue < 0)
      {trend = "SHORT (Strong)"; col = Tomato;}
   else if (red > blue && (red > 0 && blue > 0))
      {trend = "SHORT (Weak)"; col = Orange;}
   else if (blue > 0 && red < 0)
      {trend = "LONG (Strong)"; col = Blue;}
   else if (blue > red && (blue > 0 && red > 0))
      {trend = "LONG (Weak)"; col = DeepSkyBlue;}



   ObjectSetText(week_back+"sig",trend, 12,"Lucida Console Bold",col);

    WindowRedraw();
   
}


void delete_objects(int week_back)
{
  for(int m=0;m<=13;m++)
  { 
   if (ObjectFind("WA"+week_back+PairsNames1[m]) > -1 ){
      ObjectDelete("WA"+week_back+PairsNames1[m]);
   }

   if (ObjectFind("W"+week_back+PairsNames1[m]) > -1 ){
      ObjectDelete("W"+week_back+PairsNames1[m]);
   }
  }
  
   if (ObjectFind(week_back+"b_tot") > -1 ){
      ObjectDelete(week_back+"b_tot");
   }

   if (ObjectFind(week_back+"tot") > -1 ){
      ObjectDelete(week_back+"tot");
   }

   if (ObjectFind(week_back+"s_tot") > -1 ){
      ObjectDelete(week_back+"s_tot");
   }

   if (ObjectFind(week_back+"bu_tot") > -1 ){
      ObjectDelete(week_back+"bu_tot");
   }

   if (ObjectFind(week_back+"bu_lett") > -1 ){
      ObjectDelete(week_back+"bu_lett");
   }

   if (ObjectFind(week_back+"bj_lett") > -1 ){
      ObjectDelete(week_back+"bj_lett");
   }

   if (ObjectFind(week_back+"bo_lett") > -1 ){
      ObjectDelete(week_back+"bo_lett");
   }

   if (ObjectFind(week_back+"u_tot") > -1 ){
      ObjectDelete(week_back+"u_tot");
   }

   if (ObjectFind(week_back+"su_tot") > -1 ){
      ObjectDelete(week_back+"su_tot");
   }

   if (ObjectFind(week_back+"bj_tot") > -1 ){
      ObjectDelete(week_back+"bj_tot");
   }

   if (ObjectFind(week_back+"j_tot") > -1 ){
      ObjectDelete(week_back+"j_tot");
   }

   if (ObjectFind(week_back+"sj_tot") > -1 ){
      ObjectDelete(week_back+"sj_tot");
   }

   if (ObjectFind(week_back+"bo_tot") > -1 ){
      ObjectDelete(week_back+"bo_tot");
   }

   if (ObjectFind(week_back+"o_tot") > -1 ){
      ObjectDelete(week_back+"o_tot");
   }

   if (ObjectFind(week_back+"so_tot") > -1 ){
      ObjectDelete(week_back+"so_tot");
   }

   if (ObjectFind(week_back+"lin") > -1 ){
      ObjectDelete(week_back+"lin");
   }

   if (ObjectFind(week_back+"lin_med") > -1 ){
      ObjectDelete(week_back+"lin_med");
   }

   if (ObjectFind(week_back+"sig_tit") > -1 ){
      ObjectDelete(week_back+"sig_tit");
   }

   if (ObjectFind("W"+week_back+"00") > -1 ){
      ObjectDelete("W"+week_back+"00");
   }

   if (ObjectFind("W"+week_back+"01") > -1 ){
      ObjectDelete("W"+week_back+"01");
   }

   if (ObjectFind("W"+week_back+"02") > -1 ){
      ObjectDelete("W"+week_back+"02");
   }

   if (ObjectFind("W"+week_back+"03") > -1 ){
      ObjectDelete("W"+week_back+"03");
   }


   if (ObjectFind("W"+week_back+"04") > -1 ){
      ObjectDelete("W"+week_back+"04");
   }

   if (ObjectFind("W"+week_back+"05") > -1 ){
      ObjectDelete("W"+week_back+"05");
   }

   if (ObjectFind("W"+week_back+"06") > -1 ){
      ObjectDelete("W"+week_back+"06");
   }

   if (ObjectFind("W"+week_back+"07") > -1 ){
      ObjectDelete("W"+week_back+"07");
   }

   if (ObjectFind("W"+week_back+"08") > -1 ){
      ObjectDelete("W"+week_back+"08");
   }

   if (ObjectFind("W"+week_back+"09") > -1 ){
      ObjectDelete("W"+week_back+"09");
   }

   if (ObjectFind("W"+week_back+"10") > -1 ){
      ObjectDelete("W"+week_back+"10");
   }

   if (ObjectFind("W"+week_back+"11") > -1 ){
      ObjectDelete("W"+week_back+"11");
   }

   if (ObjectFind("W"+week_back+"12") > -1 ){
      ObjectDelete("W"+week_back+"12");
   }

   if (ObjectFind("W"+week_back+"13") > -1 ){
      ObjectDelete("W"+week_back+"13");
   }

   if (ObjectFind(week_back+"sig") > -1 ){
      ObjectDelete(week_back+"sig");
   }

}

double dPoint(string sym)
{
  double _Point = MarketInfo(sym, MODE_POINT);
  if (StringFind(sym, "JPY")>=0)
      _Point=0.01;
  
  if (_Point==0) _Point=0.0001; 
  
  return (_Point);
}

int ArraySearch(string& m[], string e) {
  for (int i=0; i<ArraySize(m); i++) {
    if (m[i]==e) return(i);
  }
  return(-1);
}

void draw_rating(int i_index, int week_back, string& PairsSearch[], string pair_display, int x_coord, int y_coord,
                 int companion)
{
      int result = ArraySearch(PairsSearch,pair_display);
      if (result!=-1)
      {

        // if (ObjectFind("W"+week_back+pair_display) != -1 )
        // {
            ObjectDelete("W"+week_back+pair_display);
        // }
         
        // if (ObjectFind("WA"+week_back+pair_display) != -1 )
        // {
            ObjectDelete("WA"+week_back+pair_display);         
        // }

            int x_coord_numb, x_coord_arrow;
            
            
            x_coord_numb = x_coord + 95;
            x_coord_arrow= x_coord + 110;      
            
            if (ObjectFind("W"+week_back+pair_display) == -1 /*&& result!=i_index*/)
            {
               ObjectCreate("W"+week_back+pair_display, OBJ_LABEL, companion, 0, 0);
               ObjectSet("W"+week_back+pair_display, OBJPROP_COLOR, White);
               ObjectSet("W"+week_back+pair_display, OBJPROP_XDISTANCE, x_coord_numb); //95  // 75
               ObjectSet("W"+week_back+pair_display, OBJPROP_YDISTANCE, y_coord);
            }  

            if (ObjectFind("WA"+week_back+pair_display) == -1 /*&& result!=i_index*/)
            {
               ObjectCreate("WA"+week_back+pair_display, OBJ_LABEL, companion, 0, 0); 
               
               ObjectSet("WA"+week_back+pair_display, OBJPROP_XDISTANCE, x_coord_arrow); //110
               ObjectSet("WA"+week_back+pair_display, OBJPROP_YDISTANCE, y_coord);
            }  
     
            if (result > i_index) // went up
            {
               ObjectSetText("WA"+week_back+pair_display,CharToStr(241), 10,"Wingdings",LimeGreen);
               ObjectSetText("W"+week_back+pair_display,DoubleToStr(result-i_index,0), 9,"Courier New",White);

            }
            else if (result < i_index) // went down
            {
               ObjectSetText("WA"+week_back+pair_display,CharToStr(242), 10,"Wingdings",Tomato);
               ObjectSetText("W"+week_back+pair_display,DoubleToStr(i_index-result,0), 9,"Courier New",White);
            }
            else
            {
               ObjectSetText("WA"+week_back+pair_display,"=", 10,"Courier New",Yellow);
               ObjectSetText("W"+week_back+pair_display," ", 9,"Courier New",White);
            }
      }
      
      return;
}

