Dashboard - Power MeterV3_Need Multi_TF

Price Data Components
Series array that contains open prices of each barSeries array that contains close prices for each barSeries array that contains the highest prices of each barSeries array that contains the lowest prices of each barSeries array that contains open prices of each barSeries array that contains close prices for each bar
Orders Execution
It automatically opens orders when conditions are reachedIt can change open orders parameters, due to possible stepping strategyChecks for the total of open ordersIt Closes Orders by itself
Indicators Used
Commodity channel indexMoving average indicatorRelative strength index
0 Views
0 Downloads
0 Favorites
Dashboard - Power MeterV3_Need Multi_TF
ÿþ#property copyright "Fênix Capital" //<---Curta nossa pagina no Facebook

#property link      "https://www.facebook.com/FenixCapital.Ltda" 

#property version   "1.00"

#property strict

#include <stdlib.mqh>

#include <WinUser32.mqh>

#include <ChartObjects\ChartObjectsTxtControls.mqh>



#define BullColor Lime

#define BearColor Red



enum dbu {Constant=0,OneMinute=1,FiveMinutes=5};



sinput   string   t_trade    = "EXPERT MANAGEMENT"; // ==========================

sinput bool                      UseDefaultPairs            = true;              // Use todos os 28 pares

sinput string                    OwnPairs                   = "XAUUSD"/*"AUDCAD,AUDJPY,AUDUSD,CADJPY,EURAUD,EURCAD,EURGBP,EURJPY,EURUSD,GBPAUD,GBPCAD,GBPJPY,GBPUSD,USDCAD,USDJPY"*/;                // Use sua própria lista de pares separados por vírgula

sinput dbu                       DashUpdate                 = 0;                 // Intervalo de atualização

sinput int                       Magic_Number               = 1984;

//sinput bool                      autotrade                  = true;



sinput   string   t_trigger = "TRIGGER MANAGEMENT"; // ========================== 

//sinput   bool                    trigger_use_Pips           = false;             // Use Pips

sinput   double                  trade_MIN_pips             = 1;                 // Minimo de pips para abrir posição

//sinput   bool                    trigger_UseHeatMap1        = false;              // Use Heat Map

sinput   ENUM_TIMEFRAMES         trigger_TF_HM1             = 240;               // TimeFrame para Heat Map  

sinput   double                  trade_MIN_HeatMap1         = 0.03;              // Minimo % do HeatMap para abrir posição

//sinput   bool                    trigger_use_bidratio       = false;              // Use BidRatio filtro

sinput   double                  trigger_buy_bidratio       = 60;                // % Nivel para abrir Buy

sinput   double                  trigger_sell_bidratio      = 30;                // % Nivel para abrir Sell

//sinput   bool                    trigger_use_relstrength    = false;              // Use Relative Strength filtro (Base)

sinput   double                  trigger_buy_relstrength    = 3.0;               // Strenth para abrir Buy

sinput   double                  trigger_sell_relstrength   =-3.0;               // Strength para abrir Sell

//sinput   bool                    trigger_use_buysellratio   = false;              // Use Buy/Sell Ratio filtro

sinput   double                  trigger_buy_buysellratio   = 1.0;               // Nivel para abrir Buy

sinput   double                  trigger_sell_buysellratio  = -1.0;              // Nivel para abrir Sell

//sinput   bool                    trigger_use_gap            = false;              // Use Gap filtro

sinput   double                  trigger_gap_buy            = 2.00;              // Gap nivel para abrir Buy

sinput   double                  trigger_gap_sell           = -0.60;             // Gap nivel para abrir Sell

//sinput   bool                    UseCCI                     = false;             // Use CCI 

sinput   int                     trade_Period_CCI           = 12;                 // CCI Periodo

sinput   double                  trigger_CCI_CloseBuy1_2    = 100;               // Nível de Compra CCI

sinput   double                  trigger_CCI_CloseSell1_2   = -100;              // Nível de Venda CCI

//sinput   bool                    UseRSI                     = false;             // Use RSI 

sinput   int                     trade_Period_RSI           = 12;                // RSI Periodo

//sinput   bool                    trigger_Moving_Average1     = false;             // Use Média Movel 1

sinput   int                     trade_Period_MA1            = 12;               // Periodo Média Movel 1

//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe

//sinput   bool                    trigger_MA2                 = false;             // Use a Média Móvel 2

sinput   int                     trade_Period_Moving_Average2= 21;               // Período de Média Móvel 2

//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe

//sinput   bool                    trigger_Moving_Average     = false;              // Use Média Movel 3

sinput   int                     trade_Period_MA            = 30;                // Periodo Média Movel 3

//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe

//sinput   bool                    trigger_MA                 = false;              // Use a Média Móvel 4

sinput   int                     trade_Period_Moving_Average= 50;                // Período de Média Móvel 4

//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe

//sinput   bool                    trigger_SMA                = false;              // Use a Média Móvel 5

sinput   int                     trade_Period_Simple_Moving_Moverage= 100;       // Período de Média Móvel 5

//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe

//sinput   bool                    trigger_Candle_Direction   = false;              //Use a direção da vela



sinput   string   t_basket = "BASKET MANAGEMENT"; // ============================

sinput double                    lot                        = 0.10;              // Lote

sinput int                       MaxTrades                  = 1;                 // Max. trades por par

sinput int                       MaxTotalTrades             = 0;                 // Max. total de trades geral

sinput double                    MaxSpread                  = 6.0;               // Max. Spread permitido

sinput int                       Basket_Target              = 0;                 // Take Profit em $ TOTAL

sinput int                       Basket_StopLoss            = 0;                 // Stop Loss em $ TOTAL

sinput int                       Piptp                      = 30;                // Takeprofit em pips 

sinput int                       Pipsl                      = 0;                 // Stoploss em pips

sinput bool                      TrailLastLock              = false;             // Rastreie o último bloqueio definido

sinput double                    TrailDistance              = 0.0;               // Distância da trilha 0 significa último bloqueio

sinput int                       StopProfit                 = 0;                 // Pare depois de tantas cestas lucrativas

sinput double                    Adr1tp                     = 0;                 // Takeprofit porcentagem adr(10) 0=None

sinput double                    Adr1sl                     = 0;                 // Stoploss adr porcentagem adr(10) 0 = None

sinput int                       StopLoss                   = 0;                 // Pare depois de tantas cestas perdedoras

sinput bool                      OnlyAddProfit              = false;             // Apenas adiciona negociações no lucro

sinput bool                      CloseAllSession            = false;             // Fechar todas as negociações após a sessão(s)



sinput   string   t_time = "TIME MANAGEMENT"; // ================================

sinput bool                      UseSession1                = true;              //Sessão Londres

sinput string                    sess1start                 = "00:00";           //Inicio sessão 05:00

sinput string                    sess1end                   = "23:59";           //Fim sessão 14:00

sinput string                    sess1comment               = "LONDRES";         //Comentário

sinput bool                      UseSession2                = false;             //Sessão Tokio

sinput string                    sess2start                 = "21:00";           //Inicio sessão 21:00

sinput string                    sess2end                   = "00:00";           //Fim sessão 05:00

sinput string                    sess2comment               = "TOKYO";           //Comentário

sinput bool                      UseSession3                = false;             //Sessão Nova York

sinput string                    sess3start                 = "10:00";           //Inicio sessão 10:00

sinput string                    sess3end                   = "13:00";           //Fim sessão 18:00

sinput string                    sess3comment               = "NOVA YORK";       //Comentário



sinput   string   t_chart = "CHART MANAGEMENT"; // ==============================

sinput ENUM_TIMEFRAMES           TimeFrame                  = 30;                //TEMPO GRÁFICO

sinput string                    usertemplate               = "Neural System";   //TEMPLATE

sinput int                       x_axis                     =-1;                  // Esquerda X Direita

sinput int                       y_axis                     =50;                 // Cima X Baixo



bool                    autotrade                  = false;             //Auto Trade

bool                    trigger_use_Pips           = false;             // Use Pips

bool                    trigger_UseHeatMap1        = false;             // Use Heat Map

bool                    trigger_use_bidratio       = false;             // Use BidRatio filtro

bool                    trigger_use_relstrength    = false;             // Use Relative Strength filtro (Base)

bool                    trigger_use_buysellratio   = false;             // Use Buy/Sell Ratio filtro

bool                    trigger_use_gap            = false;             // Use Gap filtro

bool                    UseCCI                     = false;             // Use CCI

bool                    UseRSI                     = false;             // Use RSI

bool                    trigger_Moving_Average     = false;             // Use Média Movel 1

bool                    trigger_MA                 = false;             // Use a Média Móvel 2

bool                    trigger_SMA                = false;             // Use a Média Móvel 3

bool                    trigger_Moving_Average1    = false;             // Use Média Movel 4

bool                    trigger_MA2                = false;             // Use a Média Móvel 5

bool                    trigger_Candle_Direction   = false;             //Use a direção da vela



int BeforeMin = 15;

int FontSize = 10;

string FontName = "Arial";

int ShiftX = 250;

int ShiftY = 70;

int Corner = 0;



string button_close_basket_All = "btn_Close ALL"; 

string button_close_basket_Prof = "btn_Close Prof";

string button_close_basket_Loss = "btn_Close Loss";



string button_reset_ea = "RESET EA";

 

string button_EUR_basket = "EUR_BASKET"; 

string button_EUR_basket_buy = "EUR_BASKET_BUY";

string button_EUR_basket_sell = "EUR_BASKET_SELL";

string button_EUR_basket_close = "EUR_BASKET_CLOSE";



string button_GBP_basket = "GBP_BASKET"; 

string button_GBP_basket_buy = "GBP_BASKET_BUY";

string button_GBP_basket_sell = "GBP_BASKET_SELL";

string button_GBP_basket_close = "GBP_BASKET_CLOSE";



string button_CHF_basket = "CHF_BASKET"; 

string button_CHF_basket_buy = "CHF_BASKET_BUY";

string button_CHF_basket_sell = "CHF_BASKET_SELL";

string button_CHF_basket_close = "CHF_BASKET_CLOSE";



string button_USD_basket = "USD_BASKET"; 

string button_USD_basket_buy = "USD_BASKET_BUY";

string button_USD_basket_sell = "USD_BASKET_SELL";

string button_USD_basket_close = "USD_BASKET_CLOSE";



string button_CAD_basket = "CAD_BASKET"; 

string button_CAD_basket_buy = "CAD_BASKET_BUY";

string button_CAD_basket_sell = "CAD_BASKET_SELL";

string button_CAD_basket_close = "CAD_BASKET_CLOSE";



string button_NZD_basket = "NZD_BASKET"; 

string button_NZD_basket_buy = "NZD_BASKET_BUY";

string button_NZD_basket_sell = "NZD_BASKET_SELL";

string button_NZD_basket_close = "NZD_BASKET_CLOSE";



string button_AUD_basket = "AUD_BASKET"; 

string button_AUD_basket_buy = "AUD_BASKET_BUY";

string button_AUD_basket_sell = "AUD_BASKET_SELL";

string button_AUD_basket_close = "AUD_BASKET_CLOSE";



string button_JPY_basket = "JPY_BASKET"; 

string button_JPY_basket_buy = "JPY_BASKET_BUY";

string button_JPY_basket_sell = "JPY_BASKET_SELL";

string button_JPY_basket_close = "JPY_BASKET_CLOSE";

 

string DefaultPairs[] = {"AUDCAD","AUDCHF","AUDJPY","AUDNZD","AUDUSD","CADCHF","CADJPY","CHFJPY","EURAUD","EURCAD","EURCHF","EURGBP","EURJPY","EURNZD","EURUSD","GBPAUD","GBPCAD","GBPCHF","GBPJPY","GBPNZD","GBPUSD","NZDCAD","NZDCHF","NZDJPY","NZDUSD","USDCAD","USDCHF","USDJPY"};

string TradePairs[];

string curr[8] = {"USD","EUR","GBP","JPY","AUD","NZD","CAD","CHF"};

string EUR[7] = {"EURAUD","EURCAD","EURCHF","EURGBP","EURJPY","EURNZD","EURUSD"};

string GBP[6] = {"GBPAUD","GBPCAD","GBPCHF","GBPJPY","GBPNZD","GBPUSD"};

string GBP_R[1] = {"EURGBP"};

string CHF[1] = {"CHFJPY"};

string CHF_R[6] = {"AUDCHF","CADCHF","EURCHF","GBPCHF","NZDCHF","USDCHF"};

string USD[3] = {"USDCAD","USDCHF","USDJPY"};

string USD_R[4] = {"AUDUSD","EURUSD","GBPUSD","NZDUSD"};

string CAD[2] = {"CADCHF","CADJPY"};

string CAD_R[5] = {"AUDCAD","EURCAD","GBPCAD","NZDCAD","USDCAD"};

string NZD[4] = {"NZDCAD","NZDCHF","NZDJPY","NZDUSD"};

string NZD_R[3] = {"AUDNZD","EURNZD","GBPNZD"};

string AUD[5] = {"AUDCAD","AUDCHF","AUDJPY","AUDNZD","AUDUSD"};

string AUD_R[2] = {"EURAUD","GBPAUD"};

string JPY_R[7] = {"AUDJPY","CADJPY","CHFJPY","EURJPY","GBPJPY","NZDJPY","USDJPY"};



string   _font="Consolas";



struct pairinf {

   double PairPip;

   int pipsfactor;

   double Pips;

   double PipsSig;

   double Pipsprev;

   double Spread;

   double point;

   int lastSignal;

   int    base;

   int    quote;   

}; pairinf pairinfo[];



#define NONE 0

#define DOWN -1

#define UP 1



#define NOTHING 0

#define BUY 1

#define SELL 2



struct signal { 

   string symbol;

   double range;

   double range1;

   double ratio;

   double ratio1;

   double bidratio;

   double fact;

   double strength;

   double strength_old;

   double strength1;

   double strength2;

   double calc;

   double strength3;

   double strength4;

   double strength5;

   double strength6;

   double strength7;

   double strength8;

   double strength_Gap;

   double hi;

   double lo;

   double prevratio;   

   double prevbid;   

   int    shift;

   double open;

   double close;

   double bid;

   double point;   

   double Signalperc;   

   double SigRatio;

   double SigRelStr;

   double SigBSRatio;    

   double SigCRS;

   double SigGap;

   double SigGapPrev;

   double SigRatioPrev;

   double Signalcci;

   double Signalrsi;

   double Signalhah4;//M1

   double Signalhad1;//M1

   double Signalham15;//M2

   double Signalham30;//M2

   double Signalham1;//M3

   double Signalham5;//M3

   double Signalham12;//M4

   double Signalham52;//M4

   double Signalham13;//M5

   double Signalham53;//M5

   //MULTI TF

   double Signalhah410;//M1

   double Signalhad111;//M1

   double Signalhah411;//M1

   double Signalhad112;//M1

   double Signalham1510;//M2

   double Signalham3011;//M2

   double Signalham1511;//M2

   double Signalham3012;//M2

   double Signalham110;//M3

   double Signalham511;//M3

   double Signalham111;//M3

   double Signalham512;//M3

   double Signalham1210;//M4

   double Signalham5211;//M4

   double Signalham1211;//M4

   double Signalham5212;//M4

   double Signalham1310;//M5

   double Signalham5311;//M5

   double Signalham1311;//M5

   double Signalham5312;//M5

   //MULTI TF

   double Signalmaup;

   double Signalmadn;

   double Signalmaup1;

   double Signalmadn1;

   double Signalmaup2;

   double Signalmadn2;

   double Signalmaup3;

   double Signalmadn3;

   double Signalmaup4;

   double Signalmadn4;

   double Signalmaup5;

   double Signalmadn5;

   double Signalmaup6;

   double Signalmadn6;

   double Signalmaup7;

   double Signalmadn7;

   double Signalmaup8;

   double Signalmadn8;

   double Signalmaup9;

   double Signalmadn9;

   double Signalmaup10;

   double Signalmadn10;

   double Signalmaup11;

   double Signalmadn11;

   double Signalmaup12;

   double Signalmadn12;

   double Signalmaup13;

   double Signalmadn13;

   double Signalmaup14;

   double Signalmadn14;

   double Signalmaup15;

   double Signalmadn15;

   double prevSignalusd;

   double Signalusd;

//CANDLE DIRECTION

   double Signalm1;

   double Signalm5;

   double Signalm15;

   double Signalm30;

   double Signalh1;

   double Signalh4;

   double Signald1;

   double Signalw1;

   double Signalmn;

   double Signaldirup;

   double Signaldirdn;

//CANDLE DIRECTION   

}; signal signals[];



struct currency 

  {

   string            curr;

   double            strength;

   double            prevstrength;

   double            crs;

   int               sync;

   datetime          lastbar;

  }

; currency currencies[8];



double totalbuystrength,totalsellstrength;



color ProfitColor,ProfitColor1,ProfitColor2,ProfitColor3,PipsColor,LotColor,LotColor1,OrdColor,OrdColor1,Color,Color1,Color2,Color3,Color4,Color5,Color6,Color7,Color8,Color9,Color10,

      Color11,Color12,ClrLime,ClrRed;

color BackGrnCol =C'20,20,20';

color LineColor=clrBlack;

color TextColor=clrBlack;



struct adrval {

   double adr;

   double adr1;

   double adr5;

   double adr10;

   double adr20;

}; adrval adrvalues[];



double totalprofit,totallots;



datetime s1start,s2start,s3start;

datetime s1end,s2end,s3end;



string comment;

int strper = PERIOD_W1;

int profitbaskets = 0;

int lossbaskets = 0;

int ticket;

int    orders  = 0;

double blots[28],slots[28],bprofit[28],sprofit[28],tprofit[28],bpos[28],spos[28];

bool CloseAll;

string postfix=StringSubstr(Symbol(),6,10);

int   symb_cnt=0;

int period1[]= {240,1440,10080};

double factor;

int labelcolor; 

double GetBalanceSymbol,SymbolMaxDD,SymbolMaxHi;

double PercentFloatingSymbol=0;

double PercentMaxDDSymbol=0;

datetime newday=0;

datetime newm1=0; 

bool   Accending=true;

/* HP */

int localday = 99;

bool s1active = false;

bool s2active = false;

bool s3active = false;

MqlDateTime sess;

string strspl[];

double currentlock = 0.0;

bool trailstarted = false;

double lockdistance = 0.0;

int totaltrades = 0;

int maxtotaltrades=0;

double stoploss;

double takeprofit;

double currstrength[8];

double prevstrength[8];

int i,Current;

string Sig[28],Sell;

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int OnInit()

  {   

                  

    if (UseDefaultPairs == true)

      ArrayCopy(TradePairs,DefaultPairs);

    else

      StringSplit(OwnPairs,',',TradePairs);

   

  for (int i=0;i<8;i++)

      currencies[i].curr = curr[i]; 

   

   if (ArraySize(TradePairs) <= 0) {

      Print("No pairs to trade");

      return(INIT_FAILED);

   }

   

   ArrayResize(adrvalues,ArraySize(TradePairs));

   ArrayResize(signals,ArraySize(TradePairs));

   ArrayResize(pairinfo,ArraySize(TradePairs));

          

    for(int i=0;i<ArraySize(TradePairs);i++){

    TradePairs[i]=TradePairs[i]+postfix;    



     pairinfo[i].base = StringSubstr(TradePairs[i],0,3);

     pairinfo[i].quote = StringSubstr(TradePairs[i],3,0);

   

      if (MarketInfo(TradePairs[i] ,MODE_DIGITS) == 4 || MarketInfo(TradePairs[i] ,MODE_DIGITS) == 2) {

         pairinfo[i].PairPip = MarketInfo(TradePairs[i] ,MODE_POINT);

         pairinfo[i].pipsfactor = 1;

      } else { 

         pairinfo[i].PairPip = MarketInfo(TradePairs[i] ,MODE_POINT)*10;

         pairinfo[i].pipsfactor = 10;

      }

       

         //SetPanel("BarSupMeter",0,x_axis,y_axis-30,1295,30,clrBlack,clrDimGray,1); //CAIXA               

         SetPanel("Bar",0,x_axis,y_axis,1235,448,clrBlack,clrDimGray,1);//CAIXA CINZA FUNDO

         //SetPanel("Panel",0,x_axis+165,y_axis+450,100,120,clrBlack,clrDarkGray,1);//CAIXA BRANCA MAPA DE CALOR

         //SetPanel("BottPanel",0,x_axis+1,y_axis+450,602,77,C'61,61,61',clrWhite,1);

         SetPanel("Spread"+IntegerToString(i),0,x_axis+60,(i*16)+y_axis-1,30,17,clrBlack,clrDimGray,1);

         SetPanel("Pips"+IntegerToString(i),0,x_axis+90,(i*16)+y_axis-1,35,17,clrBlack,clrDimGray,1);

         SetPanel("Adr"+IntegerToString(i),0,x_axis+125,(i*16)+y_axis-1,35,17,clrBlack,clrDimGray,1);

         SetPanel("BidRatio"+IntegerToString(i),0,x_axis+160,(i*16)+y_axis-1,60,17,clrBlack,clrDimGray,1);

         SetPanel("RelStr"+IntegerToString(i),0,x_axis+220,(i*16)+y_axis-1,30,17,clrBlack,clrDimGray,1);

         SetPanel("BSRatio"+IntegerToString(i),0,x_axis+250,(i*16)+y_axis-1,40,17,clrBlack,clrDimGray,1);

         SetPanel("PrevGAP"+IntegerToString(i),0,x_axis+290,(i*16)+y_axis-1,40,17,clrBlack,clrDimGray,1);

         SetPanel("GAP123"+IntegerToString(i),0,x_axis+330,(i*16)+y_axis-1,45,17,clrBlack,clrDimGray,1);

         SetPanel("HM1"+IntegerToString(i),0,x_axis+375,(i*16)+y_axis-1,45,17,BackGrnCol,clrDimGray,1);          

         SetPanel("A01"+IntegerToString(i),0,x_axis+415,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//CCI

         SetPanel("A02"+IntegerToString(i),0,x_axis+435,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//RSI

         //MEDIA MOVEL MTF      

         SetPanel("A03"+IntegerToString(i),0,x_axis+455,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM12 

         SetPanel("A04"+IntegerToString(i),0,x_axis+475,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A05"+IntegerToString(i),0,x_axis+495,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A06"+IntegerToString(i),0,x_axis+515,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM21

         SetPanel("A07"+IntegerToString(i),0,x_axis+535,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A08"+IntegerToString(i),0,x_axis+555,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A09"+IntegerToString(i),0,x_axis+575,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM30

         SetPanel("A10"+IntegerToString(i),0,x_axis+595,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A11"+IntegerToString(i),0,x_axis+615,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A12"+IntegerToString(i),0,x_axis+635,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM50     

         SetPanel("A13"+IntegerToString(i),0,x_axis+655,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A14"+IntegerToString(i),0,x_axis+675,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A15"+IntegerToString(i),0,x_axis+695,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM100

         SetPanel("A16"+IntegerToString(i),0,x_axis+715,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);

         SetPanel("A17"+IntegerToString(i),0,x_axis+735,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);    

         //CANDLE DIRECTION          

         SetPanel("A18"+IntegerToString(i),0,x_axis+755,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TFCANDLE DIRECTION

         SetPanel("A19"+IntegerToString(i),0,x_axis+775,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TF/CANDLE DIRECTION

         SetPanel("A20"+IntegerToString(i),0,x_axis+795,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TF/CANDLE DIRECTION

         SetPanel("A21"+IntegerToString(i),0,x_axis+815,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TFM5/CANDLE DIRECTION

         SetPanel("A221"+IntegerToString(i),0,x_axis+835,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TF15/CANDLE DIRECTION

         SetPanel("A23"+IntegerToString(i),0,x_axis+855,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TFM30/CANDLE DIRECTION

         SetPanel("A24"+IntegerToString(i),0,x_axis+875,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TFH1/CANDLE DIRECTION

         SetPanel("A25"+IntegerToString(i),0,x_axis+895,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TFH4/CANDLE DIRECTION

          

         //CANDLE DIRECTION        

         SetPanel("TP",0,x_axis+1180,y_axis+450,55,15,Black,DimGray,1);//CAIXA BRANCA SUPERIOR //CAIXA BRANCA GAIN/LOOS

         //SetPanel("TP1",0,x_axis+220,y_axis-50,125,20,Black,White,1);//CAIXA BRANCA SUPERIOR

         //SetPanel("TP2",0,x_axis+345,y_axis-50,160,20,Black,White,1);//CAIXA BRANCA SUPERIOR

         //SetPanel("TP3",0,x_axis+505,y_axis-50,160,20,Black,White,1);//CAIXA BRANCA SUPERIOR

         //SetPanel("TP4",0,x_axis+665,y_axis-50,130,20,Black,White,1);//CAIXA BRANCA SUPERIOR

         //SetPanel("TP5",0,x_axis+795,y_axis-50,130,20,Black,White,1);//CAIXA BRANCA SUPERIOR

         //SetPanel("TP6",0,x_axis,y_axis-20,60,17,Black,White,1);//CAIXA BRANCA MERCADO ABERTO

         //SetPanel("TP7",0,x_axis+921,y_axis-50,130,20,Black,White,1);//CAIXA BRANCA SUPERIOR

         //SetPanel("TP8",0,x_axis+1051,y_axis-50,22,20,Black,White,1);//CAIXA BRANCA SUPERIOR

         //SetPanel("TP9",0,x_axis+1073,y_axis-50,22,20,Black,White,1);//CAIXA BRANCA SUPERIOR        

         SetPanel("A222"+IntegerToString(i),0,x_axis+980,(i*16)+y_axis-1,255,17,clrBlack,C'61,61,61',1);//COLUNA LOTES ORDEM LINHAS / LINHA VERDE         

       

         SetText("Pr1"+IntegerToString(i),StringSubstr(TradePairs[i],0,6),x_axis+935,(i*16)+y_axis-1,clrAqua,8);//COLUNA PARES SEGUNDA COLUNA         

         SetText("Spr1"+IntegerToString(i),0,x_axis+65,(i*16)+y_axis-1,Orange,8);//COLUNA PARES 1

         SetText("Pp1"+IntegerToString(i),0,x_axis+95,(i*16)+y_axis-1,PipsColor,8);//COLUNA PARES 1

         SetText("S1"+IntegerToString(i),0,x_axis+133,(i*16)+y_axis-1,Yellow,8);//COLUNA PARES 1

         SetText("bLots"+IntegerToString(i),DoubleToStr(blots[i],2),x_axis+985,(i*16)+y_axis-1,C'61,61,61',8);

         SetText("sLots"+IntegerToString(i),DoubleToStr(slots[i],2),x_axis+1030,(i*16)+y_axis-1,C'61,61,61',8);

         SetText("bPos"+IntegerToString(i),DoubleToStr(bpos[i],0),x_axis+1070,(i*16)+y_axis-1,C'61,61,61',8);

         SetText("sPos"+IntegerToString(i),DoubleToStr(spos[i],0),x_axis+1095,(i*16)+y_axis-1,C'61,61,61',8);

         SetText("TProf"+IntegerToString(i),DoubleToStr(MathAbs(bprofit[i]),2),x_axis+1120,(i*16)+y_axis-1,C'61,61,61',8);

         SetText("SProf"+IntegerToString(i),DoubleToStr(MathAbs(sprofit[i]),2),x_axis+1160,(i*16)+y_axis-1,C'61,61,61',8);

         SetText("TtlProf"+IntegerToString(i),DoubleToStr(MathAbs(tprofit[i]),2),x_axis+1200,(i*16)+y_axis-1,C'61,61,61',8);

         SetText("TotProf",DoubleToStr(MathAbs(totalprofit),2),x_axis+1195,y_axis+450,ProfitColor1,8);//CAIXA GAIN/LOOS TOTAL         

         //SetText("Lowest","Lowest= "+DoubleToStr(SymbolMaxDD,2)+" ("+DoubleToStr(PercentMaxDDSymbol,2)+"%)",x_axis+670,y_axis-47,BearColor,8);

         //SetText("Highest","Highest= "+DoubleToStr(SymbolMaxHi,2)+" ("+DoubleToStr(PercentFloatingSymbol,2)+"%)",x_axis+800,y_axis-47,BullColor,8);

         //SetText("Lock","Lock= "+DoubleToStr(currentlock,2),x_axis+925,y_axis-47,BullColor,8);

         //SetText("Won",IntegerToString(profitbaskets,2),x_axis+1053,y_axis-47,BullColor,8);

         //SetText("Lost",IntegerToString(lossbaskets,2),x_axis+1075,y_axis-47,BearColor,8);

         

         

         

         Create_Button(IntegerToString(i)+"Pair",StringSubstr(TradePairs[i],0,6),60 ,19,x_axis ,(i*16)+y_axis-1,C'35,35,35',clrAqua); //COLUNA PARES PRIMEIRA COLUNA

         Create_Button(i+"Hold","~",18 ,17,x_axis+915,(i*16)+y_axis-1,C'35,35,35',clrAqua);

      

         Create_Button(i+"BUY","BUY",25 ,17,x_axis+1235,(i*16)+y_axis-1,C'35,35,35',clrLime);           

         Create_Button(i+"SELL","SELL",30 ,17,x_axis+1260 ,(i*16)+y_axis-1,C'35,35,35',clrRed);

         Create_Button(i+"CLOSE","C",15 ,17,x_axis+1290,(i*16)+y_axis-1,C'35,35,35',clrYellow);

   }

   

   //SetText("TPr","Basket TakeProfit =$ "+DoubleToStr(Basket_Target,0),x_axis+378,y_axis-47,Lime,8);

   //SetText("SL","Basket StopLoss =$ -"+DoubleToStr(Basket_StopLoss,0),x_axis+538,y_axis-47,Red,8);                 

   //SetText("Symbol","Sprd    PFO     ADR     BidRatio     RStr   BSRatio  Prev",x_axis+60,y_axis-17,White,8);

   //SetText("Sy","Gap       HeatMap",x_axis+335,y_axis-17,White,8);   

   //SetText("Sy2","12                21                30",x_axis+460,y_axis-17,White,7);

   //SetText("Sy21","50                100",x_axis+640,y_axis-17,White,7);

   //SetText("Sy22","              12    21   30    50  100  ",x_axis+615,y_axis-17,White,7);   

   //SetText("Sy4","Médias Moveis",x_axis+470,y_axis-30,White,8);

   //SetText("Sy41","Médias Moveis",x_axis+570,y_axis-30,White,8);

   //SetText("Sy42","Médias Moveis",x_axis+670,y_axis-30,White,8);

   //SetText("Direct","Candle Direction",x_axis+770,y_axis-30,White,8);

   //SetText("Trend","M5  M15  M30  H1  H4  ",x_axis+760,y_axis-17,White,7);

   //SetText("TTr","Lotes             Ordens",x_axis+1003,y_axis-30,C'51,160,180',8);             

   //SetText("Trades","Buy        Sell      Buy  Sell     Buy     Sell",x_axis+985,y_axis-17,C'51,160,180',8);

   //SetText("Sy3","LTA /LTB  SUP/RES   ",x_axis+520,y_axis-17,White,7);  

   //SetText("Logo","FENIX CAPITAL",x_axis+593,y_axis-25,Lime,15);

   //SetText("BASKET","CORRELAÇÃO",x_axis+1100,y_axis-25,Lime,15);           

   



    //Basket Trades

   int basket_x = x_axis ;

   int basket_y = y_axis + 440;

   int i = 0;

   

   //AUD

   Create_Button(button_AUD_basket,"AUD",40 ,15,basket_x+0 ,basket_y+10,C'35,35,35',clrWhite);//

   Create_Button(button_AUD_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+10,C'35,35,35',clrLime);//

   Create_Button(button_AUD_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+10,C'35,35,35',clrRed);//

   Create_Button(button_AUD_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+10,C'35,35,35',clrYellow);//

   //CAD

   i += 50;

   Create_Button(button_CAD_basket,"CAD",40 ,15,basket_x+0 ,basket_y+25,C'35,35,35',clrWhite);//

   Create_Button(button_CAD_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+25,C'35,35,35',clrLime);//

   Create_Button(button_CAD_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+25,C'35,35,35',clrRed);//

   Create_Button(button_CAD_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+25,C'35,35,35',clrYellow);//

   //CHF

   i += 50;

   Create_Button(button_CHF_basket,"CHF",40 ,15,basket_x+0 ,basket_y+40,C'35,35,35',clrWhite);//

   Create_Button(button_CHF_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+40,C'35,35,35',clrLime);//

   Create_Button(button_CHF_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+40,C'35,35,35',clrRed);//

   Create_Button(button_CHF_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+40,C'35,35,35',clrYellow);//

   //EUR

   i += 50;

   Create_Button(button_EUR_basket,"EUR",40 ,15,basket_x+0 ,basket_y+55,C'35,35,35',clrWhite);//

   Create_Button(button_EUR_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+55,C'35,35,35',clrLime);//

   Create_Button(button_EUR_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+55,C'35,35,35',clrRed);//

   Create_Button(button_EUR_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+55,C'35,35,35',clrYellow);//

   //GBP

   i += 50;

   Create_Button(button_GBP_basket,"GBP",40 ,15,basket_x+0 ,basket_y+70,C'35,35,35',clrWhite);//

   Create_Button(button_GBP_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+70,C'35,35,35',clrLime);//

   Create_Button(button_GBP_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+70,C'35,35,35',clrRed);//

   Create_Button(button_GBP_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+70,C'35,35,35',clrYellow);//

   //JPY

   i += 50;

   Create_Button(button_JPY_basket,"JPY",40 ,15,basket_x+0 ,basket_y+85,C'35,35,35',clrWhite);//

   Create_Button(button_JPY_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+85,C'35,35,35',clrLime);//

   Create_Button(button_JPY_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+85,C'35,35,35',clrRed);//

   Create_Button(button_JPY_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+85,C'35,35,35',clrYellow);//

   //NZD

   i += 50;

   Create_Button(button_NZD_basket,"NZD",40 ,15,basket_x+0 ,basket_y+100,C'35,35,35',clrWhite);//

   Create_Button(button_NZD_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+100,C'35,35,35',clrLime);//

   Create_Button(button_NZD_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+100,C'35,35,35',clrRed);//

   Create_Button(button_NZD_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+100,C'35,35,35',clrYellow);//

   //USD

   i += 50;

   Create_Button(button_USD_basket,"USD",40 ,15,basket_x+0 ,basket_y+115,C'35,35,35',clrWhite);//

   Create_Button(button_USD_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+115,C'35,35,35',clrLime);//

   Create_Button(button_USD_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+115,C'35,35,35',clrRed);//

   Create_Button(button_USD_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+115,C'35,35,35',clrYellow);//

   

   Create_Button(button_close_basket_All,"CLOSE ALL",80 ,18,x_axis-1 ,basket_y+130,C'35,35,35',clrWhite);//

   Create_Button(button_close_basket_Prof,"CLOSE PROFIT",80 ,18,x_axis+80 ,basket_y+130,C'35,35,35',clrLime);//

   Create_Button(button_close_basket_Loss,"CLOSE LOSS",80 ,18,x_axis+160 ,basket_y+130,C'35,35,35',clrRed);//

   Create_Button(button_reset_ea,"RESET EA",80 ,18,x_axis+240 ,basket_y+130,C'35,35,35',clrYellow);//

   

   Create_Button("button_autotrade","Manual",60 ,18,x_axis+1235 ,y_axis-20,C'51,51,51',clrGreen);

   Create_Button("button_trigger_use_TRADING","",60 ,18,x_axis+1 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_use_SPR","Spr",30 ,18,x_axis+60 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_use_ADR","ADR",35 ,18,x_axis+125 ,y_axis-20,C'51,51,51',C'51,160,180');      

   Create_Button("button_trigger_use_Pips","Pip",35 ,18,x_axis+90 ,y_axis-20,C'51,51,51',C'51,160,180');         

   Create_Button("button_trigger_use_bidratio","Bidratio",60 ,18,x_axis+160 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_use_relstrength","RStr",30 ,18,x_axis+220 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_use_buysellratio","BSRatio",40 ,18,x_axis+250 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_use_SigGapPrev","Prev.G",40 ,18,x_axis+290 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_use_gap","Gap",45 ,18,x_axis+330 ,y_axis-20,C'51,51,51',C'51,160,180');   

   Create_Button("button_trigger_UseHeatMap1","H.Map",40 ,18,x_axis+375 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_UseCCI","CCI",20 ,18,x_axis+415 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_UseRSI","RSI",20 ,18,x_axis+435 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_UseÑ","Ñ",20 ,18,x_axis+455 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_UseÃ","Ñ",20 ,18,x_axis+475 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_UseÕ","Ñ",20 ,18,x_axis+495 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_Moving_Average","MM12",60 ,18,x_axis+515 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_MA","MM21",60 ,18,x_axis+575 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_SMA","MM30",60 ,18,x_axis+635 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_Moving_Average1","MM50",60 ,18,x_axis+695 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_MA2","MM100",60 ,18,x_axis+755 ,y_axis-20,C'51,51,51',C'51,160,180');

   Create_Button("button_trigger_Candle_Direction","Candle Direction",100 ,18,x_axis+815 ,y_axis-20,C'51,51,51',C'51,160,180');

   

   

//=============================================================================================================     



   newday = 0;

   newm1=0;



/*  HP  */

   localday = 99;

   s1active = false;

   s2active = false;

   s3active = false;

   trailstarted = false;



   if (MaxTotalTrades == 0)

      maxtotaltrades = ArraySize(TradePairs) * MaxTrades;

   else

      maxtotaltrades = MaxTotalTrades;

      

                

/*  HP  */



   EventSetTimer(1);



   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

//--- destroy timer

   EventKillTimer();

   ObjectsDeleteAll();

      

  }



//+------------------------------------------------------------------+

//| Timer function                                                   |

//+------------------------------------------------------------------+

void OnTimer() {



   Trades();



   TradeManager();



   PlotTrades();



   PlotSpreadPips();



   GetSignals();  

   

//   Geth4d1(); 

            

   displayMeter();

   

   GetTrendChange();

   

//   GetCommodity();

   

   if (newday != iTime("EURUSD"+postfix,PERIOD_D1,0)) {

      GetAdrValues();

      PlotAdrValues();

      newday = iTime("EURUSD"+postfix,PERIOD_D1,0);

   }

          

   if (DashUpdate == 0 || (DashUpdate == 1 && newm1 != iTime("EURUSD"+postfix,PERIOD_M1,0)) || (DashUpdate == 5 && newm1 != iTime("EURUSD"+postfix,PERIOD_M5,0))) {



      

   for(int i=0;i<ArraySize(TradePairs);i++) 

   for(int a=0;a<5;a++){

     

       ChngBoxCol((signals[i].Signalperc * 100), i);      

       

     SetText("Percent"+IntegerToString(i),DoubleToStr(signals[i].Signalperc,2)+"%" ,x_axis+380,(i*16)+y_axis,clrBlack,8);//CAIXA HeatMap

     

     if(pairinfo[i].PipsSig==UP){SetObjText("Sigpips"+IntegerToString(i),CharToStr(225),x_axis+114,(i*16)+y_axis,clrLime,9);}

     else if(pairinfo[i].PipsSig==DOWN){SetObjText("Sigpips"+IntegerToString(i),CharToStr(226),x_axis+114,(i*16)+y_axis,clrRed,9);}

   

      if(signals[i].Signalcci==UP){SetObjText("CCI"+IntegerToString(i),CharToStr(217),x_axis+420,(i*16)+y_axis+1,BullColor,9);}//02 CCI

      if(signals[i].Signalcci==DOWN){SetObjText("CCI"+IntegerToString(i),CharToStr(218),x_axis+420,(i*16)+y_axis+1,BearColor,9);}//02 CCI

      if(signals[i].Signalrsi==UP){SetObjText("RSI"+IntegerToString(i),CharToStr(217),x_axis+440,(i*16)+y_axis+1,BullColor,9);}//01 RSI

      if(signals[i].Signalrsi==DOWN){SetObjText("RSI"+IntegerToString(i),CharToStr(218),x_axis+440,(i*16)+y_axis+1,BearColor,9);}//01 RSI     

      

      //MEDIAS MOVEIS TF

      if(signals[i].Signalham12==UP){SetObjText("MM12M1"+IntegerToString(i),CharToStr(228),x_axis+515,(i*16)+y_axis+1,BullColor,9);}//06 MM12 M1

      if(signals[i].Signalham12==DOWN){SetObjText("MM12M1"+IntegerToString(i),CharToStr(230),x_axis+515,(i*16)+y_axis+1,BearColor,9);}//06 MM12 M1

      if(signals[i].Signalham52==UP){SetObjText("MM12M5"+IntegerToString(i),CharToStr(228),x_axis+525,(i*16)+y_axis+1,BullColor,9);}//06 MM12 M5

      if(signals[i].Signalham52==DOWN){SetObjText("MM12M5"+IntegerToString(i),CharToStr(230),x_axis+525,(i*16)+y_axis+1,BearColor,9);}//06 MM12 M5

      if(signals[i].Signalham13==UP){SetObjText("MM12M15"+IntegerToString(i),CharToStr(228),x_axis+535,(i*16)+y_axis+1,BullColor,9);}//06 MM12 M15

      if(signals[i].Signalham13==DOWN){SetObjText("MM12M15"+IntegerToString(i),CharToStr(230),x_axis+535,(i*16)+y_axis+1,BearColor,9);}//06 MM12 M15

      if(signals[i].Signalham53==UP){SetObjText("MM12M30"+IntegerToString(i),CharToStr(228),x_axis+545,(i*16)+y_axis+1,BullColor,9);}//06 MM12 M30

      if(signals[i].Signalham53==DOWN){SetObjText("MM12M30"+IntegerToString(i),CharToStr(230),x_axis+545,(i*16)+y_axis+1,BearColor,9);}//06 MM12 M30

      if(signals[i].Signalham1310==UP){SetObjText("MM12H1"+IntegerToString(i),CharToStr(228),x_axis+555,(i*16)+y_axis+1,BullColor,9);}//06 MM12 H1

      if(signals[i].Signalham1310==DOWN){SetObjText("MM12H1"+IntegerToString(i),CharToStr(230),x_axis+555,(i*16)+y_axis+1,BearColor,9);}//06 MM12 H1

      if(signals[i].Signalham5311==UP){SetObjText("MM12H4"+IntegerToString(i),CharToStr(228),x_axis+565,(i*16)+y_axis+1,BullColor,9);}//06 MM12 H4

      if(signals[i].Signalham5311==DOWN){SetObjText("MM12H4"+IntegerToString(i),CharToStr(230),x_axis+565,(i*16)+y_axis+1,BearColor,9);}//06 MM12 H4 



      if(signals[i].Signalham1311==UP){SetObjText("MM21M1"+IntegerToString(i),CharToStr(228),x_axis+575,(i*16)+y_axis+1,BullColor,9);}//07 MM21 M1

      if(signals[i].Signalham1311==DOWN){SetObjText("MM21M1"+IntegerToString(i),CharToStr(230),x_axis+575,(i*16)+y_axis+1,BearColor,9);}//07 MM21 M1

      if(signals[i].Signalham5312==UP){SetObjText("MM21M5"+IntegerToString(i),CharToStr(228),x_axis+585,(i*16)+y_axis+1,BullColor,9);}//07 MM21 M5

      if(signals[i].Signalham5312==DOWN){SetObjText("MM21M5"+IntegerToString(i),CharToStr(230),x_axis+585,(i*16)+y_axis+1,BearColor,9);}//07 MM21 M5

      if(signals[i].Signalham15==UP){SetObjText("MM21M15"+IntegerToString(i),CharToStr(228),x_axis+595,(i*16)+y_axis+1,BullColor,9);}//07 MM21 M15 

      if(signals[i].Signalham15==DOWN){SetObjText("MM21M15"+IntegerToString(i),CharToStr(230),x_axis+595,(i*16)+y_axis+1,BearColor,9);}//07 MM21 M15

      if(signals[i].Signalham30==UP){SetObjText("MM21M30"+IntegerToString(i),CharToStr(228),x_axis+605,(i*16)+y_axis+1,BullColor,9);}//07 MM21 M30

      if(signals[i].Signalham30==DOWN){SetObjText("MM21M30"+IntegerToString(i),CharToStr(230),x_axis+605,(i*16)+y_axis+1,BearColor,9);}//07 MM21 M30

      if(signals[i].Signalham1==UP){SetObjText("MM21H1"+IntegerToString(i),CharToStr(228),x_axis+615,(i*16)+y_axis+1,BullColor,9);}//07 MM21 H1

      if(signals[i].Signalham1==DOWN){SetObjText("MM21H1"+IntegerToString(i),CharToStr(230),x_axis+615,(i*16)+y_axis+1,BearColor,9);}//07 MM21 H1 

      if(signals[i].Signalham5==UP){SetObjText("MM21H4"+IntegerToString(i),CharToStr(228),x_axis+625,(i*16)+y_axis+1,BullColor,9);}//07 MM21 H4

      if(signals[i].Signalham5==DOWN){SetObjText("MM21H4"+IntegerToString(i),CharToStr(230),x_axis+625,(i*16)+y_axis+1,BearColor,9);}//07 MM21 H4 

 

      if(signals[i].Signalhah4==UP){SetObjText("MM30M1"+IntegerToString(i),CharToStr(228),x_axis+635,(i*16)+y_axis+1,BullColor,9);}//03 MM30 M1

      if(signals[i].Signalhah4==DOWN){SetObjText("MM30M1"+IntegerToString(i),CharToStr(230),x_axis+635,(i*16)+y_axis+1,BearColor,9);}//03 MM30 M1

      if(signals[i].Signalhad1==UP){SetObjText("MM30M5"+IntegerToString(i),CharToStr(228),x_axis+645,(i*16)+y_axis+1,BullColor,9);}//03 MM30 M5

      if(signals[i].Signalhad1==DOWN){SetObjText("MM30M5"+IntegerToString(i),CharToStr(230),x_axis+645,(i*16)+y_axis+1,BearColor,9);}//03 MM30 M5

      if(signals[i].Signalhah410==UP){SetObjText("MM30M15"+IntegerToString(i),CharToStr(228),x_axis+655,(i*16)+y_axis+1,BullColor,9);}//03 MM30 M15

      if(signals[i].Signalhah410==DOWN){SetObjText("MM30M15"+IntegerToString(i),CharToStr(230),x_axis+655,(i*16)+y_axis+1,BearColor,9);}//03 MM30 M15

      if(signals[i].Signalhad111==UP){SetObjText("MM30M30"+IntegerToString(i),CharToStr(228),x_axis+665,(i*16)+y_axis+1,BullColor,9);}//03 MM30 M30

      if(signals[i].Signalhad111==DOWN){SetObjText("MM30M30"+IntegerToString(i),CharToStr(230),x_axis+665,(i*16)+y_axis+1,BearColor,9);}//03 MM30 M30

      if(signals[i].Signalhah411==UP){SetObjText("MM30H1"+IntegerToString(i),CharToStr(228),x_axis+675,(i*16)+y_axis+1,BullColor,9);}//03 MM30 H1

      if(signals[i].Signalhah411==DOWN){SetObjText("MM30H1"+IntegerToString(i),CharToStr(230),x_axis+675,(i*16)+y_axis+1,BearColor,9);}//03 MM30 H1 

      if(signals[i].Signalhad112==UP){SetObjText("MM30H4"+IntegerToString(i),CharToStr(228),x_axis+685,(i*16)+y_axis+1,BullColor,9);}//03 MM30 H4

      if(signals[i].Signalhad112==DOWN){SetObjText("MM30H4"+IntegerToString(i),CharToStr(230),x_axis+685,(i*16)+y_axis+1,BearColor,9);}//03 MM30 H4 



      if(signals[i].Signalham1510==UP){SetObjText("MM50M1"+IntegerToString(i),CharToStr(228),x_axis+695,(i*16)+y_axis+1,BullColor,9);}//04 MM50 M1

      if(signals[i].Signalham1510==DOWN){SetObjText("MM50M1"+IntegerToString(i),CharToStr(230),x_axis+695,(i*16)+y_axis+1,BearColor,9);}//04 MM50 M1

      if(signals[i].Signalham3011==UP){SetObjText("MM50M5"+IntegerToString(i),CharToStr(228),x_axis+705,(i*16)+y_axis+1,BullColor,9);}//04 MM50 M5

      if(signals[i].Signalham3011==DOWN){SetObjText("MM50M5"+IntegerToString(i),CharToStr(230),x_axis+705,(i*16)+y_axis+1,BearColor,9);}//04 MM50 M5

      if(signals[i].Signalham1511==UP){SetObjText("MM50M15"+IntegerToString(i),CharToStr(228),x_axis+715,(i*16)+y_axis+1,BullColor,9);}//04 MM50 M15

      if(signals[i].Signalham1511==DOWN){SetObjText("MM50M15"+IntegerToString(i),CharToStr(230),x_axis+715,(i*16)+y_axis+1,BearColor,9);}//04 MM50 M15 

      if(signals[i].Signalham3012==UP){SetObjText("MM50M30"+IntegerToString(i),CharToStr(228),x_axis+725,(i*16)+y_axis+1,BullColor,9);}//04 MM50 M30

      if(signals[i].Signalham3012==DOWN){SetObjText("MM50M30"+IntegerToString(i),CharToStr(230),x_axis+725,(i*16)+y_axis+1,BearColor,9);}//04 MM50 M30 

      if(signals[i].Signalham110==UP){SetObjText("MM50H1"+IntegerToString(i),CharToStr(228),x_axis+735,(i*16)+y_axis+1,BullColor,9);}//04 MM50 H1

      if(signals[i].Signalham110==DOWN){SetObjText("MM50H1"+IntegerToString(i),CharToStr(230),x_axis+735,(i*16)+y_axis+1,BearColor,9);}//04 MM50 H1 

      if(signals[i].Signalham511==UP){SetObjText("MM50H4"+IntegerToString(i),CharToStr(228),x_axis+745,(i*16)+y_axis+1,BullColor,9);}//04 MM50 H4

      if(signals[i].Signalham511==DOWN){SetObjText("MM50H4"+IntegerToString(i),CharToStr(230),x_axis+745,(i*16)+y_axis+1,BearColor,9);}//04 MM50 H4 



      if(signals[i].Signalham111==UP){SetObjText("MM100M1"+IntegerToString(i),CharToStr(228),x_axis+755,(i*16)+y_axis+1,BullColor,9);}//05 MM100 M1

      if(signals[i].Signalham111==DOWN){SetObjText("MM100M1"+IntegerToString(i),CharToStr(230),x_axis+755,(i*16)+y_axis+1,BearColor,9);}//05 MM100 M1

      if(signals[i].Signalham512==UP){SetObjText("MM100M5"+IntegerToString(i),CharToStr(228),x_axis+765,(i*16)+y_axis+1,BullColor,9);}//05 MM100 M5

      if(signals[i].Signalham512==DOWN){SetObjText("MM100M5"+IntegerToString(i),CharToStr(230),x_axis+765,(i*16)+y_axis+1,BearColor,9);}//05 MM100 M5

      if(signals[i].Signalham1210==UP){SetObjText("MM100M15"+IntegerToString(i),CharToStr(228),x_axis+775,(i*16)+y_axis+1,BullColor,9);}//05 MM100 M15

      if(signals[i].Signalham1210==DOWN){SetObjText("MM100M15"+IntegerToString(i),CharToStr(230),x_axis+775,(i*16)+y_axis+1,BearColor,9);}//05 MM100 M15 

      if(signals[i].Signalham5211==UP){SetObjText("MM100M30"+IntegerToString(i),CharToStr(228),x_axis+785,(i*16)+y_axis+1,BullColor,9);}//05 MM100 M30

      if(signals[i].Signalham5211==DOWN){SetObjText("MM100M30"+IntegerToString(i),CharToStr(230),x_axis+785,(i*16)+y_axis+1,BearColor,9);}//05 MM100 M30  

      if(signals[i].Signalham1211==UP){SetObjText("MM100H1"+IntegerToString(i),CharToStr(228),x_axis+795,(i*16)+y_axis+1,BullColor,9);}//05 MM100 H1

      if(signals[i].Signalham1211==DOWN){SetObjText("MM100H1"+IntegerToString(i),CharToStr(230),x_axis+795,(i*16)+y_axis+1,BearColor,9);}//05 MM100 H1 

      if(signals[i].Signalham5212==UP){SetObjText("MM100H4"+IntegerToString(i),CharToStr(228),x_axis+805,(i*16)+y_axis+1,BullColor,9);}//05 MM100 H4

      if(signals[i].Signalham5212==DOWN){SetObjText("MM100H4"+IntegerToString(i),CharToStr(230),x_axis+805,(i*16)+y_axis+1,BearColor,9);}//05 MM100 H4                          

      //CANDLE DIRECTION

      if(signals[i].Signalm5==UP){SetObjText("CDM5"+IntegerToString(i),CharToStr(110),x_axis+818,(i*16)+y_axis-4,BullColor,15);}//08 CANDLE DIRECTION

      if(signals[i].Signalm5==DOWN){SetObjText("CDM5"+IntegerToString(i),CharToStr(110),x_axis+818,(i*16)+y_axis-4,BearColor,15);}//08 CANDLE DIRECTION

      if(signals[i].Signalm15==UP){SetObjText("CDM15"+IntegerToString(i),CharToStr(110),x_axis+838,(i*16)+y_axis-4,BullColor,15);}//08 CANDLE DIRECTION

      if(signals[i].Signalm15==DOWN){SetObjText("CDM15"+IntegerToString(i),CharToStr(110),x_axis+838,(i*16)+y_axis-4,BearColor,15);}//08 CANDLE DIRECTION      

      if(signals[i].Signalm30==UP){SetObjText("CDM30"+IntegerToString(i),CharToStr(110),x_axis+858,(i*16)+y_axis-4,BullColor,15);}//08 CANDLE DIRECTION

      if(signals[i].Signalm30==DOWN){SetObjText("CDM30"+IntegerToString(i),CharToStr(110),x_axis+858,(i*16)+y_axis-4,BearColor,15);}//08 CANDLE DIRECTION

      if(signals[i].Signalh1==UP){SetObjText("CDH1"+IntegerToString(i),CharToStr(110),x_axis+878,(i*16)+y_axis-4,BullColor,15);}//09 CANDLE DIRECTION

      if(signals[i].Signalh1==DOWN){SetObjText("CDH1"+IntegerToString(i),CharToStr(110),x_axis+878,(i*16)+y_axis-4,BearColor,15);}//09 CANDLE DIRECTION

      if(signals[i].Signalh4==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(110),x_axis+898,(i*16)+y_axis-4,BullColor,15);}//10 CANDLE DIRECTION

      if(signals[i].Signalh4==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(110),x_axis+898,(i*16)+y_axis-4,BearColor,15);}//10 CANDLE DIRECTION

      //if(signals[i].Signald1==UP){SetObjText("CDD1"+IntegerToString(i),CharToStr(110),x_axis+858,(i*16)+y_axis-4,BullColor,15);}//11 CANDLE DIRECTION 

      //if(signals[i].Signald1==DOWN){SetObjText("CDD1"+IntegerToString(i),CharToStr(110),x_axis+858,(i*16)+y_axis-4,BearColor,15);}//11 CANDLE DIRECTION

      //CANDLE DIRECTION

     SetText("BidRat"+IntegerToString(i),DoubleToStr(signals[i].ratio,1)+"%",x_axis+165,(i*16)+y_axis,Colorstr(signals[i].ratio),8); 

     SetText("RelStrgth"+IntegerToString(i),DoubleToStr(signals[i].calc,0),x_axis+228,(i*16)+y_axis,Colorsync(signals[i].calc),8);

     SetText("BSRat"+IntegerToString(i),DoubleToStr(signals[i].strength5,1),x_axis+256,(i*16)+y_axis,ColorBSRat(signals[i].strength5),8);

     SetText("PrevGap"+IntegerToString(i),DoubleToStr(signals[i].strength8,1),x_axis+300,(i*16)+y_axis,clrGray,8);

     SetText("gap"+signals[i].symbol, DoubleToStr(signals[i].strength_Gap,1),x_axis+333,(i*16)+y_axis,ColorGap(signals[i].strength_Gap),8);

     

     if(signals[i].SigRatioPrev==UP){SetObjText("Sig"+IntegerToString(i),CharToStr(225),x_axis+206,(i*16)+y_axis,clrLime,10);}

     else if(signals[i].SigRatioPrev==DOWN){SetObjText("Sig"+IntegerToString(i),CharToStr(226),x_axis+206,(i*16)+y_axis,clrRed,10);}

     

     if(signals[i].SigGapPrev==UP){SetObjText("GapSig"+IntegerToString(i),CharToStr(225),x_axis+360,(i*16)+y_axis,clrLime,10);}

     else if(signals[i].SigGapPrev==DOWN){SetObjText("GapSig"+IntegerToString(i),CharToStr(226),x_axis+360,(i*16)+y_axis,clrRed,10);}

     else {SetObjText("GapSig"+IntegerToString(i),CharToStr(224),x_axis+360,(i*16)+y_axis,clrWhite,10);}

//---------------------------------------------------------------------------------------------------------------------------+                

      if (((pairinfo[i].PipsSig==UP && pairinfo[i].Pips > trade_MIN_pips) || trigger_use_Pips==false)

      && ((signals[i].SigRatioPrev==UP && signals[i].ratio>=trigger_buy_bidratio) || trigger_use_bidratio==false)

      &&  (signals[i].calc>=trigger_buy_relstrength || trigger_use_relstrength==false)

      &&  (signals[i].strength5>=trigger_buy_buysellratio || trigger_use_buysellratio==false)

      && ((signals[i].SigGapPrev==UP && signals[i].strength_Gap>=trigger_gap_buy) || trigger_use_gap==false)

      &&(signals[i].Signalcci == UP || UseCCI==false)

      &&(signals[i].Signalrsi == UP || UseRSI==false)

      &&(signals[i].Signalmaup1>0||trigger_Moving_Average==false )

      &&(signals[i].Signalmaup2>0||trigger_MA==false )

      &&(signals[i].Signalmaup3>0||trigger_SMA==false )

      &&(signals[i].Signalmaup4>0||trigger_Moving_Average1==false )

      &&(signals[i].Signalmaup5>0||trigger_MA2==false )

      //MEDIAS MOVEIS TF

      &&(signals[i].Signalmaup6>0||trigger_Moving_Average==false )

      &&(signals[i].Signalmaup7>0||trigger_MA==false )

      &&(signals[i].Signalmaup8>0||trigger_SMA==false )

      &&(signals[i].Signalmaup9>0||trigger_Moving_Average1==false )

      &&(signals[i].Signalmaup10>0||trigger_MA2==false )

      //MEDIAS MOVEIS TF

      //MEDIAS MOVEIS TF

      &&(signals[i].Signalmaup11>0||trigger_Moving_Average==false )

      &&(signals[i].Signalmaup12>0||trigger_MA==false )

      &&(signals[i].Signalmaup13>0||trigger_SMA==false )

      &&(signals[i].Signalmaup14>0||trigger_Moving_Average1==false )

      &&(signals[i].Signalmaup15>0||trigger_MA2==false )

      //MEDIAS MOVEIS TF

      &&(signals[i].Signaldirup>0||trigger_Candle_Direction==false) 

      &&(signals[i].Signalperc >trade_MIN_HeatMap1 || trigger_UseHeatMap1==false)&&(signals[i].Signalcci == UP || UseCCI==false)&&(signals[i].Signalrsi == UP || UseRSI==false)&&(signals[i].Signalmaup1>0||trigger_Moving_Average==false )&&(signals[i].Signalmaup2>0||trigger_MA==false )&&(signals[i].Signalmaup3>0||trigger_SMA==false )&&(signals[i].Signalmaup4>0||trigger_Moving_Average1==false )&&(signals[i].Signalmaup5||trigger_MA2==false )&&(signals[i].Signalmaup6>0||trigger_Moving_Average==false )&&(signals[i].Signalmaup7>0||trigger_MA==false )&&(signals[i].Signalmaup8>0||trigger_SMA==false )&&(signals[i].Signalmaup9>0||trigger_Moving_Average1==false )&&(signals[i].Signalmaup10>0||trigger_MA2==false )&&(signals[i].Signalmaup11>0||trigger_Moving_Average==false )&&(signals[i].Signalmaup12>0||trigger_MA==false )&&(signals[i].Signalmaup13>0||trigger_SMA==false )&&(signals[i].Signalmaup14>0||trigger_Moving_Average1==false )&&(signals[i].Signalmaup15>0||trigger_MA2==false )&&(signals[i].Signaldirup>0||trigger_Candle_Direction==false))      

       {

         labelcolor = clrGreen;

         if ((bpos[i]+spos[i]) < MaxTrades && pairinfo[i].lastSignal != BUY && autotrade == true && (OnlyAddProfit == false || bprofit[i] >= 0.0) && pairinfo[i].Spread <= MaxSpread && inSession() == true && totaltrades <= maxtotaltrades) {

            pairinfo[i].lastSignal = BUY;

            

            while (IsTradeContextBusy()) Sleep(100);

            ticket=OrderSend(TradePairs[i],OP_BUY,lot,MarketInfo(TradePairs[i],MODE_ASK),100,0,0,comment,Magic_Number,0,Blue);

            if (OrderSelect(ticket,SELECT_BY_TICKET) == true) {

                if (Pipsl != 0.0)

                           stoploss=OrderOpenPrice() - Pipsl * pairinfo[i].PairPip;

                        else

                           if (Adr1sl != 0.0)

                              stoploss=OrderOpenPrice() - ((adrvalues[i].adr10/100)*Adr1sl) * pairinfo[i].PairPip;

                           else

                              stoploss = 0.0;



                        if (Piptp != 0.0)

                              takeprofit=OrderOpenPrice() + Piptp * pairinfo[i].PairPip;

                        else

                           if (Adr1tp != 0.0)

                              takeprofit=OrderOpenPrice() + ((adrvalues[i].adr10/100)*Adr1tp) * pairinfo[i].PairPip;

                           else

                              takeprofit = 0.0;

                              

               

               while (IsTradeContextBusy()) Sleep(100);

               OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(stoploss,MarketInfo(TradePairs[i],MODE_DIGITS)),NormalizeDouble(takeprofit,MarketInfo(TradePairs[i],MODE_DIGITS)),0,clrBlue);

            }

         }

      } else {

         if (((pairinfo[i].PipsSig==DOWN && pairinfo[i].Pips < -trade_MIN_pips) || trigger_use_Pips==false) 

         && ((signals[i].SigRatioPrev==DOWN && signals[i].ratio<=trigger_sell_bidratio) || trigger_use_bidratio==false)

         &&  (signals[i].calc<=trigger_sell_relstrength || trigger_use_relstrength==false)

         &&  (signals[i].strength5<=trigger_sell_buysellratio || trigger_use_buysellratio==false)

         && ((signals[i].SigGapPrev==DOWN && signals[i].strength_Gap<=trigger_gap_sell) || trigger_use_gap==false)

         &&(signals[i].Signalcci == DOWN || UseCCI==false)

         &&(signals[i].Signalrsi == DOWN || UseRSI==false)

         &&(signals[i].Signalmadn1<0||trigger_Moving_Average==false )

         &&(signals[i].Signalmadn2<0||trigger_MA==false )

         &&(signals[i].Signalmadn3<0||trigger_SMA==false )

         &&(signals[i].Signalmadn4<0||trigger_Moving_Average==false )

         &&(signals[i].Signalmadn5<0||trigger_MA2==false )

         //MEDIAS MOVEIS TF

         &&(signals[i].Signalmadn6<0||trigger_Moving_Average==false )

         &&(signals[i].Signalmadn7<0||trigger_MA==false )

         &&(signals[i].Signalmadn8<0||trigger_SMA==false )

         &&(signals[i].Signalmadn9<0||trigger_Moving_Average1==false )

         &&(signals[i].Signalmadn10<0||trigger_MA2==false )

         //MEDIAS MOVEIS TF

         //MEDIAS MOVEIS TF

         &&(signals[i].Signalmadn11<0||trigger_Moving_Average==false )

         &&(signals[i].Signalmadn12<0||trigger_MA==false )

         &&(signals[i].Signalmadn13<0||trigger_SMA==false )

         &&(signals[i].Signalmadn14<0||trigger_Moving_Average1==false )

         &&(signals[i].Signalmadn15<0||trigger_MA2==false )

         //MEDIAS MOVEIS TF

         &&(signals[i].Signaldirdn<0||trigger_Candle_Direction==false)

         &&(signals[i].Signalperc <-trade_MIN_HeatMap1 || trigger_UseHeatMap1==false)&&(signals[i].Signalcci == DOWN || UseCCI==false)&&(signals[i].Signalrsi == DOWN || UseRSI==false)&&(signals[i].Signalmadn1<0||trigger_Moving_Average==false )&&(signals[i].Signalmadn2<0||trigger_MA==false )&&(signals[i].Signalmadn3<0||trigger_SMA==false )&&(signals[i].Signalmadn4<0||trigger_Moving_Average1==false )&&(signals[i].Signalmadn5<0||trigger_MA2==false )&&(signals[i].Signalmadn6<0||trigger_Moving_Average==false )&&(signals[i].Signalmadn7<0||trigger_MA==false )&&(signals[i].Signalmadn8<0||trigger_SMA==false )&&(signals[i].Signalmadn9<0||trigger_Moving_Average1==false )&&(signals[i].Signalmadn10<0||trigger_MA2==false )&&(signals[i].Signalmadn11<0||trigger_Moving_Average==false )&&(signals[i].Signalmadn12<0||trigger_MA==false )&&(signals[i].Signalmadn13<0||trigger_SMA==false )&&(signals[i].Signalmadn14<0||trigger_Moving_Average1==false )&&(signals[i].Signalmadn15<0||trigger_MA2==false )&&(signals[i].Signaldirdn<0||trigger_Candle_Direction==false))        

         {

            labelcolor = clrRed;           

            if ((bpos[i]+spos[i]) < MaxTrades && pairinfo[i].lastSignal != SELL && autotrade == true && (OnlyAddProfit == false || sprofit[i] >= 0.0) && pairinfo[i].Spread <= MaxSpread && inSession() == true && totaltrades <= maxtotaltrades) {

               pairinfo[i].lastSignal = SELL;

               

               while (IsTradeContextBusy()) Sleep(100);

               ticket=OrderSend(TradePairs[i],OP_SELL,lot,MarketInfo(TradePairs[i],MODE_BID),100,0,0,comment,Magic_Number,0,Red);

               if (OrderSelect(ticket,SELECT_BY_TICKET) == true) {

                  if (Pipsl != 0.0)

                              stoploss=OrderOpenPrice() + Pipsl * pairinfo[i].PairPip;

                           else

                              if (Adr1sl != 0.0)

                                 stoploss=OrderOpenPrice()+((adrvalues[i].adr10/100)*Adr1sl)  *pairinfo[i].PairPip;

                              else

                                 stoploss = 0.0;

                                 

                                 

                           if (Piptp != 0.0)

                              takeprofit=OrderOpenPrice() - Piptp * pairinfo[i].PairPip;

                           else 

                              if (Adr1tp != 0.0)

                                 takeprofit=OrderOpenPrice() - ((adrvalues[i].adr10/100)*Adr1tp) * pairinfo[i].PairPip;

                              else

                                 takeprofit = 0.0;

                                 

                  while (IsTradeContextBusy()) Sleep(100);

                  OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(stoploss,MarketInfo(TradePairs[i],MODE_DIGITS)),NormalizeDouble(takeprofit,MarketInfo(TradePairs[i],MODE_DIGITS)),0,clrBlue);

               }

            }

         } else {

            labelcolor = BackGrnCol;

            pairinfo[i].lastSignal = NOTHING;

         }  

      }

      string HM0 = iCustom(NULL, 0, "HeatMapModokiV1",5, 10, "Arial", 585 , 250, 0 , 0,i);

      string HM1 = iCustom(NULL, 0, "HeatMapModokiV1",15, 10, "Arial", 620 , 250, 0 , 0,i);

      string HM2 = iCustom(NULL, 0, "HeatMapModokiV1",60, 10, "Arial", 655 , 250, 0 , 0,i);

      string HM3 = iCustom(NULL, 0, "HeatMapModokiV1",240, 10, "Arial", 690 , 250, 0 , 0,i);

      string HM4 = iCustom(NULL, 0, "HeatMapModokiV1",1440, 10, "Arial", 725 , 250, 0 , 0,i);

      

              

         ColorPanel("Spread"+IntegerToString(i),Black,C'61,61,61');        

         ColorPanel("Pips"+IntegerToString(i),Black,C'61,61,61');

         ColorPanel("Adr"+IntegerToString(i),Black,C'61,61,61');         

         ColorPanel("TP",Black,White);

         ColorPanel("TP1",Black,White);

         ColorPanel("TP2",Black,White);

         ColorPanel("TP3",Black,White);

         ColorPanel("TP4",Black,White);

         ColorPanel("TP5",Black,White);         

         ColorPanel("A222"+IntegerToString(i),labelcolor,C'61,61,61');// LINHA DE OPERAÇÃO VERDE          

         //CANDLE DIRECTION

         ColorPanel("m1"+IntegerToString(i),clrNONE,clrBlack);

         ColorPanel("m5"+IntegerToString(i),clrBlack,White);

         ColorPanel("m15"+IntegerToString(i),clrBlack,C'0,0,0');

         ColorPanel("m30"+IntegerToString(i),clrBlack,C'0,0,0');

         ColorPanel("h1"+IntegerToString(i),clrBlack,C'0,0,0');

         ColorPanel("h4"+IntegerToString(i),clrBlack,C'0,0,0');

         ColorPanel("d1"+IntegerToString(i),clrBlack,C'0,0,0');

         ColorPanel("w1"+IntegerToString(i),clrBlack,C'0,0,0');

         ColorPanel("mn1"+IntegerToString(i),clrBlack,C'0,0,0');

         //CANDLE DIRECTION

         

      }

      if (DashUpdate == 1)

         newm1 = iTime("EURUSD"+postfix,PERIOD_M1,0);

      else if (DashUpdate == 5)

         newm1 = iTime("EURUSD"+postfix,PERIOD_M5,0);

   }

   WindowRedraw();    

}

  

//+------------------------------------------------------------------+



void SetText(string name,string text,int x,int y,color colour,int fontsize=12)

  {

   if (ObjectFind(0,name)<0)

      ObjectCreate(0,name,OBJ_LABEL,0,0,0);



    ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);

    ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);

    ObjectSetInteger(0,name,OBJPROP_COLOR,colour);

    ObjectSetInteger(0,name,OBJPROP_FONTSIZE,fontsize);

    ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);

    ObjectSetString(0,name,OBJPROP_TEXT,text);

  }

//+------------------------------------------------------------------+



void SetObjText(string name,string CharToStr,int x,int y,color colour,int fontsize=12)

  {

   if(ObjectFind(0,name)<0)

      ObjectCreate(0,name,OBJ_LABEL,0,0,0);



   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,fontsize);

   ObjectSetInteger(0,name,OBJPROP_COLOR,colour);

   ObjectSetInteger(0,name,OBJPROP_BACK,false);

   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);

   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);

   ObjectSetString(0,name,OBJPROP_TEXT,CharToStr);

   ObjectSetString(0,name,OBJPROP_FONT,"Wingdings");

  }  

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

void SetPanel(string name,int sub_window,int x,int y,int width,int height,color bg_color,color border_clr,int border_width)

  {

   if(ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,sub_window,0,0))

     {

      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);

      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);

      ObjectSetInteger(0,name,OBJPROP_XSIZE,width);

      ObjectSetInteger(0,name,OBJPROP_YSIZE,height);

      ObjectSetInteger(0,name,OBJPROP_COLOR,border_clr);

      ObjectSetInteger(0,name,OBJPROP_BORDER_TYPE,BORDER_FLAT);

      ObjectSetInteger(0,name,OBJPROP_WIDTH,border_width);

      ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);

      ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);

      ObjectSetInteger(0,name,OBJPROP_BACK,true);

      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,0);

      ObjectSetInteger(0,name,OBJPROP_SELECTED,0);

      ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);

      ObjectSetInteger(0,name,OBJPROP_ZORDER,0);

     }

   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,bg_color);

  }

void ColorPanel(string name,color bg_color,color border_clr)

  {

   ObjectSetInteger(0,name,OBJPROP_COLOR,border_clr);

   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,bg_color);

  }

//+------------------------------------------------------------------+

void Create_Button(string but_name,string label,int xsize,int ysize,int xdist,int ydist,int bcolor,int fcolor)

{

    

   if(ObjectFind(0,but_name)<0)

   {

      if(!ObjectCreate(0,but_name,OBJ_BUTTON,0,0,0))

        {

         Print(__FUNCTION__,

               ": failed to create the button! Error code = ",GetLastError());

         return;

        }

      ObjectSetString(0,but_name,OBJPROP_TEXT,label);

      ObjectSetInteger(0,but_name,OBJPROP_XSIZE,xsize);

      ObjectSetInteger(0,but_name,OBJPROP_YSIZE,ysize);

      ObjectSetInteger(0,but_name,OBJPROP_CORNER,CORNER_LEFT_UPPER);     

      ObjectSetInteger(0,but_name,OBJPROP_XDISTANCE,xdist);      

      ObjectSetInteger(0,but_name,OBJPROP_YDISTANCE,ydist);         

      ObjectSetInteger(0,but_name,OBJPROP_BGCOLOR,bcolor);

      ObjectSetInteger(0,but_name,OBJPROP_COLOR,fcolor);

      ObjectSetInteger(0,but_name,OBJPROP_FONTSIZE,8);

      ObjectSetInteger(0,but_name,OBJPROP_HIDDEN,true);

      //ObjectSetInteger(0,but_name,OBJPROP_BORDER_COLOR,ChartGetInteger(0,CHART_COLOR_FOREGROUND));

      ObjectSetInteger(0,but_name,OBJPROP_BORDER_TYPE,BORDER_RAISED);

      

      ChartRedraw();      

   }



}

void OnChartEvent(const int id,  const long &lparam, const double &dparam,  const string &sparam)

  {

   if(id==CHARTEVENT_OBJECT_CLICK)

{

if(sparam=="button_autotrade" && autotrade ==false)

   {

   autotrade =true;

   ObjectSetInteger(0,"button_autotrade",OBJPROP_BGCOLOR,Green);

   ObjectSetInteger(0,"button_autotrade",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_autotrade",OBJPROP_TEXT,"Autotrade");

   Sleep(100);ObjectSetInteger(0,"button_autotrade",OBJPROP_STATE,false);

   }

   else if(sparam=="button_autotrade" && autotrade ==true)

   {

   autotrade=false;

   ObjectSetInteger(0,"button_autotrade",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_autotrade",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_autotrade",OBJPROP_TEXT,"Manual");

   Sleep(100);ObjectSetInteger(0,"button_autotrade",OBJPROP_STATE,false); 

   }

   //---BOTAO INDICADORES  

   if(sparam=="button_trigger_use_Pips" && trigger_use_Pips ==false)

   {

   trigger_use_Pips =true;

   ObjectSetInteger(0,"button_trigger_use_Pips",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_use_Pips",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_use_Pips",OBJPROP_TEXT,"Pips");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_Pips",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_use_Pips" && trigger_use_Pips ==true)

   {

   trigger_use_Pips=false;

   ObjectSetInteger(0,"button_trigger_use_Pips",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_use_Pips",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_use_Pips",OBJPROP_TEXT,"Pips");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_Pips",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_UseHeatMap1" && trigger_UseHeatMap1 ==false)

   {

   trigger_UseHeatMap1 =true;

   ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_UseHeatMap1",OBJPROP_TEXT,"H.Map");

   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_UseHeatMap1" && trigger_UseHeatMap1 ==true)

   {

   trigger_UseHeatMap1=false;

   ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_UseHeatMap1",OBJPROP_TEXT,"H.Map");

   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_use_bidratio" && trigger_use_bidratio ==false)

   {

   trigger_use_bidratio =true;

   ObjectSetInteger(0,"button_trigger_use_bidratio",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_use_bidratio",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_use_bidratio",OBJPROP_TEXT,"BidRatio");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_bidratio",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_use_bidratio" && trigger_use_bidratio ==true)

   {

   trigger_use_bidratio=false;

   ObjectSetInteger(0,"button_trigger_use_bidratio",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_use_bidratio",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_use_bidratio",OBJPROP_TEXT,"BidRatio");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_bidratio",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_use_relstrength" && trigger_use_relstrength ==false)

   {

   trigger_use_relstrength =true;

   ObjectSetInteger(0,"button_trigger_use_relstrength",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_use_relstrength",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_use_relstrength",OBJPROP_TEXT,"RStr");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_relstrength",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_use_relstrength" && trigger_use_relstrength ==true)

   {

   trigger_use_relstrength=false;

   ObjectSetInteger(0,"button_trigger_use_relstrength",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_use_relstrength",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_use_relstrength",OBJPROP_TEXT,"RStr");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_relstrength",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_use_buysellratio" && trigger_use_buysellratio ==false)

   {

   trigger_use_buysellratio =true;

   ObjectSetInteger(0,"button_trigger_use_buysellratio",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_use_buysellratio",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_use_buysellratio",OBJPROP_TEXT,"BSRatio");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_buysellratio",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_use_buysellratio" && trigger_use_buysellratio ==true)

   {

   trigger_use_buysellratio=false;

   ObjectSetInteger(0,"button_trigger_use_buysellratio",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_use_buysellratio",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_use_buysellratio",OBJPROP_TEXT,"BSRatio");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_buysellratio",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_use_gap" && trigger_use_gap ==false)

   {

   trigger_use_gap =true;

   ObjectSetInteger(0,"button_trigger_use_gap",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_use_gap",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_use_gap",OBJPROP_TEXT,"Gap");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_gap",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_use_gap" && trigger_use_gap ==true)

   {

   trigger_use_gap=false;

   ObjectSetInteger(0,"button_trigger_use_gap",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_use_gap",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_use_gap",OBJPROP_TEXT,"Gap");

   Sleep(100);ObjectSetInteger(0,"button_trigger_use_gap",OBJPROP_STATE,false);

   }   

   

   if(sparam=="button_UseCCI" && UseCCI ==false)

   {

   UseCCI =true;

   ObjectSetInteger(0,"button_UseCCI",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_UseCCI",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_UseCCI",OBJPROP_TEXT,"CCI");

   Sleep(100);ObjectSetInteger(0,"button_UseCCI",OBJPROP_STATE,false);

   }

   else if(sparam=="button_UseCCI" && UseCCI ==true)

   {

   UseCCI=false;

   ObjectSetInteger(0,"button_UseCCI",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_UseCCI",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_UseCCI",OBJPROP_TEXT,"CCI");

   Sleep(100);ObjectSetInteger(0,"button_UseCCI",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_UseRSI" && UseRSI ==false)

   {

   UseRSI =true;

   ObjectSetInteger(0,"button_UseRSI",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_UseRSI",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_UseRSI",OBJPROP_TEXT,"RSI");

   Sleep(100);ObjectSetInteger(0,"button_UseRSI",OBJPROP_STATE,false);

   }

   else if(sparam=="button_UseRSI" && UseRSI ==true)

   {

   UseRSI=false;

   ObjectSetInteger(0,"button_UseRSI",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_UseRSI",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_UseRSI",OBJPROP_TEXT,"RSI");

   Sleep(100);ObjectSetInteger(0,"button_UseRSI",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_Moving_Average" && trigger_Moving_Average ==false)

   {

   trigger_Moving_Average =true;

   ObjectSetInteger(0,"button_trigger_Moving_Average",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_Moving_Average",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_Moving_Average",OBJPROP_TEXT,"MM12");

   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_Moving_Average" && trigger_Moving_Average ==true)

   {

   trigger_Moving_Average=false;

   ObjectSetInteger(0,"button_trigger_Moving_Average",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_Moving_Average",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_Moving_Average",OBJPROP_TEXT,"MM12");

   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_MA" && trigger_MA ==false)

   {

   trigger_MA =true;

   ObjectSetInteger(0,"button_trigger_MA",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_MA",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_MA",OBJPROP_TEXT,"MM21");

   Sleep(100);ObjectSetInteger(0,"button_trigger_MA",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_MA" && trigger_MA ==true)

   {

   trigger_MA=false;

   ObjectSetInteger(0,"button_trigger_MA",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_MA",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_MA",OBJPROP_TEXT,"MM21");

   Sleep(100);ObjectSetInteger(0,"button_trigger_MA",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_SMA" && trigger_SMA ==false)

   {

   trigger_SMA =true;

   ObjectSetInteger(0,"button_trigger_SMA",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_SMA",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_SMA",OBJPROP_TEXT,"MM30");

   Sleep(100);ObjectSetInteger(0,"button_trigger_SMA",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_SMA" && trigger_SMA ==true)

   {

   trigger_SMA=false;

   ObjectSetInteger(0,"button_trigger_SMA",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_SMA",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_SMA",OBJPROP_TEXT,"MM30");

   Sleep(100);ObjectSetInteger(0,"button_trigger_SMA",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_Moving_Average1" && trigger_Moving_Average1 ==false)

   {

   trigger_Moving_Average1 =true;

   ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_Moving_Average1",OBJPROP_TEXT,"MM50");

   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_Moving_Average1" && trigger_Moving_Average1 ==true)

   {

   trigger_Moving_Average1=false;

   ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_Moving_Average1",OBJPROP_TEXT,"MM50");

   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_MA2" && trigger_MA2 ==false)

   {

   trigger_MA2 =true;

   ObjectSetInteger(0,"button_trigger_MA2",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_MA2",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_MA2",OBJPROP_TEXT,"MM100");

   Sleep(100);ObjectSetInteger(0,"button_trigger_MA2",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_MA2" && trigger_MA2 ==true)

   {

   trigger_MA2=false;

   ObjectSetInteger(0,"button_trigger_MA2",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_MA2",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_MA2",OBJPROP_TEXT,"MM100");

   Sleep(100);ObjectSetInteger(0,"button_trigger_MA2",OBJPROP_STATE,false);

   }

   

   if(sparam=="button_trigger_Candle_Direction" && trigger_Candle_Direction ==false)

   {

   trigger_Candle_Direction =true;

   ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_BGCOLOR,DarkGreen);

   ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_COLOR,White);

   ObjectSetString(0,"button_trigger_Candle_Direction",OBJPROP_TEXT,"Candle Direction");

   Sleep(100);ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_STATE,false);

   }

   else if(sparam=="button_trigger_Candle_Direction" && trigger_Candle_Direction ==true)

   {

   trigger_Candle_Direction=false;

   ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_BGCOLOR,C'51,51,51');

   ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_COLOR,C'51,160,180');

   ObjectSetString(0,"button_trigger_Candle_Direction",OBJPROP_TEXT,"Candle Direction");

   Sleep(100);ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_STATE,false);

   }   

                        

//---------------------------------------------------------------------  

      //{

       if (sparam==button_AUD_basket_buy)

        {          

               buy_basket(AUD);

               sell_basket(AUD_R);

               ObjectSetInteger(0,button_AUD_basket_buy,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_AUD_basket_sell)

        {          

               sell_basket(AUD);

               buy_basket(AUD_R);

               ObjectSetInteger(0,button_AUD_basket_sell,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_CAD_basket_buy)

        {          

               buy_basket(CAD);

               sell_basket(CAD_R);

               ObjectSetInteger(0,button_CAD_basket_buy,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_CAD_basket_sell)

        {          

               sell_basket(CAD);

               buy_basket(CAD_R);

               ObjectSetInteger(0,button_CAD_basket_sell,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------

      if (sparam==button_CHF_basket_buy)

        {          

               buy_basket(CHF);

               sell_basket(CHF_R);

               ObjectSetInteger(0,button_CHF_basket_buy,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_CHF_basket_sell)

        {          

               sell_basket(CHF);

               buy_basket(CHF_R);

               ObjectSetInteger(0,button_CHF_basket_sell,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------

      if (sparam==button_EUR_basket_buy)

        {          

               buy_basket(EUR);

               ObjectSetInteger(0,button_EUR_basket_buy,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_EUR_basket_sell)

        {          

               sell_basket(EUR);

               ObjectSetInteger(0,button_EUR_basket_sell,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------

      if (sparam==button_GBP_basket_buy)

        {          

               buy_basket(GBP);

               sell_basket(GBP_R);

               ObjectSetInteger(0,button_GBP_basket_buy,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_GBP_basket_sell)

        {          

               sell_basket(GBP);

               buy_basket(GBP_R);

               ObjectSetInteger(0,button_GBP_basket_sell,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------

      if (sparam==button_JPY_basket_buy)

        {          

               sell_basket(JPY_R);

               ObjectSetInteger(0,button_JPY_basket_buy,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_JPY_basket_sell)

        {          

               buy_basket(JPY_R);

               ObjectSetInteger(0,button_JPY_basket_sell,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------

      if (sparam==button_NZD_basket_buy)

        {          

               buy_basket(NZD);

               sell_basket(NZD_R);

               ObjectSetInteger(0,button_NZD_basket_buy,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_NZD_basket_sell)

        {          

               sell_basket(NZD);

               buy_basket(NZD_R);

               ObjectSetInteger(0,button_NZD_basket_sell,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------

      if (sparam==button_USD_basket_buy)

        {          

               buy_basket(USD);

               sell_basket(USD_R);

               ObjectSetInteger(0,button_USD_basket_buy,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------  

      if (sparam==button_USD_basket_sell)

        {          

               sell_basket(USD);

               buy_basket(USD_R);

               ObjectSetInteger(0,button_USD_basket_sell,OBJPROP_STATE,0);

               return;

        }

//-----------------------------------------------------------------------------------------------------------------

      if (sparam==button_AUD_basket_close)

        {          

               close_cur_basket(AUD);

               close_cur_basket(AUD_R);

               ObjectSetInteger(0,button_AUD_basket_close,OBJPROP_STATE,0);

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_CAD_basket_close)

        {          

               close_cur_basket(CAD);

               close_cur_basket(CAD_R);

               ObjectSetInteger(0,button_CAD_basket_close,OBJPROP_STATE,0);

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_CHF_basket_close)

        {          

               close_cur_basket(CHF);

               close_cur_basket(CHF_R);

               ObjectSetInteger(0,button_CHF_basket_close,OBJPROP_STATE,0);

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_EUR_basket_close)

        {          

               close_cur_basket(EUR);

               ObjectSetInteger(0,button_EUR_basket_close,OBJPROP_STATE,0);

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_GBP_basket_close)

        {          

               close_cur_basket(GBP);

               close_cur_basket(GBP_R);

               ObjectSetInteger(0,button_GBP_basket_close,OBJPROP_STATE,0);

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_JPY_basket_close)

        {          

               close_cur_basket(JPY_R);

               ObjectSetInteger(0,button_JPY_basket_close,OBJPROP_STATE,0);

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_NZD_basket_close)

        {          

               close_cur_basket(NZD);

               close_cur_basket(NZD_R);

               ObjectSetInteger(0,button_NZD_basket_close,OBJPROP_STATE,0);

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_USD_basket_close)

        {          

               close_cur_basket(USD);

               close_cur_basket(USD_R);

               ObjectSetInteger(0,button_USD_basket_close,OBJPROP_STATE,0);

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_reset_ea)

        {          

               Reset_EA();

               ObjectSetInteger(0,button_reset_ea,OBJPROP_STATE,0);

               return;

        }



//-----------------------------------------------------------------------------------------------------------------

      if (sparam==button_close_basket_All)

        {

               ObjectSetString(0,button_close_basket_All,OBJPROP_TEXT,"Closing...");               

               close_basket(Magic_Number);

               ObjectSetInteger(0,button_close_basket_All,OBJPROP_STATE,0);

               ObjectSetString(0,button_close_basket_All,OBJPROP_TEXT,"Close Basket"); 

               return;

        }

//-----------------------------------------------------------------------------------------------------------------     

      if (sparam==button_close_basket_Prof)

        {

               ObjectSetString(0,button_close_basket_Prof,OBJPROP_TEXT,"Closing...");               

               close_profit();

               ObjectSetInteger(0,button_close_basket_Prof,OBJPROP_STATE,0);

               ObjectSetString(0,button_close_basket_Prof,OBJPROP_TEXT,"Close Basket"); 

               return;

        }

//----------------------------------------------------------------------------------------------------------------- 

      if (sparam==button_close_basket_Loss)

        {

               ObjectSetString(0,button_close_basket_Loss,OBJPROP_TEXT,"Closing...");               

               close_loss();

               ObjectSetInteger(0,button_close_basket_Loss,OBJPROP_STATE,0);

               ObjectSetString(0,button_close_basket_Loss,OBJPROP_TEXT,"Close Basket"); 

               return;

        }

//-----------------------------------------------------------------------------------------------------------------

     if (StringFind(sparam,"BUY") >= 0)

        {

               int ind = StringToInteger(sparam);

               ticket=OrderSend(TradePairs[ind],OP_BUY,lot,MarketInfo(TradePairs[ind],MODE_ASK),100,0,0,"OFF",Magic_Number,0,Blue);

               if (OrderSelect(ticket,SELECT_BY_TICKET) == true) {

                  if (Pipsl != 0.0)

                           stoploss=OrderOpenPrice() - Pipsl * pairinfo[ind].PairPip;

                        else

                           if (Adr1sl != 0.0)

                              stoploss=OrderOpenPrice() - ((adrvalues[ind].adr10/100)*Adr1sl) * pairinfo[ind].PairPip;

                           else

                              stoploss = 0.0;



                        if (Piptp != 0.0)

                              takeprofit=OrderOpenPrice() + Piptp * pairinfo[ind].PairPip;

                        else

                           if (Adr1tp != 0.0)

                              takeprofit=OrderOpenPrice() + ((adrvalues[ind].adr10/100)*Adr1tp) * pairinfo[ind].PairPip;

                           else

                              takeprofit = 0.0;

                  OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(stoploss,MarketInfo(TradePairs[ind],MODE_DIGITS)),NormalizeDouble(takeprofit,MarketInfo(TradePairs[ind],MODE_DIGITS)),0,clrBlue);

               }

               ObjectSetInteger(0,ind+"BUY",OBJPROP_STATE,0);

               ObjectSetString(0,ind+"BUY",OBJPROP_TEXT,"BUY"); 

               return;

        }

     if (StringFind(sparam,"SELL") >= 0)

        {

               int ind = StringToInteger(sparam);

               ticket=OrderSend(TradePairs[ind],OP_SELL,lot,MarketInfo(TradePairs[ind],MODE_BID),100,0,0,"OFF",Magic_Number,0,Red);

               if (OrderSelect(ticket,SELECT_BY_TICKET) == true) {

                   if (Pipsl != 0.0)

                              stoploss=OrderOpenPrice() + Pipsl * pairinfo[ind].PairPip;

                           else

                              if (Adr1sl != 0.0)

                                 stoploss=OrderOpenPrice()+((adrvalues[ind].adr10/100)*Adr1sl)  *pairinfo[ind].PairPip;

                              else

                                 stoploss = 0.0;

                                 

                                 

                           if (Piptp != 0.0)

                              takeprofit=OrderOpenPrice() - Piptp * pairinfo[ind].PairPip;

                           else 

                              if (Adr1tp != 0.0)

                                 takeprofit=OrderOpenPrice() - ((adrvalues[ind].adr10/100)*Adr1tp) * pairinfo[ind].PairPip;

                              else

                                 takeprofit = 0.0;

                  OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(stoploss,MarketInfo(TradePairs[ind],MODE_DIGITS)),NormalizeDouble(takeprofit,MarketInfo(TradePairs[ind],MODE_DIGITS)),0,clrBlue);

               }

               ObjectSetInteger(0,ind+"SELL",OBJPROP_STATE,0);

               ObjectSetString(0,ind+"SELL",OBJPROP_TEXT,"SELL");

               return;

        }

     if (StringFind(sparam,"CLOSE") >= 0)

        {

               int ind = StringToInteger(sparam);

               closeOpenOrders(TradePairs[ind]);               

               ObjectSetInteger(0,ind+"CLOSE",OBJPROP_STATE,0);

               ObjectSetString(0,ind+"CLOSE",OBJPROP_TEXT,"CLOSE");

               return;

        }

         

      if (StringFind(sparam,"Pair") >= 0) {

         int ind = StringToInteger(sparam);

         ObjectSetInteger(0,sparam,OBJPROP_STATE,0);

         OpenChart(ind);

         return;         

      }   

     }

}

void buy_basket(string &pairs[])

{

   int i;

   int ticket;

   

   for(i=0;i<ArraySize(pairs);i++)

   {

      ticket=OrderSend(pairs[i],OP_BUY,lot,MarketInfo(pairs[i],MODE_ASK),100,0,0,NULL,Magic_Number,0,clrNONE);

      if (OrderSelect(ticket,SELECT_BY_TICKET) == true) {

                  if (Pipsl != 0.0)

                           stoploss=OrderOpenPrice() - Pipsl * pairinfo[i].PairPip;

                        else

                           if (Adr1sl != 0.0)

                              stoploss=OrderOpenPrice() - ((adrvalues[i].adr10/100)*Adr1sl) * pairinfo[i].PairPip;

                           else

                              stoploss = 0.0;



                        if (Piptp != 0.0)

                              takeprofit=OrderOpenPrice() + Piptp * pairinfo[i].PairPip;

                        else

                           if (Adr1tp != 0.0)

                              takeprofit=OrderOpenPrice() + ((adrvalues[i].adr10/100)*Adr1tp) * pairinfo[i].PairPip;

                           else

                              takeprofit = 0.0;

                  OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(stoploss,MarketInfo(pairs[i],MODE_DIGITS)),NormalizeDouble(takeprofit,MarketInfo(pairs[i],MODE_DIGITS)),0,clrBlue);

   }

  }

}



void sell_basket(string &pairs[])

{

   int i;

   int ticket;

   

   for(i=0;i<ArraySize(pairs);i++)

   {

      ticket=OrderSend(pairs[i],OP_SELL,lot,MarketInfo(pairs[i],MODE_BID),100,0,0,NULL,Magic_Number,0,clrNONE);

      if (OrderSelect(ticket,SELECT_BY_TICKET) == true) {

                   if (Pipsl != 0.0)

                              stoploss=OrderOpenPrice() + Pipsl * pairinfo[i].PairPip;

                           else

                              if (Adr1sl != 0.0)

                                 stoploss=OrderOpenPrice()+((adrvalues[i].adr10/100)*Adr1sl)  *pairinfo[i].PairPip;

                              else

                                 stoploss = 0.0;

                                 

                                 

                           if (Piptp != 0.0)

                              takeprofit=OrderOpenPrice() - Piptp * pairinfo[i].PairPip;

                           else 

                              if (Adr1tp != 0.0)

                                 takeprofit=OrderOpenPrice() - ((adrvalues[i].adr10/100)*Adr1tp) * pairinfo[i].PairPip;

                              else

                                 takeprofit = 0.0;

                  OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(stoploss,MarketInfo(pairs[i],MODE_DIGITS)),NormalizeDouble(takeprofit,MarketInfo(pairs[i],MODE_DIGITS)),0,clrBlue);

   }

  }

}



void close_cur_basket(string &pairs[])

{ 

  

   if (OrdersTotal() <= 0)

   return;



   int TradeList[][2];

   int ctTrade = 0;



   for (int i=0; i<OrdersTotal(); i++) 

   {

	   OrderSelect(i, SELECT_BY_POS);

      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true &&

         (OrderType()==0 || OrderType()==1) && 

         OrderMagicNumber()==Magic_Number &&

         InArray(pairs, OrderSymbol())) 

      {

	      ctTrade++;

		   ArrayResize(TradeList, ctTrade);

		   TradeList[ctTrade-1][0] = OrderOpenTime();

		   TradeList[ctTrade-1][1] = OrderTicket();

	   }

   }

   ArraySort(TradeList,WHOLE_ARRAY,0,MODE_ASCEND);



   for (int i=0;i<ctTrade;i++) 

   {

       if (OrderSelect(TradeList[i][1], SELECT_BY_TICKET)==true) 

       {

            if (OrderType()==0)

               {

               ticket=OrderClose(OrderTicket(),OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 100, clrNONE);

               if (ticket==-1) Print ("Error: ",  GetLastError());

               

               }

            if (OrderType()==1)

               {

               ticket=OrderClose(OrderTicket(),OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 100, clrNONE);

               if (ticket==-1) Print ("Error: ",  GetLastError());

               

               }  

         }

         Sleep(500);

   }

      

}

//+------------------------------------------------------------------+

//| closeOpenOrders                                                  |

//+------------------------------------------------------------------+

void closeOpenOrders(string closecurr ) {

   int cnt = 0;



   for (cnt = OrdersTotal()-1 ; cnt >= 0 ; cnt--) {

      if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==true) {

         if(OrderType()==OP_BUY && OrderSymbol() == closecurr && OrderMagicNumber()==Magic_Number)

            ticket=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5,Violet);

         else if(OrderType()==OP_SELL && OrderSymbol() == closecurr && OrderMagicNumber()==Magic_Number) 

            ticket=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),5,Violet);

         else if(OrderType()>OP_SELL) //pending orders

            ticket=OrderDelete(OrderTicket());

                   

      }

   }

}

void close_basket(int magic_number)

{ 

  

if (OrdersTotal() <= 0)

   return;



int TradeList[][2];

int ctTrade = 0;



for (int i=0; i<OrdersTotal(); i++) {

	OrderSelect(i, SELECT_BY_POS);

   if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true && (OrderType()==0 || OrderType()==1) && OrderMagicNumber()==Magic_Number) {

	   ctTrade++;

		ArrayResize(TradeList, ctTrade);

		TradeList[ctTrade-1][0] = OrderOpenTime();

		TradeList[ctTrade-1][1] = OrderTicket();

	}

}

ArraySort(TradeList,WHOLE_ARRAY,0,MODE_ASCEND);



for (int i=0;i<ctTrade;i++) {

      

       if (OrderSelect(TradeList[i][1], SELECT_BY_TICKET)==true) {

            if (OrderType()==0)

               {

               ticket=OrderClose(OrderTicket(),OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 3,Red);

               if (ticket==-1) Print ("Error: ",  GetLastError());

               

               }

            if (OrderType()==1)

               {

               ticket=OrderClose(OrderTicket(),OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 3,Red);

               if (ticket==-1) Print ("Error: ",  GetLastError());

               

               }  

            }

      }

  

   for (int i=0;i<ArraySize(TradePairs);i++)

      pairinfo[i].lastSignal = NOTHING; 

       

   currentlock = 0.0;

   trailstarted = false;   

   lockdistance = 0.0;    

   SymbolMaxDD = 0;

   SymbolMaxHi = 0;

   PercentFloatingSymbol=0;

   PercentMaxDDSymbol=0;    

}

void close_profit()

{

 int cnt = 0; 

 for (cnt = OrdersTotal()-1 ; cnt >= 0 ; cnt--)

            {

               if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==true)

               if (OrderProfit() > 0)

               {

                  if(OrderType()==OP_BUY && OrderMagicNumber()==Magic_Number)

                     ticket=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5,Violet);

                  if(OrderType()==OP_SELL && OrderMagicNumber()==Magic_Number) 

                     ticket=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),5,Violet);

                  if(OrderType()>OP_SELL)

                     ticket=OrderDelete(OrderTicket());

               }

            } 

    }

void close_loss()

{

 int cnt = 0; 

 for (cnt = OrdersTotal()-1 ; cnt >= 0 ; cnt--)

            {

               if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==true)

               if (OrderProfit() < 0)

               {

                  if(OrderType()==OP_BUY && OrderMagicNumber()==Magic_Number)

                     ticket=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5,Violet);

                  if(OrderType()==OP_SELL && OrderMagicNumber()==Magic_Number) 

                     ticket=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),5,Violet);

                  if(OrderType()>OP_SELL)

                     ticket=OrderDelete(OrderTicket());

               }

            } 

    } 



void Reset_EA()

{

   currentlock = 0.0;

   trailstarted = false;   

   lockdistance = 0.0;    

   SymbolMaxDD = 0;

   SymbolMaxHi = 0;

   PercentFloatingSymbol=0;

   PercentMaxDDSymbol=0;

  

   OnInit();

}

                               

//+------------------------------------------------------------------+

void Trades()

{

   int i, j;

   totallots=0;

   totalprofit=0;

   totaltrades = 0;



   for(i=0;i<ArraySize(TradePairs);i++)

   {

      

      bpos[i]=0;

      spos[i]=0;       

      blots[i]=0;

      slots[i]=0;     

      bprofit[i]=0;

      sprofit[i]=0;

      tprofit[i]=0;

   }

	for(i=0;i<OrdersTotal();i++)

	{

      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)

         break;



      for(j=0;j<ArraySize(TradePairs);j++)

      {	  

         if((TradePairs[j]==OrderSymbol() || TradePairs[j]=="") && OrderMagicNumber()==Magic_Number)

         {

            TradePairs[j]=OrderSymbol();                       

            tprofit[j]=tprofit[j]+OrderProfit()+OrderSwap()+OrderCommission();

           if(OrderType()==0){ bprofit[j]+=OrderProfit()+OrderSwap()+OrderCommission(); } 

           if(OrderType()==1){ sprofit[j]+=OrderProfit()+OrderSwap()+OrderCommission(); } 

           if(OrderType()==0){ blots[j]+=OrderLots(); } 

           if(OrderType()==1){ slots[j]+=OrderLots(); }

           if(OrderType()==0){ bpos[j]+=+1; } 

           if(OrderType()==1){ spos[j]+=+1; } 

                                

            totallots=totallots+OrderLots();

            totaltrades++;

            totalprofit = totalprofit+OrderProfit()+OrderSwap()+OrderCommission();

            break;

	     }

	  }

   }

   if(OrdersTotal()==0)

      SetText("CTP","No Trades To Monitor",x_axis+225,y_axis-47,Black,8);

   else

      SetText("CTP","Monitor de Trades",x_axis+228,y_axis-47,Black,8);



   if (inSession() == true)

      SetText("CTPT","Trading",x_axis+8,y_axis-20,Green,10);

   else

      SetText("CTPT","Closed",x_axis+8,y_axis-20,Red,10);

//         SetPanel("TP6",0,x_axis+95,y_axis-50,100,20,Black,White,1);



   }

//+------------------------------------------------------------------+ 



void OpenChart(int ind) {

long nextchart = ChartFirst();

   do {

      string sym = ChartSymbol(nextchart);

      if (StringFind(sym,TradePairs[ind]) >= 0) {

            ChartSetInteger(nextchart,CHART_BRING_TO_TOP,true);

            ChartSetSymbolPeriod(nextchart,TradePairs[ind],TimeFrame);

            ChartApplyTemplate(nextchart,usertemplate);

            return;

         }

   } while ((nextchart = ChartNext(nextchart)) != -1);

   long newchartid = ChartOpen(TradePairs[ind],TimeFrame);

   ChartApplyTemplate(newchartid,usertemplate);

 }

//+------------------------------------------------------------------+  



void TradeManager() {



   double AccBalance=AccountBalance();

         

      //- Target

      if(Basket_Target>0 && totalprofit>=Basket_Target) {

         profitbaskets++;

         close_basket(Magic_Number);

         return;

      }

      

      //- StopLoss

      if(Basket_StopLoss>0 && totalprofit<(0-Basket_StopLoss)) {

         lossbaskets++;

         close_basket(Magic_Number);

         return;

      }



      //- Out off session

      if(inSession() == false && totallots > 0.0 && CloseAllSession == true) {

         close_basket(Magic_Number);

         return;

      }



      //- Profit lock stoploss

      if (currentlock != 0.0 && totalprofit < currentlock) {

         profitbaskets++;

         close_basket(Magic_Number);

         return;

      }



      //- Profit lock trail

      if (trailstarted == true && totalprofit > currentlock + lockdistance)

         currentlock = totalprofit - lockdistance;



//---------------------------------------------------------------------------





     if(totalprofit<=SymbolMaxDD) {

        SymbolMaxDD=totalprofit;

        GetBalanceSymbol=AccBalance;

     }



     if(GetBalanceSymbol != 0)

      PercentMaxDDSymbol=(SymbolMaxDD*100)/GetBalanceSymbol;

     

     if(totalprofit>=SymbolMaxHi) {

        SymbolMaxHi=totalprofit;

        GetBalanceSymbol=AccBalance;

     }

     

     if(GetBalanceSymbol != 0)

      PercentFloatingSymbol=(SymbolMaxHi*100)/GetBalanceSymbol;



     ObjectSetText("Lowest","Lowest= "+DoubleToStr(SymbolMaxDD,2)+" ("+DoubleToStr(PercentMaxDDSymbol,2)+"%)",8,NULL,BearColor);

     ObjectSetText("Highest","Highest= "+DoubleToStr(SymbolMaxHi,2)+" ("+DoubleToStr(PercentFloatingSymbol,2)+"%)",8,NULL,BullColor);

     ObjectSetText("Lock","Lock= "+DoubleToStr(currentlock,2),8,NULL,BullColor);

     ObjectSetText("Won",IntegerToString(profitbaskets,2),8,NULL,BullColor);

     ObjectSetText("Lost",IntegerToString(lossbaskets,2),8,NULL,BearColor);



}     

void PlotTrades() {



   for (int i=0; i<ArraySize(TradePairs);i++) {



     if(blots[i]>0){LotColor =Orange;}        

     if(blots[i]==0){LotColor =C'61,61,61';}

     if(slots[i]>0){LotColor1 =Orange;}        

     if(slots[i]==0){LotColor1 =C'61,61,61';}

     if(bpos[i]>0){OrdColor =DodgerBlue;}        

     if(bpos[i]==0){OrdColor =C'61,61,61';}

     if(spos[i]>0){OrdColor1 =DodgerBlue;}        

     if(spos[i]==0){OrdColor1 =C'61,61,61';}

     if(bprofit[i]>0){ProfitColor =BullColor;}

     if(bprofit[i]<0){ProfitColor =BearColor;}

     if(bprofit[i]==0){ProfitColor =C'61,61,61';}

     if(sprofit[i]>0){ProfitColor2 =BullColor;}

     if(sprofit[i]<0){ProfitColor2 =BearColor;}

     if(sprofit[i]==0){ProfitColor2 =C'61,61,61';}

     if(tprofit[i]>0){ProfitColor3 =BullColor;}

     if(tprofit[i]<0){ProfitColor3 =BearColor;}

     if(tprofit[i]==0){ProfitColor3 =C'61,61,61';}



     if(totalprofit>0){ProfitColor1 =BullColor;}

     if(totalprofit<0){ProfitColor1 =BearColor;}

     if(totalprofit==0){ProfitColor1 =clrWhite;}         



     ObjectSetText("bLots"+IntegerToString(i),DoubleToStr(blots[i],2),8,NULL,LotColor);

     ObjectSetText("sLots"+IntegerToString(i),DoubleToStr(slots[i],2),8,NULL,LotColor1);

     ObjectSetText("bPos"+IntegerToString(i),DoubleToStr(bpos[i],0),8,NULL,OrdColor);

     ObjectSetText("sPos"+IntegerToString(i),DoubleToStr(spos[i],0),8,NULL,OrdColor1);

     ObjectSetText("TProf"+IntegerToString(i),DoubleToStr(MathAbs(bprofit[i]),2),8,NULL,ProfitColor);

     ObjectSetText("SProf"+IntegerToString(i),DoubleToStr(MathAbs(sprofit[i]),2),8,NULL,ProfitColor2);

     ObjectSetText("TtlProf"+IntegerToString(i),DoubleToStr(MathAbs(tprofit[i]),2),8,NULL,ProfitColor3);

     ObjectSetText("TotProf",DoubleToStr(MathAbs(totalprofit),2),8,NULL,ProfitColor1);

   }

}

void PlotAdrValues() {



   for (int i=0;i<ArraySize(TradePairs);i++)

     ObjectSetText("S1"+IntegerToString(i),DoubleToStr(adrvalues[i].adr,0),8,NULL,Yellow);

}

bool inSession() {

 

   if ((localday != TimeDayOfWeek(TimeLocal()) && s1active == false && s2active == false && s3active == false) || localday == 99) {

      TimeToStruct(TimeLocal(),sess);

      StringSplit(sess1start,':',strspl);sess.hour=(int)strspl[0];sess.min=(int)strspl[1];sess.sec=0;

      s1start = StructToTime(sess);

      StringSplit(sess1end,':',strspl);sess.hour=(int)strspl[0];sess.min=(int)strspl[1];sess.sec=0;

      s1end = StructToTime(sess);

      StringSplit(sess2start,':',strspl);sess.hour=(int)strspl[0];sess.min=(int)strspl[1];sess.sec=0;

      s2start = StructToTime(sess);

      StringSplit(sess2end,':',strspl);sess.hour=(int)strspl[0];sess.min=(int)strspl[1];sess.sec=0;

      s2end = StructToTime(sess);

      StringSplit(sess3start,':',strspl);sess.hour=(int)strspl[0];sess.min=(int)strspl[1];sess.sec=0;

      s3start = StructToTime(sess);

      StringSplit(sess3end,':',strspl);sess.hour=(int)strspl[0];sess.min=(int)strspl[1];sess.sec=0;

      s3end = StructToTime(sess);

      if (s1end < s1start)

         s1end += 24*60*60;

      if (s2end < s2start)

         s2end += 24*60*60;

      if (s3end < s3start)

         s3end += 24*60*60;

      newSession();

      localday = TimeDayOfWeek(TimeLocal());

      Print("Sessions for today");

      if (UseSession1 == true)

         Print("Session 1 From:"+s1start+" until "+s1end);

      if (UseSession2 == true)

         Print("Session 2 From:"+s2start+" until "+s2end);

      if (UseSession3 == true)

         Print("Session 3 From:"+s3start+" until "+s3end);

   }





   if (UseSession1 && TimeLocal() >= s1start && TimeLocal() <= s1end) {

      comment = sess1comment;

      if (s1active == false)

         newSession();         

      else if ((StopProfit != 0 && profitbaskets >= StopProfit) || (StopLoss != 0 && lossbaskets >= StopLoss))

         return(false);

      s1active = true;

      return(true);

   } else {

      s1active = false;

   }   

   if (UseSession2 && TimeLocal() >= s2start && TimeLocal() <= s2end) {

      comment = sess2comment;

      if (s2active == false)

         newSession();

      else if ((StopProfit != 0 && profitbaskets >= StopProfit) || (StopLoss != 0 && lossbaskets >= StopLoss))

         return(false);

      s2active = true;

      return(true);

   } else {

      s2active = false;

   }

   if (UseSession3 && TimeLocal() >= s3start && TimeLocal() <= s3end) {

      comment = sess3comment;

      if (s3active == false)

         newSession();

      else if ((StopProfit != 0 && profitbaskets >= StopProfit) || (StopLoss != 0 && lossbaskets >= StopLoss))

         return(false);

      s3active = true;

      return(true);

   } else {

      s3active = false;

   }

   

   return(false);

}

void newSession() {

   

   profitbaskets = 0;

   lossbaskets = 0;

   SymbolMaxDD = 0.0;

   PercentMaxDDSymbol = 0.0;

   SymbolMaxHi=0.0;

   PercentFloatingSymbol = 0.0;

   currentlock = 0.0;

   trailstarted = false;   

   lockdistance = 0.0;

}



//-----------------------------------------------------------------------------

void ChngBoxCol(int mVal, int mBx)

 {

   if(mVal >= 0 && mVal < 10)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, White);

   if(mVal > 10 && mVal < 20)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, LightCyan);

   if(mVal > 20 && mVal < 30)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, PowderBlue);

   if(mVal > 30 && mVal < 40)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, PaleTurquoise);

   if(mVal > 40 && mVal < 50)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, LightBlue);

   if(mVal > 50 && mVal < 60)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, SkyBlue);

   if(mVal > 60 && mVal < 70)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Turquoise);

   if(mVal > 70 && mVal < 80)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, DeepSkyBlue);

   if(mVal > 80 && mVal < 90)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, SteelBlue);

   if(mVal > 90 && mVal < 100)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Blue);

   if(mVal > 100)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, MediumBlue);



   if(mVal < 0 && mVal > -10)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, White);

   if(mVal < -10 && mVal > -20)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Seashell);

   if(mVal < -20 && mVal > -30)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, MistyRose);

   if(mVal < -30 && mVal > -40)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Pink);

   if(mVal < -40 && mVal > -50)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, LightPink);

   if(mVal < -50 && mVal > -60)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Plum);

   if(mVal < -60 && mVal >-70)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Violet);

   if(mVal < -70 && mVal > -80)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Orchid);

   if(mVal < -80 && mVal > -90)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, DeepPink);

   if(mVal < -90)

         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Red);

   return;

 }

//-----------------------------------------------------------------------------



bool InArray(string &pairs[], string symbol)

{

   int arraysize = ArraySize(pairs);

   if(arraysize <= 0) return(false);

   if(symbol == NULL) return(false);

   

   int i;

   

   for(i=0;i<arraysize;i++)

      if(pairs[i] == symbol) return(true);



   return(false);

}

//-------------------------------------------------------------------+ 

void PlotSpreadPips() {

             

   for (int i=0;i<ArraySize(TradePairs);i++) {

      if(MarketInfo(TradePairs[i],MODE_POINT) != 0 && pairinfo[i].pipsfactor != 0) {

       pairinfo[i].Pips = (iClose(TradePairs[i],PERIOD_D1,0)-iOpen(TradePairs[i], PERIOD_D1,0))/MarketInfo(TradePairs[i],MODE_POINT)/pairinfo[i].pipsfactor; 

       pairinfo[i].Pipsprev = (iClose(TradePairs[i],PERIOD_D1,signals[i].shift+900)-iOpen(TradePairs[i], PERIOD_D1,0))/MarketInfo(TradePairs[i],MODE_POINT)/pairinfo[i].pipsfactor;    

       pairinfo[i].Spread=MarketInfo(TradePairs[i],MODE_SPREAD)/pairinfo[i].pipsfactor;

       if(iClose(TradePairs[i], trigger_TF_HM1, 1)!=0){

       signals[i].Signalperc = (iClose(TradePairs[i], 1, 0) - iClose(TradePairs[i], trigger_TF_HM1, 1)) / iClose(TradePairs[i], trigger_TF_HM1, 1) * 100;

       }    

      }  

     if(pairinfo[i].Pips>0){PipsColor =BullColor;}

     if(pairinfo[i].Pips<0){PipsColor =BearColor;} 

     if(pairinfo[i].Pips==0){PipsColor =clrWhite;}       

     if(pairinfo[i].Spread > MaxSpread)

     

     ObjectSetText("Spr1"+IntegerToString(i),DoubleToStr(pairinfo[i].Spread,1),8,NULL,Red);

     else

      ObjectSetText("Spr1"+IntegerToString(i),DoubleToStr(pairinfo[i].Spread,1),8,NULL,Orange);

     ObjectSetText("Pp1"+IntegerToString(i),DoubleToStr(MathAbs(pairinfo[i].Pips),0),8,NULL,PipsColor);

     

     if(pairinfo[i].Pips > pairinfo[i].Pipsprev){

         pairinfo[i].PipsSig=UP;

        } else{

     if(pairinfo[i].Pips < pairinfo[i].Pipsprev)

         pairinfo[i].PipsSig=DOWN;

        }  

      



   }

}

//----------------------------------------------------------------------+

 void GetAdrValues() {



   double s=0.0;



   for (int i=0;i<ArraySize(TradePairs);i++) {



      for(int a=1;a<=20;a++) {

         if(pairinfo[i].PairPip != 0)

            s=s+(iHigh(TradePairs[i],PERIOD_D1 ,a)-iLow(TradePairs[i],PERIOD_D1 ,a))/pairinfo[i].PairPip;

         if(a==1)

            adrvalues[i].adr1=MathRound(s);

         if(a==5)

            adrvalues[i].adr5=MathRound(s/5);

         if(a==10)

            adrvalues[i].adr10=MathRound(s/10);

         if(a==20)

            adrvalues[i].adr20=MathRound(s/20);

      }

      adrvalues[i].adr=MathRound((adrvalues[i].adr1+adrvalues[i].adr5+adrvalues[i].adr10+adrvalues[i].adr20)/4.0);

      s=0.0;

   }

 }

//-----------------------------------------------------------------------------------------------+ 

void GetSignals() {

// CANDLE DIRECTION

//void GetSignals() {



   for (int i=0;i<ArraySize(TradePairs);i++) { // for (int i=0;i<ArraySize(signals);i++) {

      /*double Openm1    = iOpen(TradePairs[i], PERIOD_M1,0);

      double Closem1   = iClose(TradePairs[i],PERIOD_M1,0);*/

      double Openm5    = iOpen(TradePairs[i], PERIOD_M5,0);

      double Closem5   = iClose(TradePairs[i],PERIOD_M5,0);

      double Openm15   = iOpen(TradePairs[i], PERIOD_M15,0);

      double Closem15  = iClose(TradePairs[i],PERIOD_M15,0);

      double Openm30   = iOpen(TradePairs[i], PERIOD_M30,0);

      double Closem30  = iClose(TradePairs[i],PERIOD_M30,0);

      double Openh1    = iOpen(TradePairs[i], PERIOD_H1,0);

      double Closeh1   = iClose(TradePairs[i],PERIOD_H1,0);      

      double Openh4    = iOpen(TradePairs[i], PERIOD_H4,0);

      double Closeh4   = iClose(TradePairs[i],PERIOD_H4,0);

      /*double Opend     = iOpen(TradePairs[i], PERIOD_D1,0);

      double Closed    = iClose(TradePairs[i],PERIOD_D1,0);

      double Openw     = iOpen(TradePairs[i], PERIOD_W1,0);

      double Closew    = iClose(TradePairs[i],PERIOD_W1,0);

      double Openmn    = iOpen(TradePairs[i], PERIOD_MN1,0);

      double Closemn   = iClose(TradePairs[i],PERIOD_MN1,0);*/



      

      /*if(Closem1>Openm1)signals[i].Signalm1=UP;

      if(Closem1<Openm1)signals[i].Signalm1=DOWN;*/

      if(Closem5>Openm5)signals[i].Signalm5=UP;

      if(Closem5<Openm5)signals[i].Signalm5=DOWN;

      if(Closem15>Openm15)signals[i].Signalm15=UP;

      if(Closem15<Openm15)signals[i].Signalm15=DOWN;

      if(Closem30>Openm30)signals[i].Signalm30=UP;

      if(Closem30<Openm30)signals[i].Signalm30=DOWN;

      if(Closeh1>Openh1)signals[i].Signalh1=UP;

      if(Closeh1<Openh1)signals[i].Signalh1=DOWN;

      if(Closeh4>Openh4)signals[i].Signalh4=UP;

      if(Closeh4<Openh4)signals[i].Signalh4=DOWN;

      /*if(Closed>Opend)signals[i].Signald1=UP;

      if(Closed<Opend)signals[i].Signald1=DOWN;

      if(Closew>Openw)signals[i].Signalw1=UP;

      if(Closew<Openw)signals[i].Signalw1=DOWN;

      if(Closemn>Openmn)signals[i].Signalmn=UP;

      if(Closemn<Openmn)signals[i].Signalmn=DOWN;*/

      

      signals[i].Signaldirup=/*signals[i].Signalm1==UP&&*/signals[i].Signalm5==UP&&signals[i].Signalm15==UP&&signals[i].Signalm30==UP&&signals[i].Signalh1==UP&&signals[i].Signalh4==UP/*&&signals[i].Signald1==UP&&signals[i].Signalw1==UP&&signals[i].Signalmn==UP*/;

      signals[i].Signaldirdn=/*signals[i].Signalm1==DOWN&&*/signals[i].Signalm5==DOWN&&signals[i].Signalm15==DOWN&&signals[i].Signalm30==DOWN&&signals[i].Signalh1==DOWN&&signals[i].Signalh4==DOWN/*&&signals[i].Signald1==DOWN&&signals[i].Signalw1==DOWN&&signals[i].Signalmn==DOWN*/;

   }



//CANDLE DIRECTION

   int cnt = 0;

   ArrayResize(signals,ArraySize(TradePairs));

   for (int i=0;i<ArraySize(signals);i++) {

      signals[i].symbol=TradePairs[i]; 

      signals[i].point=MarketInfo(signals[i].symbol,MODE_POINT);

      signals[i].open=iOpen(signals[i].symbol,PERIOD_D1,0);      

      signals[i].close=iClose(signals[i].symbol,PERIOD_D1,0);

      signals[i].hi=MarketInfo(signals[i].symbol,MODE_HIGH);

      signals[i].lo=MarketInfo(signals[i].symbol,MODE_LOW);

      signals[i].bid=MarketInfo(signals[i].symbol,MODE_BID);

      signals[i].range=(signals[i].hi-signals[i].lo);

      signals[i].shift = iBarShift(signals[i].symbol,PERIOD_M1,TimeCurrent()-1800);

      signals[i].prevbid = iClose(signals[i].symbol,PERIOD_M1,signals[i].shift);

                 

     if(signals[i].range!=0) {            

      signals[i].ratio=MathMin(((signals[i].bid-signals[i].lo)/signals[i].range*100 ),100);

      signals[i].prevratio=MathMin(((signals[i].prevbid-signals[i].lo)/signals[i].range*100 ),100);     

           

      for (int j = 0; j < 8; j++){

            

      if(signals[i].ratio <= 3.0) signals[i].fact = 0;

      if(signals[i].ratio > 3.0)  signals[i].fact = 1;

      if(signals[i].ratio > 10.0) signals[i].fact = 2;

      if(signals[i].ratio > 25.0) signals[i].fact = 3;

      if(signals[i].ratio > 40.0) signals[i].fact = 4;

      if(signals[i].ratio > 50.0) signals[i].fact = 5;

      if(signals[i].ratio > 60.0) signals[i].fact = 6;

      if(signals[i].ratio > 75.0) signals[i].fact = 7;

      if(signals[i].ratio > 90.0) signals[i].fact = 8;

      if(signals[i].ratio > 97.0) signals[i].fact = 9;

       cnt++;

      

      if(curr[j]==StringSubstr(signals[i].symbol,3,3))

               signals[i].fact=9-signals[i].fact;



      if(curr[j]==StringSubstr(signals[i].symbol,0,3)) {

               signals[i].strength1=signals[i].fact;

              }  else{

      if(curr[j]==StringSubstr(signals[i].symbol,3,3))

               signals[i].strength2=signals[i].fact;

              }



      signals[i].calc =signals[i].strength1-signals[i].strength2;

      

      signals[i].strength=currency_strength(curr[j]);



            if(curr[j]==StringSubstr(signals[i].symbol,0,3)){

               signals[i].strength3=signals[i].strength;

            } else{

            if(curr[j]==StringSubstr(signals[i].symbol,3,3))

               signals[i].strength4=signals[i].strength;

            }

            signals[i].strength5=(signals[i].strength3-signals[i].strength4);

            

       signals[i].strength_old=old_currency_strength(curr[j]);



            if(curr[j]==StringSubstr(signals[i].symbol,0,3)){

               signals[i].strength6=signals[i].strength_old;

            } else {

            if(curr[j]==StringSubstr(signals[i].symbol,3,3))

               signals[i].strength7=signals[i].strength_old;

            }

            signals[i].strength8=(signals[i].strength6-signals[i].strength7);     

            signals[i].strength_Gap=signals[i].strength5-signals[i].strength8;

        

        if(signals[i].ratio>=trigger_buy_bidratio){

               signals[i].SigRatio=UP;

           } else {

         if(signals[i].ratio<=trigger_sell_bidratio)

               signals[i].SigRatio=DOWN;

           }  

        

        if(signals[i].ratio>signals[i].prevratio){

                signals[i].SigRatioPrev=UP;

           } else {

        if(signals[i].ratio<signals[i].prevratio)

                signals[i].SigRatioPrev=DOWN;

           }      

                    

        if(signals[i].calc>=trigger_buy_relstrength){

               signals[i].SigRelStr=UP;

             } else {

        if (signals[i].calc<=trigger_sell_relstrength) 

              signals[i].SigRelStr=DOWN;

             } 

             

         if(signals[i].strength5>=trigger_buy_buysellratio){

               signals[i].SigBSRatio=UP;

             } else {

       if (signals[i].calc<=trigger_sell_buysellratio) 

              signals[i].SigBSRatio=DOWN;

             }       

        

        if(signals[i].strength_Gap>=trigger_gap_buy){

               signals[i].SigGap=UP;

             } else {

        if (signals[i].strength_Gap<=trigger_gap_sell) 

              signals[i].SigGap=DOWN;

             }

              

        if(signals[i].strength5>signals[i].strength8){

              signals[i].SigGapPrev=UP;

             } else {

        if(signals[i].strength5<signals[i].strength8)      

               signals[i].SigGapPrev=DOWN;

             }          

      

      }

     

     }

      

    }    



}





//+------------------------------------------------------------------+       



color Colorstr(double tot) 

  {

   if(tot>=trigger_buy_bidratio)

      return (BullColor);

   if(tot<=trigger_sell_bidratio)

      return (BearColor);

   return (clrWhiteSmoke);

  }

color ColorBSRat(double tot) 

  {

   if(tot>=trigger_buy_buysellratio)

      return (BullColor);

   if(tot<=trigger_sell_buysellratio)

      return (BearColor);

   return (clrWhiteSmoke);

  } 

color ColorGap(double tot) 

  {

   if(tot>=trigger_gap_buy)

      return (BullColor);

   if(tot<=trigger_gap_sell)

      return (BearColor);

   return (clrWhiteSmoke);

  }     

//+------------------------------------------------------------------+ 



void displayMeter() {

   

   double arrt[8][3];

   int arr2,arr3;

   arrt[0][0] = currency_strength(curr[0]); arrt[1][0] = currency_strength(curr[1]); arrt[2][0] = currency_strength(curr[2]);

   arrt[3][0] = currency_strength(curr[3]); arrt[4][0] = currency_strength(curr[4]); arrt[5][0] = currency_strength(curr[5]);

   arrt[6][0] = currency_strength(curr[6]); arrt[7][0] = currency_strength(curr[7]);

   arrt[0][2] = old_currency_strength(curr[0]); arrt[1][2] = old_currency_strength(curr[1]);arrt[2][2] = old_currency_strength(curr[2]);

   arrt[3][2] = old_currency_strength(curr[3]); arrt[4][2] = old_currency_strength(curr[4]);arrt[5][2] = old_currency_strength(curr[5]);

   arrt[6][2] = old_currency_strength(curr[6]);arrt[7][2] = old_currency_strength(curr[7]);

   arrt[0][1] = 0; arrt[1][1] = 1; arrt[2][1] = 2; arrt[3][1] = 3; arrt[4][1] = 4;arrt[5][1] = 5; arrt[6][1] = 6; arrt[7][1] = 7;

   ArraySort(arrt, WHOLE_ARRAY, 0, MODE_DESCEND);

     

   for (int m = 0; m < 8; m++) {

      arr2 = arrt[m][1];

      arr3=(int)arrt[m][2];

      currstrength[m] = arrt[m][0];

      prevstrength[m] = arrt[m][2]; 

         SetText(curr[arr2]+"pos",IntegerToString(m+1)+".",x_axis+167,(m*15)+y_axis+450,color_for_profit(arrt[m][0]),10);//COLUNA PARES CAIXA BRANCA

         SetText(curr[arr2]+"curr", curr[arr2],x_axis+187,(m*15)+y_axis+450,color_for_profit(arrt[m][0]),10);//COLUNA PARES CAIXA BRANCA

         SetText(curr[arr2]+"currdig", DoubleToStr(arrt[m][0],1),x_axis+222,(m*15)+y_axis+450,color_for_profit(arrt[m][0]),10);//COLUNA PARES CAIXA BRANCA

        // SetText(curr[arr2]+"currdig", DoubleToStr(ratio[m][0],1),x_axis+280,(m*18)+y_axis+17,color_for_profit(arrt[m][0]),12);

        

        if(currstrength[m] > prevstrength[m]){SetObjText("Sdir"+IntegerToString(m),CharToStr(233),x_axis+255,(m*15)+y_axis+450,BullColor,10);}//FLEXA CAIXA BRANCA

         else if(currstrength[m] < prevstrength[m]){SetObjText("Sdir"+IntegerToString(m),CharToStr(234),x_axis+255,(m*15)+y_axis+450,BearColor,10);}//FLEXA CAIXA BRANCA

         else {SetObjText("Sdir"+IntegerToString(m),CharToStr(243),x_axis+255,(m*15)+y_axis+450,clrYellow,10);}//FLEXA CAIXA BRANCA

         

         

         }

 ChartRedraw(); 

}



color color_for_profit(double total) 

  {

  if(total<2.0)

      return (clrRed);

   if(total<=3.0)

      return (clrOrangeRed);

   if(total>7.0)

      return (clrLime);

   if(total>6.0)

      return (clrDarkTurquoise);

   if(total>5.0)

      return (clrSandyBrown);

   if(total<=5.0)

      return (clrYellow);       

   return(clrSteelBlue);

  }



double currency_strength(string pair) {

   int fact;

   string sym;

   double range;

   double ratio;

   double strength = 0;

   int cnt1 = 0;

   

   for (int x = 0; x < ArraySize(TradePairs); x++) {

      fact = 0;

      sym = TradePairs[x];

      if (pair == StringSubstr(sym, 0, 3) || pair == StringSubstr(sym, 3, 3)) {

        // sym = sym + tempsym;

         range = (MarketInfo(sym, MODE_HIGH) - MarketInfo(sym, MODE_LOW)) ;

         if (range != 0.0) {

            ratio = 100.0 * ((MarketInfo(sym, MODE_BID) - MarketInfo(sym, MODE_LOW)) / range );

            if (ratio > 3.0)  fact = 1;

            if (ratio > 10.0) fact = 2;

            if (ratio > 25.0) fact = 3;

            if (ratio > 40.0) fact = 4;

            if (ratio > 50.0) fact = 5;

            if (ratio > 60.0) fact = 6;

            if (ratio > 75.0) fact = 7;

            if (ratio > 90.0) fact = 8;

            if (ratio > 97.0) fact = 9;

            cnt1++;

            if (pair == StringSubstr(sym, 3, 3)) fact = 9 - fact;

            strength += fact;

           // signals[x].strength += fact;

         }

      } 

           

   }

  // for (int x = 0; x < ArraySize(TradePairs); x++) 

   //if(cnt1!=0)signals[x].strength /= cnt1;

   if(cnt1!=0)strength /= cnt1;

   return (strength);

   

 }

//-----------------------------------------------------------------------------------+

double old_currency_strength(string pair) 

  {

   int fact;

   string sym;

   double range;

   double ratio;

   double strength=0;

   int cnt1=0;



   for(int x=0; x<ArraySize(TradePairs); x++) 

     {

      fact= 0;

      sym = TradePairs[x];

      int bar = iBarShift(TradePairs[x],PERIOD_M1,TimeCurrent()-1800);

      double prevbid = iClose(TradePairs[x],PERIOD_M1,bar);

      

      if(pair==StringSubstr(sym,0,3) || pair==StringSubstr(sym,3,3)) 

        {

         // sym = sym + tempsym;

         range=(MarketInfo(sym,MODE_HIGH)-MarketInfo(sym,MODE_LOW));

         if(range!=0.0) 

           {

            ratio=100.0 *((prevbid-MarketInfo(sym,MODE_LOW))/range);



            if(ratio > 3.0)  fact = 1;

            if(ratio > 10.0) fact = 2;

            if(ratio > 25.0) fact = 3;

            if(ratio > 40.0) fact = 4;

            if(ratio > 50.0) fact = 5;

            if(ratio > 60.0) fact = 6;

            if(ratio > 75.0) fact = 7;

            if(ratio > 90.0) fact = 8;

            if(ratio > 97.0) fact = 9;

            

            cnt1++;



            if(pair==StringSubstr(sym,3,3))

               fact=9-fact;



            strength+=fact;



           }

        }

     }

   if(cnt1!=0)

      strength/=cnt1;



   return (strength);

  

} 

//-----------------------------------------------------------------------+

color Colorsync(double tot) 

  {

   if(tot>=trigger_buy_relstrength)

      return (BullColor);

   if(tot<=trigger_sell_relstrength)

      return (BearColor);

   return (clrWhiteSmoke);

  }

//-----------------------------------------------------------------------+

//CANDLE DIRECTIO SET COLOR 

void SetColors(int i) {

         if(signals[i].Signalm1==1){ClrLime=BullColor;}

         if(signals[i].Signalm1==-1){ClrRed=BearColor;}

         if(signals[i].Signalm5==1){ClrLime=BullColor;}         

         if(signals[i].Signalm5==-1){ClrRed =BearColor;}

         if(signals[i].Signalm15==1){ClrLime =BullColor;}

         if(signals[i].Signalm15==-1){ClrRed=BearColor;}

         if(signals[i].Signalm30==1){ClrLime=BullColor;}

         if(signals[i].Signalm30==-1){ClrRed=BearColor;}

         if(signals[i].Signalh1==1){ClrLime=BullColor;}

         if(signals[i].Signalh1==-1){ClrRed=BearColor;}

         if(signals[i].Signalh4==1){ClrLime=BullColor;}

         if(signals[i].Signalh4==-1){ClrRed=BearColor;}

         if(signals[i].Signald1==1){ClrLime=BullColor;}

         if(signals[i].Signald1==-1){ClrRed=BearColor;}

         if(signals[i].Signalw1==1){ClrLime=BullColor;}

         if(signals[i].Signalw1==-1){ClrRed=BearColor;}

         if(signals[i].Signalmn==1){ClrLime=BullColor;}

         if(signals[i].Signalmn==-1){ClrRed=BearColor;}

         if(signals[i].Signalusd>0){ClrLime=BullColor;}

         if(signals[i].Signalusd<0){ClrRed=BearColor;}

         if(signals[i].Signalperc>0){ClrLime=BullColor;}

         if(signals[i].Signalperc<0){ClrRed=BearColor;}

         

        if(signals[i].Signalusd>0.0)clrLime;     

    else if(signals[i].Signalusd<0.0)C'249,0,0';

         if(signals[i].Signalusd>10.0)clrLime;     

    else if(signals[i].Signalusd<-10.0)C'249,0,0';

         else C'20,20,20'; 

         if(signals[i].Signalusd>20.0)clrLime;     

    else if(signals[i].Signalusd<-20.0)C'249,0,0';

         else C'20,20,20';  

         if(signals[i].Signalusd>30.0)clrLime;     

    else if(signals[i].Signalusd<-30.0)C'249,0,0';

         else C'20,20,20'; 

         if(signals[i].Signalusd>40.0)clrLime;     

    else if(signals[i].Signalusd<-40.0)C'249,0,0';

         else C'20,20,20'; 

         if(signals[i].Signalusd>50.0)clrLime;     

    else if(signals[i].Signalusd<-50.0)C'249,0,0';

         else C'20,20,20'; 

         if(signals[i].Signalusd>60.0)clrLime;     

    else if(signals[i].Signalusd<-60.0)C'249,0,0';

         else C'20,20,20'; 

         if(signals[i].Signalusd>70.0)clrLime;     

    else if(signals[i].Signalusd<-70.0)C'249,0,0';

         else C'20,20,20'; 

         if(signals[i].Signalusd>80.0)clrLime;     

    else if(signals[i].Signalusd<-80.0)C'249,0,0';

         else C'20,20,20';  

         if(signals[i].Signalusd>90.0)clrLime;     

    else if(signals[i].Signalusd<-90.0)C'249,0,0';

         else C'20,20,20';    

}

//CANDLE DIRECTIONSET COLOR 

//======================RUN=974=============== 



void GetTrendChange() {

   for (int i=0;i<ArraySize(TradePairs);i++) {



      signals[i].Signalcci = NONE;



   double cci = iCCI(TradePairs[i],0, trade_Period_CCI, PRICE_CLOSE, PERIOD_M30);

   



   double CloseBuy1_1 =  cci ;

   double CloseBuy1_2 = 100;



   double CloseSell1_1 =  cci ;

   double CloseSell1_2 = -100;   

    

          if (CloseBuy1_1 > CloseBuy1_2)  

      {        

      signals[i].Signalcci = UP;

      } 

             

      if (CloseSell1_1 < CloseSell1_2) 

      {        

      signals[i].Signalcci = DOWN;

      }      

   

      

 //======================RUN=974===============  

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA4

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M1,trade_Period_MA1,0,MODE_SMA,PRICE_CLOSE,0);//MM12 //PERIODO TIME FRAME ALTERAR DE PERIOD_M1 PARA NULL OU TF     

      double BB10 = iMA(TradePairs[i],PERIOD_M5,trade_Period_MA1,0,MODE_SMA,PRICE_CLOSE,0);//MM12       

      

      if(iClose(TradePairs[i],PERIOD_M1,0)>BB1 )

         signals[i].Signalham12=UP;

      if(iClose(TradePairs[i],PERIOD_M1,0)<BB1 )

         signals[i].Signalham12=DOWN;

      if(iClose(TradePairs[i],PERIOD_M5,0)>BB10 )

         signals[i].Signalham52=UP;

      if(iClose(TradePairs[i],PERIOD_M5,0)<BB10 )

         signals[i].Signalham52=DOWN;

         

      signals[i].Signalmaup10=(signals[i].Signalham12==UP&&signals[i].Signalham52==UP);

      signals[i].Signalmadn10=(signals[i].Signalham12==DOWN&&signals[i].Signalham52==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA41

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M15,trade_Period_MA1,0,MODE_SMA,PRICE_CLOSE,0);//MM12      

      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_MA1,0,MODE_SMA,PRICE_CLOSE,0);//MM12       

      

      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )

         signals[i].Signalham13=UP;

      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )

         signals[i].Signalham13=DOWN;

      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )

         signals[i].Signalham53=UP;

      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )

         signals[i].Signalham53=DOWN;

         

      signals[i].Signalmaup11=(signals[i].Signalham13==UP&&signals[i].Signalham53==UP);

      signals[i].Signalmadn11=(signals[i].Signalham13==DOWN&&signals[i].Signalham53==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA42

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_H1,trade_Period_MA1,0,MODE_SMA,PRICE_CLOSE,0);//MM12      

      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_MA1,0,MODE_SMA,PRICE_CLOSE,0);//MM12       

      

      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )

         signals[i].Signalham1310=UP;

      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )

         signals[i].Signalham1310=DOWN;

      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )

         signals[i].Signalham5311=UP;

      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )

         signals[i].Signalham5311=DOWN;

         

      signals[i].Signalmaup12=(signals[i].Signalham1310==UP&&signals[i].Signalham5311==UP);

      signals[i].Signalmadn12=(signals[i].Signalham1310==DOWN&&signals[i].Signalham5311==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA5

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M1,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_CLOSE,0);//MM21      

      double BB10 = iMA(TradePairs[i],PERIOD_M5,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_CLOSE,0);//MM21       

      

      if(iClose(TradePairs[i],PERIOD_M1,0)>BB1 )

         signals[i].Signalham1311=UP;

      if(iClose(TradePairs[i],PERIOD_M1,0)<BB1 )

         signals[i].Signalham1311=DOWN;

      if(iClose(TradePairs[i],PERIOD_M5,0)>BB10 )

         signals[i].Signalham5312=UP;

      if(iClose(TradePairs[i],PERIOD_M5,0)<BB10 )

         signals[i].Signalham5312=DOWN;

         

      signals[i].Signalmaup13=(signals[i].Signalham1311==UP&&signals[i].Signalham5312==UP);

      signals[i].Signalmadn13=(signals[i].Signalham1311==DOWN&&signals[i].Signalham5312==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA51

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M15,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_CLOSE,0);//MM21      

      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_CLOSE,0);//MM21       

      

      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )

         signals[i].Signalham15=UP;

      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )

         signals[i].Signalham15=DOWN;

      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )

         signals[i].Signalham30=UP;

      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )

         signals[i].Signalham30=DOWN;

         

      signals[i].Signalmaup14=(signals[i].Signalham15==UP&&signals[i].Signalham30==UP);

      signals[i].Signalmadn14=(signals[i].Signalham15==DOWN&&signals[i].Signalham30==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA52

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_CLOSE,0);//MM21      

      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_CLOSE,0);//MM21       

      

      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )

         signals[i].Signalham1=UP;

      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )

         signals[i].Signalham1=DOWN;

      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )

         signals[i].Signalham5=UP;

      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )

         signals[i].Signalham5=DOWN;

         

      signals[i].Signalmaup15=(signals[i].Signalham1==UP&&signals[i].Signalham5==UP);

      signals[i].Signalmadn15=(signals[i].Signalham1==DOWN&&signals[i].Signalham5==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA1

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M1,trade_Period_MA,0,MODE_SMA,PRICE_CLOSE,0);//MM30      

      double BB10 = iMA(TradePairs[i],PERIOD_M5,trade_Period_MA,0,MODE_SMA,PRICE_CLOSE,0);//MM30       

      

      if(iClose(TradePairs[i],PERIOD_M1,0)>BB1 )

         signals[i].Signalhah4=UP;

      if(iClose(TradePairs[i],PERIOD_M1,0)<BB1 )

         signals[i].Signalhah4=DOWN;

      if(iClose(TradePairs[i],PERIOD_M5,0)>BB10 )

         signals[i].Signalhad1=UP;

      if(iClose(TradePairs[i],PERIOD_M5,0)<BB10 )

         signals[i].Signalhad1=DOWN;

         

      signals[i].Signalmaup1=(signals[i].Signalhah4==UP&&signals[i].Signalhad1==UP);

      signals[i].Signalmadn1=(signals[i].Signalhah4==DOWN&&signals[i].Signalhad1==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}} //tirar uma chave para fechar codigo

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA11

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M15,trade_Period_MA,0,MODE_SMA,PRICE_CLOSE,0);//MM30      

      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_MA,0,MODE_SMA,PRICE_CLOSE,0);//MM30       

      

      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )

         signals[i].Signalhah410=UP;

      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )

         signals[i].Signalhah410=DOWN;

      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )

         signals[i].Signalhad111=UP;

      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )

         signals[i].Signalhad111=DOWN;

         

      signals[i].Signalmaup2=(signals[i].Signalhah410==UP&&signals[i].Signalhad111==UP);

      signals[i].Signalmadn2=(signals[i].Signalhah410==DOWN&&signals[i].Signalhad111==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}} //tirar uma chave para fechar codigo

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA12

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_H1,trade_Period_MA,0,MODE_SMA,PRICE_CLOSE,0);//MM30      

      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_MA,0,MODE_SMA,PRICE_CLOSE,0);//MM30       

      

      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )

         signals[i].Signalhah411=UP;

      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )

         signals[i].Signalhah411=DOWN;

      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )

         signals[i].Signalhad112=UP;

      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )

         signals[i].Signalhad112=DOWN;

         

      signals[i].Signalmaup3=(signals[i].Signalhah411==UP&&signals[i].Signalhad112==UP);

      signals[i].Signalmadn3=(signals[i].Signalhah411==DOWN&&signals[i].Signalhad112==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}} //tirar uma chave para fechar codigo

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA2

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M1,trade_Period_Moving_Average,0,MODE_SMA,PRICE_CLOSE,0);//MM50      

      double BB10 = iMA(TradePairs[i],PERIOD_M5,trade_Period_Moving_Average,0,MODE_SMA,PRICE_CLOSE,0);//MM50       

      

      if(iClose(TradePairs[i],PERIOD_M1,0)>BB1 )

         signals[i].Signalham1510=UP;

      if(iClose(TradePairs[i],PERIOD_M1,0)<BB1 )

         signals[i].Signalham1510=DOWN;

      if(iClose(TradePairs[i],PERIOD_M5,0)>BB10 )

         signals[i].Signalham3011=UP;

      if(iClose(TradePairs[i],PERIOD_M5,0)<BB10 )

         signals[i].Signalham3011=DOWN;

         

      signals[i].Signalmaup4=(signals[i].Signalham1510==UP&&signals[i].Signalham3011==UP);

      signals[i].Signalmadn4=(signals[i].Signalham1510==DOWN&&signals[i].Signalham3011==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}} //tirar uma chave para fechar codigo

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA22

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M15,trade_Period_Moving_Average,0,MODE_SMA,PRICE_CLOSE,0);//MM50      

      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average,0,MODE_SMA,PRICE_CLOSE,0);//MM50       

      

      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )

         signals[i].Signalham1511=UP;

      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )

         signals[i].Signalham1511=DOWN;

      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )

         signals[i].Signalham3012=UP;

      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )

         signals[i].Signalham3012=DOWN;

         

      signals[i].Signalmaup5=(signals[i].Signalham1511==UP&&signals[i].Signalham3012==UP);

      signals[i].Signalmadn5=(signals[i].Signalham1511==DOWN&&signals[i].Signalham3012==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}} //tirar uma chave para fechar codigo

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA23

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average,0,MODE_SMA,PRICE_CLOSE,0);//MM50      

      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_Moving_Average,0,MODE_SMA,PRICE_CLOSE,0);//MM50       

      

      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )

         signals[i].Signalham110=UP;

      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )

         signals[i].Signalham110=DOWN;

      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )

         signals[i].Signalham511=UP;

      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )

         signals[i].Signalham511=DOWN;

         

      signals[i].Signalmaup6=(signals[i].Signalham110==UP&&signals[i].Signalham511==UP);

      signals[i].Signalmadn6=(signals[i].Signalham110==DOWN&&signals[i].Signalham511==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}} //tirar uma chave para fechar codigo

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA3

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M1,trade_Period_Simple_Moving_Moverage,0,MODE_SMA,PRICE_CLOSE,0);//MM100      

      double BB10 = iMA(TradePairs[i],PERIOD_M5,trade_Period_Simple_Moving_Moverage,0,MODE_SMA,PRICE_CLOSE,0);//MM100       

      

      if(iClose(TradePairs[i],PERIOD_M1,0)>BB1 )

         signals[i].Signalham111=UP;

      if(iClose(TradePairs[i],PERIOD_M1,0)<BB1 )

         signals[i].Signalham111=DOWN;

      if(iClose(TradePairs[i],PERIOD_M5,0)>BB10 )

         signals[i].Signalham512=UP;

      if(iClose(TradePairs[i],PERIOD_M5,0)<BB10 )

         signals[i].Signalham512=DOWN;

         

      signals[i].Signalmaup7=(signals[i].Signalham111==UP&&signals[i].Signalham512==UP);

      signals[i].Signalmadn7=(signals[i].Signalham111==DOWN&&signals[i].Signalham512==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA31

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_M15,trade_Period_Simple_Moving_Moverage,0,MODE_SMA,PRICE_CLOSE,0);//MM100      

      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Simple_Moving_Moverage,0,MODE_SMA,PRICE_CLOSE,0);//MM100       

      

      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )

         signals[i].Signalham1210=UP;

      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )

         signals[i].Signalham1210=DOWN;

      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )

         signals[i].Signalham5211=UP;

      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )

         signals[i].Signalham5211=DOWN;

         

      signals[i].Signalmaup8=(signals[i].Signalham1210==UP&&signals[i].Signalham5211==UP);

      signals[i].Signalmadn8=(signals[i].Signalham1210==DOWN&&signals[i].Signalham5211==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA32

   for (int i=0;i<ArraySize(TradePairs);i++) {

   

      double BB1  = iMA(TradePairs[i],PERIOD_H1,trade_Period_Simple_Moving_Moverage,0,MODE_SMA,PRICE_CLOSE,0);//MM100      

      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_Simple_Moving_Moverage,0,MODE_SMA,PRICE_CLOSE,0);//MM100       

      

      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )

         signals[i].Signalham1211=UP;

      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )

         signals[i].Signalham1211=DOWN;

      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )

         signals[i].Signalham5212=UP;

      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )

         signals[i].Signalham5212=DOWN;

         

      signals[i].Signalmaup9=(signals[i].Signalham1211==UP&&signals[i].Signalham5212==UP);

      signals[i].Signalmadn9=(signals[i].Signalham1211==DOWN&&signals[i].Signalham5212==DOWN);   

        

     

     signals[i].prevSignalusd = signals[i].Signalusd; 

    

      double high   = iHigh(TradePairs[i],trigger_TF_HM1 ,0);

      double low    = iLow(TradePairs[i],trigger_TF_HM1 ,0);

      double close  = iClose(TradePairs[i],trigger_TF_HM1 ,0);

      double open   = iOpen(TradePairs[i],trigger_TF_HM1 ,0);

      double point  = MarketInfo(TradePairs[i],MODE_POINT);

      double range  = (high-low)*point;

     

     if (range*point > 0.0) {

        if (open>close)

            signals[i].Signalusd = MathMin((high-close)/range*point/ (-0.01),100);

          else

            signals[i].Signalusd = MathMin((close-low)/range*point*100,100);                                           

     } else {

         signals[i].Signalusd = signals[i].prevSignalusd;

//     }

//   }

//  }

}}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI

      double Openlast = iRSI(TradePairs[i],PERIOD_H1,trade_Period_RSI,0,0);

      double Openbefore = iRSI(TradePairs[i],PERIOD_H1,trade_Period_RSI,0,1);

    

      

      if (Openlast<Openbefore && Openlast>30) {

         

            signals[i].Signalrsi = DOWN;

      }

       

      if (Openlast>Openbefore && Openlast<70)  {

         

            signals[i].Signalrsi = UP;

      }   

   }

 }

void GetCommodity() {

   for (int i=0;i<ArraySize(TradePairs);i++) {



      signals[i].Signalrsi = NONE; 

      

      }}

//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI  



    

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---