#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};
/*//SUPORTE/RESISTENCIA
// ---- Global variables ----------------
double       PipValue;
int          magic_number;
double       _point,_bid,_ask,_spread,_Low,_High,_close,_open;
int          _digits;
//string       _symbol;
int          slpg=3;
double       MULT;
//SUPORTE RESISTENCIA*/
sinput   string   t_trade    = "EXPERT "; // ==========================
sinput bool                      UseDefaultPairs            = true;              // Use todos os 28 pares
sinput string                    OwnPairs                   = "EURUSD"/*"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;              //Número Mágico
//sinput bool                      autotrade                = true;

sinput   string   t_trigger  = "PRICE ACTION"; // ========================== 
//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       = 80;                // % Nivel para abrir Buy
sinput   double                  trigger_sell_bidratio      = 80;                // % 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   = 2.0;               // Nivel para abrir Buy
sinput   double                  trigger_sell_buysellratio  =-2.0;               // Nivel para abrir Sell
//sinput   bool                    trigger_use_gap          = false;             // Use Gap filtro
sinput   double                  trigger_gap_buy            = 0.60;              // Gap nivel para abrir Buy
sinput   double                  trigger_gap_sell           = -0.60;             // Gap nivel para abrir Sell

sinput   string   t_trigger2  = "HEAT MAP"; // ==========================
//sinput   bool                    trigger_UseHeatMap1      = false;             // Use Heat Map 1
sinput   ENUM_TIMEFRAMES         trigger_TF_HM1             = 30;                // TimeFrame for Heat Map 1
sinput   double                  trade_MIN_HeatMap1         = 0.02;              // Minimum % HeatMap1 to open position
//sinput   bool                    trigger_UseHeatMap2      = false;             // Use Heat Map 2
sinput   ENUM_TIMEFRAMES         trigger_TF_HM2             = 60;                // TimeFrame for Heat Map 2
sinput   double                  trade_MIN_HeatMap2         = 0.03;              // Minimum % HeatMap2 to open position
//sinput   bool                    trigger_UseHeatMap3      = false;             // Use Heat Map 3
sinput   ENUM_TIMEFRAMES         trigger_TF_HM3             = 240;               // TimeFrame for Heat Map 3
sinput   double                  trade_MIN_HeatMap3         = 0.05;              // Minimum % HeatMap3 to open position
//sinput   bool                    trigger_UseHeatMap4      = false;             // Use Heat Map 4
sinput   ENUM_TIMEFRAMES         trigger_TF_HM4             = 1440;              // TimeFrame for Heat Map 4
sinput   double                  trade_MIN_HeatMap4         = 0.05;              // Minimum % HeatMap4 to open position
//sinput   bool                    trigger_UseHeatMap5      = false;             // Use Heat Map 5
sinput   ENUM_TIMEFRAMES         trigger_TF_HM5             = 10080;             // TimeFrame for Heat Map 5
sinput   double                  trade_MIN_HeatMap5         = 0.03;              // Minimum % HeatMap5 to open position

sinput   string   t_trigger3  = "ANALISE TECNICA"; // ==========================
//MEDIA MOVEL
//sinput   bool                    trigger_Moving_Average1  = false;             // Use Média Movel 1
sinput   int                    trade_Period_Moving_Average1= 12;               // Periodo Média Movel 1
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average2              = false;             // Use a Média Móvel 2
sinput   int                    trade_Period_Moving_Average2= 12;               // Período de Média Móvel 2
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average3   = false;              // Use Média Movel 3
sinput   int                    trade_Period_Moving_Average3= 12;                // Periodo Média Movel 3
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average4               = false;              // Use a Média Móvel 4
sinput   int                    trade_Period_Moving_Average4= 21;                // Período de Média Móvel 4
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average5              = false;              // Use a Média Móvel 5
sinput   int                    trade_Period_Moving_Average5= 21;       // Período de Média Móvel 5
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//MEDIA MOVEL
//sinput   bool                    trigger_Moving_Average6  = false;             // Use Média Movel 1
sinput   int                    trade_Period_Moving_Average6= 21;               // Periodo Média Movel 1
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average7              = false;             // Use a Média Móvel 2
sinput   int                    trade_Period_Moving_Average7= 30;               // Período de Média Móvel 2
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average8   = false;              // Use Média Movel 3
sinput   int                    trade_Period_Moving_Average8= 30;                // Periodo Média Movel 3
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average9               = false;              // Use a Média Móvel 4
sinput   int                    trade_Period_Moving_Average9= 30;                // Período de Média Móvel 4
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average10              = false;              // Use a Média Móvel 5
sinput   int                   trade_Period_Moving_Average10= 50;       // Período de Média Móvel 5
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//MEDIA MOVEL
//sinput   bool                    trigger_Moving_Average11 = false;             // Use Média Movel 1
sinput   int                   trade_Period_Moving_Average11= 50;               // Periodo Média Movel 1
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average12              = false;             // Use a Média Móvel 2
sinput   int                   trade_Period_Moving_Average12= 50;               // Período de Média Móvel 2
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average13   = false;              // Use Média Movel 3
sinput   int                   trade_Period_Moving_Average13= 100;                // Periodo Média Movel 3
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average14               = false;              // Use a Média Móvel 4
sinput   int                   trade_Period_Moving_Average14= 100;                // Período de Média Móvel 4
//input ENUM_TIMEFRAMES TF = PERIOD_CURRENT;            //Moving Average Timeframe
//sinput   bool                    trigger_Moving_Average15              = false;              // Use a Média Móvel 5
sinput   int                   trade_Period_Moving_Average15= 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
//MEDIA MOVEL
sinput   string   t_trigger4  = "CCI/RSI/MACD"; // ==========================
//sinput   bool                    UseCCI                   = false;             // Use CCI 
sinput   int                     trade_Period_CCI1          = 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                    UseCCI2                  = false;             // Use CCI 
sinput   int                     trade_Period_CCI2          = 12;                 // CCI Periodo
sinput   double                  trigger_CCI_CloseBuy1_21   = -100;               // Nível de Compra CCI
sinput   double                  trigger_CCI_CloseSell1_21  = 100;              // Nível de Venda CCI
//sinput   bool                    UseCCI3                  = false;             // Use CCI 
sinput   int                     trade_Period_CCI3          = 12;                 // CCI Periodo
sinput   double                  trigger_CCI_CloseBuy1_22   = -100;               // Nível de Compra CCI
sinput   double                  trigger_CCI_CloseSell1_22  = 100;              // Nível de Venda CCI
//sinput   bool                    UseRSI                   = false;             // Use RSI 
sinput   int                     trade_Period_RSI1          = 12;                // RSI Periodo
//sinput   bool                    UseRSI2                  = false;             // Use RSI 
sinput   int                     trade_Period_RSI2          = 12;                // RSI Periodo
//sinput   bool                    UseRSI3                  = false;             // Use RSI 
sinput   int                     trade_Period_RSI3          = 12;                // RSI Periodo
//MACD
//--- indicator parameters MACD
//sinput   bool                    trigger_MACD             = false;              // MACD
//extern string TimeFrames        = "M1;M5;M15;M30;H1;H4;D1;W1;MN";        // Time frames to use (separated by ";" in the list)
input int FastPeriod                                        = 30;   // Fast EMA Period
input int SlowPeriod                                        = 26;   // Slow EMA Period
input int SignPeriod                                        = 9;  // Signal SMA Period
extern ENUM_APPLIED_PRICE Price                             = PRICE_OPEN;                           // MACD price
extern int    BarToTest                                     = 0;                                     // Bar to test
//--- indicator buffers
double    ExtMacdBuffer[];
double    ExtSignalBuffer[];
//--- right input parameters flag
bool      ExtParameters                                     = false;
//--- indicator parameters MACD
//sinput   bool                    trigger_MACD1            = false;              // MACD
//extern string TimeFrames                                  = "M1;M5;M15;M30;H1;H4;D1;W1;MN";        // Time frames to use (separated by ";" in the list)
input int FastPeriod1                                       = 30;   // Fast EMA Period
input int SlowPeriod1                                       = 26;   // Slow EMA Period
input int SignPeriod1                                       = 9;  // Signal SMA Period
extern ENUM_APPLIED_PRICE Price1                            = PRICE_OPEN;                           // MACD price
extern int    BarToTest1                                    = 0;                                     // Bar to test
//--- indicator buffers
double    ExtMacdBuffer1[];
double    ExtSignalBuffer1[];
//--- right input parameters flag
bool      ExtParameters1                                    = false;
//--- indicator parameters MACD
//sinput   bool                    trigger_MACD2            = false;              // MACD
//extern string TimeFrames                                  = "M1;M5;M15;M30;H1;H4;D1;W1;MN";        // Time frames to use (separated by ";" in the list)
input int FastPeriod2                                       = 30;   // Fast EMA Period
input int SlowPeriod2                                       = 26;   // Slow EMA Period
input int SignPeriod2                                       = 9;  // Signal SMA Period
extern ENUM_APPLIED_PRICE Price2                            = PRICE_OPEN;                           // MACD price
extern int    BarToTest2                                    = 0;                                     // Bar to test
//--- indicator buffers
double    ExtMacdBuffer2[];
double    ExtSignalBuffer2[];
//--- right input parameters flag
bool      ExtParameters2                                    = false;
// MACD
/*//SUPORTE RESISTENCIA
input bool        CloseTrade=true;   // Close Trade by New Trigger
input int         ProfitTypeClTrd=1; // Close Trade: Prof Type (0:all,1:pos,2:neg)

                                     // Bollinger Band Filter data
int         BBPeriod    =   20;      // Boll Band Period
double      BBSigma     =  2.0;      // Boll Band Sigma
input string      N1=" --------- Buy/Sell Trigger Data ----------";
//
input double      BBSprd_LwLim   =  25.;  // Boll Band Lower Limit
input double      BBSprd_UpLim   =  70.;  // Boll Band Upper Limit
                                          // support resistance setup
extern int        ExtDepth       = 14;  // ZigZag Depth
extern int        ExtDeviation   =  7;  // ZigZag Deviation
extern int        ExtBackstep    =  8;  // ZigZag BacdkStp
extern int        ProcBars_Min   =  8;  // Min Bars in ZZ Segment
 // SMA
input int         SMAPer= 30; // SMA Period 
// sigma indicator parameters
input int         SigPer     =  30;     // Std Dev Period
input double      SigLim     =  1.38;   // Std Dev Upper Limit
//--- ADX indicator parameter
input int         ADX_Per   =  10;    // Period ADX
input double      ADX_Lim   =  24.;   // ADX Lim (Min Lvl)
                                      // Time filters                                     //
input int         entryhour  =  5;     // Trade Entry Hour (0, ... 23)
input int         openhours  = 20;     // Trade Duration Hours (12.. 23)
//SUPORTE RESISTENCIA*/                                       // Money Mgmt

sinput   string   t_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                      = 20;                // 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 = "SESSÕES"; // ================================
//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                  = true;             //Auto Trade
bool                    trigger_use_Pips           = false;             // Use Pips
bool                    trigger_use_bidratio       = true;             // Use BidRatio filtro
bool                    trigger_use_relstrength    = true;             // Use Relative Strength filtro (Base)
bool                    trigger_use_buysellratio   = true;             // Use Buy/Sell Ratio filtro
bool                    trigger_use_gap            = false;             // Use Gap filtro
bool                    trigger_UseHeatMap1        = true;             // Use Heat Map 1
bool                    trigger_UseHeatMap2        = true;             // Use Heat Map 2
bool                    trigger_UseHeatMap3        = true;             // Use Heat Map 3
bool                    trigger_UseHeatMap4        = true;             // Use Heat Map 4
bool                    trigger_UseHeatMap5        = true;             // Use Heat Map 5
//MEDIAS MOVEIS
bool                    trigger_Moving_Average1    = true;             // Use Média Movel 1
bool                    trigger_Moving_Average2    = true;             // Use a Média Móvel 2
bool                    trigger_Moving_Average3    = true;             // Use a Média Móvel 3

bool                    trigger_Moving_Average4    = true;             // Use Média Movel 4
bool                    trigger_Moving_Average5    = true;            // Use a Média Móvel 5
bool                    trigger_Moving_Average6    = true;             // Use Média Movel 30 1.5

bool                    trigger_Moving_Average7    = true;             // Use a Média Móvel 50 15.30
bool                    trigger_Moving_Average8    = true;             // Use a Média Móvel 12 H1.H4//MM21
bool                    trigger_Moving_Average9    = true;             // Use Média Movel 30 1.5

bool                    trigger_Moving_Average10   = true;             // Use a Média Móvel 100 15.30
bool                    trigger_Moving_Average11   = true;             // Use a Média Móvel 12 H1.H4//MM30
bool                    trigger_Moving_Average12   = true;             // Use Média Movel 30 1.5

bool                    trigger_Moving_Average13   = false;             // Use a Média Móvel 100 15.30
bool                    trigger_Moving_Average14   = false;             // Use a Média Móvel 21 H1.H4
bool                    trigger_Moving_Average15   = false;             // Use Média Movel 50 1.5

bool                    trigger_Candle_Direction   = false;             //Use a direção da vela
bool                    UseCCI1                    = false;             // Use CCI
bool                    UseCCI2                    = false;             // Use CCI 2
bool                    UseCCI3                    = false;             // Use CCI 3
bool                    UseRSI1                    = false;             // Use RSI 
bool                    UseRSI2                    = false;             // Use RSI 2 
bool                    UseRSI3                    = false;             // Use RSI 3 
bool                    trigger_MACD1              = false;              // MACD
bool                    trigger_MACD2              = false;              // MACD
bool                    trigger_MACD3              = false;              // MACD

/*//SUPORTE RESISTENCIA
bool                    SupResTrigger              = false;              // SUPORTE/RESISTENCIA
//SUPORTE RESISTENCIA*/

//int                     trade_Period_CCI           = 14;                 // CCI Periodo
//double                  trigger_CCI_CloseBuy1_2    = 100;               // Nível de Compra CCI
//double                  trigger_CCI_CloseSell1_2   = -100;              // Nível de Venda CCI
//int                     trade_Period_RSI           = 12;                // RSI Periodo
//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
//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
//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
//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
//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

//MEDIA MOVEL TF ESPECIFICO
//SESSOES
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
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
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_basket = " MANAGEMENT"; // ============================
//sinput double                    lot                        = 0.01;              // Lote
//sinput int                       MaxTrades                  = 1;                 // Max. trades por par
int                       MaxTotalTrades             = 0;                 // Max. total de trades geral
//sinput double                    MaxSpread                  = 6.0;               // Max. Spread permitido
 int                       Basket_Target              = 0;                 // Take Profit em $ TOTAL
 int                       Basket_StopLoss            = 0;                 // Stop Loss em $ TOTAL
//sinput int                       Piptp                      = 20;                // Takeprofit em pips 
//sinput int                       Pipsl                      = 0;                 // Stoploss em pips
 bool                      TrailLastLock              = false;             // Rastreie o último bloqueio definido
 double                    TrailDistance              = 0.0;               // Distância da trilha 0 significa último bloqueio
 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
 int                       StopLoss                   = 0;                 // Pare depois de tantas cestas perdedoras
 bool                      OnlyAddProfit              = false;             // Apenas adiciona negociações no lucro
//sinput bool                      CloseAllSession            = false;             // Fechar todas as negociações após a sessão(s)
//SESSOES
 ENUM_TIMEFRAMES           TimeFrame                  = 30;                //TEMPO GRÁFICO
 string                    usertemplate               = "Neural System";   //TEMPLATE
 int                       x_axis                     =-1;                  // Esquerda X Direita
 int                       y_axis                     = 50;                 // Cima X Baixo

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 Signalperc1;
   double Signalperc2;
   double Signalperc3;
   double Signalperc4;   
   double SigRatio;
   double SigRelStr;
   double SigBSRatio;    
   double SigCRS;
   double SigGap;
   double SigGapPrev;
   double SigRatioPrev;
   //MEDIAS MOVEIS UP/DOW  
   double SignalM01up;
   double SignalM01dn;
   double SignalM02up;
   double SignalM02dn;
   double SignalM03up;
   double SignalM03dn;
   double SignalM04up;
   double SignalM04dn;
   double SignalM05up;
   double SignalM05dn;
   double SignalM06up;
   double SignalM06dn;
   double SignalM07up;
   double SignalM07dn;
   double SignalM08up;
   double SignalM08dn;
   double SignalM09up;
   double SignalM09dn;
   double SignalM10up;
   double SignalM10dn;
   double SignalM11up;
   double SignalM11dn;
   double SignalM12up;
   double SignalM12dn;
   double SignalM13up;
   double SignalM13dn;
   double SignalM14up;
   double SignalM14dn;
   double SignalM15up;
   double SignalM15dn;
   double SignalM16up;
   double SignalM16dn;
   double SignalM17up;
   double SignalM17dn;
   double SignalM18up;
   double SignalM18dn;
   double SignalM19up;
   double SignalM19dn;
   double SignalM20up;
   double SignalM20dn;
   double SignalM21up;
   double SignalM21dn;
   double SignalM22up;
   double SignalM22dn;
   double SignalM23up;
   double SignalM23dn;
   double SignalM24up;
   double SignalM24dn;
   double SignalM25up;
   double SignalM25dn;
   double SignalM26up;
   double SignalM26dn;
   double SignalM27up;
   double SignalM27dn;
   double SignalM28up;
   double SignalM28dn;
   double SignalM29up;
   double SignalM29dn;
   double SignalM30up;
   double SignalM30dn;
//--MM
   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;
//--MM         
   double prevSignalusd;
   double Signalusd;
//CANDLE DIRECTION
   double SignalCDm1;
   double SignalCDm5;
   double SignalCDm15;
   double SignalCDm30;
   double SignalCDh1;
   double SignalCDh4;
   //double SignalCDd1;
   //double SignalCDw1;
   //double SignalCDmn;
   double Signaldirup;
   double Signaldirdn;
   //CCI
   double Signalcci;
   double Signalcciup1;
   double Signalccidn1;
   double Signalcciup2;
   double Signalccidn2;
   double Signalcciup3;
   double Signalccidn3;
   //RSI   
   double Signalrsi;
   double Signalrsiup1;
   double Signalrsidn1;
   double Signalrsiup2;
   double Signalrsidn2;
   double Signalrsiup3;
   double Signalrsidn3;
   //MACD
   double SignalMACDup01;
   double SignalMACDdn01;
   double SignalMACDup02;
   double SignalMACDdn02;
   double SignalMACDup03;
   double SignalMACDdn03;
   /*//SUPORTE RESISTENCIA  
   double SMA1_Hi;
   double SMA1_Lo;
   double buysig;
   double sellsig;
   //SUPORTE RESISTENCIA*/
}; 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 =clrBlack;
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_H4;
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,1250,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+310,y_axis+450,695,120,C'61,61,61',clrWhite,1);
SetPanel("Spread"+IntegerToString(i),0,x_axis+50,(i*16)+y_axis-1,40,17,clrBlack,clrDimGray,1);
SetPanel("Pips"+IntegerToString(i),0,x_axis+80,(i*16)+y_axis-1,50,17,clrBlack,clrDimGray,1);
SetPanel("Adr"+IntegerToString(i),0,x_axis+115,(i*16)+y_axis-1,70,17,clrBlack,clrDimGray,1);
SetPanel("BidRatio"+IntegerToString(i),0,x_axis+140,(i*16)+y_axis-1,60,17,clrBlack,clrDimGray,1);
SetPanel("RelStr"+IntegerToString(i),0,x_axis+195,(i*16)+y_axis-1,30,17,clrBlack,clrDimGray,1);
SetPanel("BSRatio"+IntegerToString(i),0,x_axis+220,(i*16)+y_axis-1,30,17,clrBlack,clrDimGray,1);
SetPanel("PrevGAP"+IntegerToString(i),0,x_axis+245,(i*16)+y_axis-1,30,17,clrBlack,clrDimGray,1);
SetPanel("GAP123"+IntegerToString(i),0,x_axis+270,(i*16)+y_axis-1,45,17,clrBlack,clrDimGray,1);         
SetPanel("HM1"+IntegerToString(i),0,x_axis+310,(i*16)+y_axis-1,40,17,BackGrnCol,clrDimGray,1);
SetPanel("HM2"+IntegerToString(i),0,x_axis+340,(i*16)+y_axis-1,40,17,BackGrnCol,clrDimGray,1);
SetPanel("HM3"+IntegerToString(i),0,x_axis+370,(i*16)+y_axis-1,40,17,BackGrnCol,clrDimGray,1);
SetPanel("HM4"+IntegerToString(i),0,x_axis+400,(i*16)+y_axis-1,40,17,BackGrnCol,clrDimGray,1);
SetPanel("HM5"+IntegerToString(i),0,x_axis+430,(i*16)+y_axis-1,40,17,BackGrnCol,clrDimGray,1);
//MEDIA MOVEL MTF
SetPanel("B01"+IntegerToString(i),0,x_axis+460,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM12
SetPanel("B02"+IntegerToString(i),0,x_axis+480,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//
SetPanel("B03"+IntegerToString(i),0,x_axis+500,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//
SetPanel("B04"+IntegerToString(i),0,x_axis+520,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM21
SetPanel("B05"+IntegerToString(i),0,x_axis+540,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//
SetPanel("B06"+IntegerToString(i),0,x_axis+560,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//
SetPanel("B07"+IntegerToString(i),0,x_axis+580,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM30             
SetPanel("B08"+IntegerToString(i),0,x_axis+600,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//                        
SetPanel("A01"+IntegerToString(i),0,x_axis+620,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//
SetPanel("A02"+IntegerToString(i),0,x_axis+640,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM50             
SetPanel("A03"+IntegerToString(i),0,x_axis+660,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//        
SetPanel("A04"+IntegerToString(i),0,x_axis+680,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//
SetPanel("A05"+IntegerToString(i),0,x_axis+700,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MM100
SetPanel("A06"+IntegerToString(i),0,x_axis+720,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//
SetPanel("A07"+IntegerToString(i),0,x_axis+740,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//
//CANDLE DIRECTION
SetPanel("A08"+IntegerToString(i),0,x_axis+760,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TF.M1-5CANDLE DIRECTION
SetPanel("A10"+IntegerToString(i),0,x_axis+780,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TF.M15-30/CANDLE DIRECTION
SetPanel("A11"+IntegerToString(i),0,x_axis+800,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//TF.H1-H4 CANDLE DIRECTION     
//CCI-RSI-MACD
SetPanel("A12"+IntegerToString(i),0,x_axis+820,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//CCI
SetPanel("A13"+IntegerToString(i),0,x_axis+840,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//CCI
SetPanel("A14"+IntegerToString(i),0,x_axis+860,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//CCI
SetPanel("A15"+IntegerToString(i),0,x_axis+880,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//RSI
SetPanel("A16"+IntegerToString(i),0,x_axis+900,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//RSI   
SetPanel("A17"+IntegerToString(i),0,x_axis+920,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//RSI
SetPanel("A18"+IntegerToString(i),0,x_axis+940,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MACD
SetPanel("A19"+IntegerToString(i),0,x_axis+960,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MACD
SetPanel("A20"+IntegerToString(i),0,x_axis+980,(i*16)+y_axis-1,25,17,clrBlack,clrDimGray,1);//MACD

//SetPanel("TP",0,x_axis+1160,y_axis+450,75,20,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+140,(i*16)+y_axis-1,170,17,clrBlack,C'61,61,61',1);//COLUNA LOTES ORDEM LINHAS / LINHA VERDE
SetPanel("B2222"+IntegerToString(i),0,x_axis+460,(i*16)+y_axis-1,545,17,clrBlack,C'61,61,61',1);//COLUNA LOTES ORDEM LINHAS / LINHA VERDE          

//SetText("Pr1"+IntegerToString(i),StringSubstr(TradePairs[i],0,6),x_axis+945,(i*16)+y_axis-1,clrAqua,8);//COLUNA PARES SEGUNDA COLUNA         
SetText("Spr1"+IntegerToString(i),0,x_axis+50,(i*16)+y_axis-1,Orange,8);//COLUNA PARES 1
SetText("Pp1"+IntegerToString(i),0,x_axis+80,(i*16)+y_axis-1,PipsColor,8);//COLUNA PARES 1
SetText("S1"+IntegerToString(i),0,x_axis+120,(i*16)+y_axis-1,Yellow,8);//COLUNA PARES 1
SetText("bLots"+IntegerToString(i),DoubleToStr(blots[i],2),x_axis+1005,(i*16)+y_axis-1,C'61,61,61',8);
SetText("sLots"+IntegerToString(i),DoubleToStr(slots[i],2),x_axis+1050,(i*16)+y_axis-1,C'61,61,61',8);
SetText("bPos"+IntegerToString(i),DoubleToStr(bpos[i],0),x_axis+1090,(i*16)+y_axis-1,C'61,61,61',8);
SetText("sPos"+IntegerToString(i),DoubleToStr(spos[i],0),x_axis+1115,(i*16)+y_axis-1,C'61,61,61',8);
SetText("TProf"+IntegerToString(i),DoubleToStr(MathAbs(bprofit[i]),2),x_axis+1140,(i*16)+y_axis-1,C'61,61,61',8);
SetText("SProf"+IntegerToString(i),DoubleToStr(MathAbs(sprofit[i]),2),x_axis+1180,(i*16)+y_axis-1,C'61,61,61',8);
SetText("TtlProf"+IntegerToString(i),DoubleToStr(MathAbs(tprofit[i]),2),x_axis+1220,(i*16)+y_axis-1,C'61,61,61',8);
SetText("TotProf",DoubleToStr(MathAbs(totalprofit),2),x_axis+1200,y_axis+455,ProfitColor1,12);//CAIXA GAIN/LOOS TOTAL         
SetText("PerChange",trigger_TF_HM1+"       "+trigger_TF_HM2+"      "+trigger_TF_HM3+"    "+trigger_TF_HM4+"   "+trigger_TF_HM5,x_axis+319,y_axis-30,White,7);
SetText("MovingAverege1",trade_Period_Moving_Average1+"                 "+trade_Period_Moving_Average4+"                "+trade_Period_Moving_Average7,x_axis+485,y_axis-40,White,7);
SetText("PeriodMovingAverege2",trade_Period_Moving_Average10+"               "+trade_Period_Moving_Average13,x_axis+665,y_axis-40,White,7);
SetText("T.F.PeriodMovingAverege1",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+465,y_axis-30,White,7);
SetText("T.F.PeriodMovingAverege2",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+525,y_axis-30,White,7);
SetText("T.F.PeriodMovingAverege3",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+585,y_axis-30,White,7);
SetText("T.F.PeriodMovingAverege4",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+645,y_axis-30,White,7);
SetText("T.F.PeriodMovingAverege5",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+705,y_axis-30,White,7);
SetText("PeriodCCI1",trade_Period_CCI1+"   "+trade_Period_CCI2+"   "+trade_Period_CCI3,x_axis+825,y_axis-40,White,7);
SetText("T.F.PeriodCCI",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+825,y_axis-30,White,7);
SetText("PeriodRSI1",trade_Period_RSI1+"   "+trade_Period_RSI2+"   "+trade_Period_RSI3,x_axis+885,y_axis-40,White,7);
SetText("T.F.PeriodRSI",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+885,y_axis-30,White,7);
SetText("PeriodMACD1",FastPeriod+"   "+FastPeriod1+"   "+FastPeriod2,x_axis+945,y_axis-40,White,7);
SetText("T.F.PeriodMACD",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+945,y_axis-30,White,7);
/*//SUPORTE RESISTENCIA
SetText("PeriodSUP.RES",SigPer,x_axis+1000,y_axis-40,White,7);
//SUPORTE RESISTENCIA*/
//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),50 ,19,x_axis ,(i*16)+y_axis-1,Black,clrWhite); //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","B",20 ,17,x_axis+1250,(i*16)+y_axis-1,Black,clrLime);           
Create_Button(i+"SELL","S",20 ,17,x_axis+1270 ,(i*16)+y_axis-1,Black,clrRed);
Create_Button(i+"CLOSE","C",20 ,17,x_axis+1290,(i*16)+y_axis-1,Black,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,Black,clrWhite);//
Create_Button(button_AUD_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+10,Black,clrLime);//
Create_Button(button_AUD_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+10,Black,clrRed);//
Create_Button(button_AUD_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+10,Black,clrYellow);//
//CAD
i += 50;
Create_Button(button_CAD_basket,"CAD",40 ,15,basket_x+0 ,basket_y+25,Black,clrWhite);//
Create_Button(button_CAD_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+25,Black,clrLime);//
Create_Button(button_CAD_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+25,Black,clrRed);//
Create_Button(button_CAD_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+25,Black,clrYellow);//
//CHF
i += 50;
Create_Button(button_CHF_basket,"CHF",40 ,15,basket_x+0 ,basket_y+40,Black,clrWhite);//
Create_Button(button_CHF_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+40,Black,clrLime);//
Create_Button(button_CHF_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+40,Black,clrRed);//
Create_Button(button_CHF_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+40,Black,clrYellow);//
//EUR
i += 50;
Create_Button(button_EUR_basket,"EUR",40 ,15,basket_x+0 ,basket_y+55,Black,clrWhite);//
Create_Button(button_EUR_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+55,Black,clrLime);//
Create_Button(button_EUR_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+55,Black,clrRed);//
Create_Button(button_EUR_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+55,Black,clrYellow);//
//GBP
i += 50;
Create_Button(button_GBP_basket,"GBP",40 ,15,basket_x+0 ,basket_y+70,Black,clrWhite);//
Create_Button(button_GBP_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+70,Black,clrLime);//
Create_Button(button_GBP_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+70,Black,clrRed);//
Create_Button(button_GBP_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+70,Black,clrYellow);//
//JPY
i += 50;
Create_Button(button_JPY_basket,"JPY",40 ,15,basket_x+0 ,basket_y+85,Black,clrWhite);//
Create_Button(button_JPY_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+85,Black,clrLime);//
Create_Button(button_JPY_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+85,Black,clrRed);//
Create_Button(button_JPY_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+85,Black,clrYellow);//
//NZD
i += 50;
Create_Button(button_NZD_basket,"NZD",40 ,15,basket_x+0 ,basket_y+100,Black,clrWhite);//
Create_Button(button_NZD_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+100,Black,clrLime);//
Create_Button(button_NZD_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+100,Black,clrRed);//
Create_Button(button_NZD_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+100,Black,clrYellow);//
//USD
i += 50;
Create_Button(button_USD_basket,"USD",40 ,15,basket_x+0 ,basket_y+115,Black,clrWhite);//
Create_Button(button_USD_basket_buy,"BUY",40 ,15,basket_x+40 ,basket_y+115,Black,clrLime);//
Create_Button(button_USD_basket_sell,"SELL",40 ,15,basket_x+80 ,basket_y+115,Black,clrRed);//
Create_Button(button_USD_basket_close,"CLOSE",40 ,15,basket_x+120 ,basket_y+115,Black,clrYellow);//  

Create_Button("button_trigger_use_SPR","",30 ,18,x_axis+50 ,y_axis-20,Black,White);//SPR FAKE
Create_Button("button_trigger_use_Pips","Pip",35 ,18,x_axis+80 ,y_axis-20,Black,White);//
Create_Button("button_trigger_use_ADR","",25 ,18,x_axis+115 ,y_axis-20,Black,White);//ADR FAKE          
Create_Button("button_trigger_use_bidratio","Bidratio",55 ,18,x_axis+140 ,y_axis-20,Black,White);
Create_Button("button_trigger_use_relstrength","RStr",25 ,18,x_axis+195 ,y_axis-20,Black,White);
Create_Button("button_trigger_use_buysellratio","BSR",25 ,18,x_axis+220 ,y_axis-20,Black,White);
Create_Button("button_trigger_use_SigGapPrev","",25 ,18,x_axis+245 ,y_axis-20,Black,White);//Prev.Gap FAKE
Create_Button("button_trigger_use_gap","Gap",40 ,18,x_axis+270 ,y_axis-20,Black,White);   
Create_Button("button_trigger_UseHeatMap1","HM1",30 ,18,x_axis+310 ,y_axis-20,Black,White);
Create_Button("button_trigger_UseHeatMap2","HM2",30 ,18,x_axis+340 ,y_axis-20,Black,White);
Create_Button("button_trigger_UseHeatMap3","HM3",30 ,18,x_axis+370 ,y_axis-20,Black,White);
Create_Button("button_trigger_UseHeatMap4","HM4",30 ,18,x_axis+400 ,y_axis-20,Black,White);
Create_Button("button_trigger_UseHeatMap5","HM5",30 ,18,x_axis+430 ,y_axis-20,Black,White);
   
//Create_Button("button_UseÑ","Ñ",20 ,18,x_axis+455 ,y_axis-40,Black,White);
//Create_Button("button_UseÃ","Ñ",20 ,18,x_axis+475 ,y_axis-40,Black,White);
//Create_Button("button_UseÕ","Ñ",20 ,18,x_axis+495 ,y_axis-40,Black,White);

Create_Button("button_FAKEMM12","MM12",60 ,10,x_axis+460 ,y_axis-50,Black,White); //BOTAO FAKE
//MM12   
Create_Button("button_trigger_Moving_Average1","",20 ,18,x_axis+460 ,y_axis-20,Black,White);//MM12 30
Create_Button("button_trigger_Moving_Average2","",20 ,18,x_axis+480 ,y_axis-20,Black,White);//MM12 H1
Create_Button("button_trigger_Moving_Average3","",20 ,18,x_axis+500 ,y_axis-20,Black,White);//MM12 H4 

Create_Button("button_FAKEMM21","MM21",60 ,10,x_axis+520 ,y_axis-50,Black,White); //BOTAO FAKE
//MM21 
Create_Button("button_trigger_Moving_Average4","",20 ,18,x_axis+520 ,y_axis-20,Black,White);//MM21 30
Create_Button("button_trigger_Moving_Average5","",20 ,18,x_axis+540 ,y_axis-20,Black,White);//MM21 H1
Create_Button("button_trigger_Moving_Average6","",20 ,18,x_axis+560 ,y_axis-20,Black,White);//MM21 H4

Create_Button("button_FAKEMM30","MM30",60 ,10,x_axis+580 ,y_axis-50,Black,White); //BOTAO FAKE
//MM30
Create_Button("button_trigger_Moving_Average7","",20 ,18,x_axis+580 ,y_axis-20,Black,White);//MM30 30
Create_Button("button_trigger_Moving_Average8","",20 ,18,x_axis+600 ,y_axis-20,Black,White);//MM30 H1
Create_Button("button_trigger_Moving_Average9","",20 ,18,x_axis+620 ,y_axis-20,Black,White);//MM30 H4

Create_Button("button_FAKEMM50","MM50",60 ,10,x_axis+640 ,y_axis-50,Black,White); //BOTAO FAKE
//MM50
Create_Button("button_trigger_Moving_Average10","",20 ,18,x_axis+640 ,y_axis-20,Black,White);//MM50 30
Create_Button("button_trigger_Moving_Average11","",20 ,18,x_axis+660 ,y_axis-20,Black,White);//MM50 H1
Create_Button("button_trigger_Moving_Average12","",20 ,18,x_axis+680 ,y_axis-20,Black,White);//MM50 H4

Create_Button("button_FAKEMM100","MM100",60 ,10,x_axis+700 ,y_axis-50,Black,White); //BOTAO FAKE
//MM100
Create_Button("button_trigger_Moving_Average13","",20 ,18,x_axis+700 ,y_axis-20,Black,White);//MM100 30
Create_Button("button_trigger_Moving_Average14","",20 ,18,x_axis+720 ,y_axis-20,Black,White);//MM100 H1
Create_Button("button_trigger_Moving_Average15","",20 ,18,x_axis+740 ,y_axis-20,Black,White);//MM100 H4

//Create_Button("button_trigger_Candle_DirectionFAKE","Candle D",60 ,18,x_axis+760 ,y_axis-40,Black,White); //BOTAO FAKE
Create_Button("button_trigger_Candle_Direction","Candle D",60 ,18,x_axis+760 ,y_axis-20,Black,White);
//CCI-RSI-MACD
Create_Button("button_1","CCI",60 ,10,x_axis+820 ,y_axis-50,Black,White);//CCI FAKE
Create_Button("button_2","RSI",60 ,10,x_axis+880 ,y_axis-50,Black,White);//RSI FAKE
Create_Button("button_3","MACD",60 ,10,x_axis+940 ,y_axis-50,Black,White);//MACD FAKE
Create_Button("button_UseCCI1","",20 ,18,x_axis+820 ,y_axis-20,Black,White);//CCI M30 
Create_Button("button_UseCCI2","",20 ,18,x_axis+840 ,y_axis-20,Black,White);//CCI H1
Create_Button("button_UseCCI3","",20 ,18,x_axis+860 ,y_axis-20,Black,White);//CCI H4
Create_Button("button_UseRSI1","",20 ,18,x_axis+880 ,y_axis-20,Black,White);//RSI M30
Create_Button("button_UseRSI2","",20 ,18,x_axis+900 ,y_axis-20,Black,White);//RSI H1
Create_Button("button_UseRSI3","",20 ,18,x_axis+920 ,y_axis-20,Black,White);//RSI H4
Create_Button("button_trigger_MACD1","",20 ,18,x_axis+940 ,y_axis-20,Black,White);//MACD M30
Create_Button("button_trigger_MACD2","",20 ,18,x_axis+960 ,y_axis-20,Black,White);//MACD H1
Create_Button("button_trigger_MACD3","",20 ,18,x_axis+980 ,y_axis-20,Black,White);//MACD H4
//SESSOES
Create_Button("button_trigger_use_TRADING","",75 ,18,x_axis+1235 ,y_axis+450,Black,White);
Create_Button("button_UseSession1","LONDRES",75 ,18,x_axis+1235 ,y_axis+470,Black,White);//SESSAO LONDRES
Create_Button("button_UseSession2","TOKIO",75 ,18,x_axis+1235 ,y_axis+490,Black,White);//SESSAO TOKIO
Create_Button("button_UseSession3","N.YORK",75 ,18,x_axis+1235 ,y_axis+510,Black,White);//SESSAO NOVA YORK
Create_Button("button_autotrade","Manual",75 ,18,x_axis+1235 ,y_axis+530,Black,clrGreen);

Create_Button(button_close_basket_All,"CLOSE ALL",75 ,18,x_axis+1160 ,basket_y+30,Black,clrWhite);//
Create_Button(button_close_basket_Prof,"CLOSE PROFIT",75 ,18,x_axis+1160 ,basket_y+50,Black,clrLime);//
Create_Button(button_close_basket_Loss,"CLOSE LOSS",75 ,18,x_axis+1160 ,basket_y+70,Black,clrRed);//
Create_Button(button_reset_ea,"RESET EA",75 ,18,x_axis+1160 ,basket_y+90,Black,clrYellow);//

//=============================================================================================================     

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();
GetCommodity2();
GetCommodity3();
//ChngBoxCol(0,0);

if (newday != iTime("EURUSD"+postfix,PERIOD_H4,0)) 
{
GetAdrValues();
PlotAdrValues();
newday = iTime("EURUSD"+postfix,PERIOD_H4,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++)
{
SetColors(i);
ChngBoxCol((signals[i].Signalperc * 100), i);
ChngBoxCol1((signals[i].Signalperc1 * 100), i);          
ChngBoxCol2((signals[i].Signalperc2 * 100), i);
ChngBoxCol3((signals[i].Signalperc3 * 100), i);
ChngBoxCol4((signals[i].Signalperc4 * 100), i);      

//CAIXA HeatMap
SetText("Percent"+IntegerToString(i),DoubleToStr(signals[i].Signalperc,2),x_axis+315,(i*16)+y_axis+1,clrGray,7);
SetText("Percnt2"+IntegerToString(i),DoubleToStr(signals[i].Signalperc1,2),x_axis+345,(i*16)+y_axis+1,clrGray,7);
SetText("Percent3"+IntegerToString(i),DoubleToStr(signals[i].Signalperc2,2),x_axis+375,(i*16)+y_axis+1,clrGray,7);
SetText("Percent4"+IntegerToString(i),DoubleToStr(signals[i].Signalperc3,2),x_axis+405,(i*16)+y_axis+1,clrGray,7);
SetText("Percent5"+IntegerToString(i),DoubleToStr(signals[i].Signalperc4,2),x_axis+435,(i*16)+y_axis+1,clrGray,7); 

if(pairinfo[i].PipsSig==UP){SetObjText("Sigpips"+IntegerToString(i),CharToStr(217),x_axis+105,(i*16)+y_axis,clrLime,9);}
else if(pairinfo[i].PipsSig==DOWN){SetObjText("Sigpips"+IntegerToString(i),CharToStr(218),x_axis+105,(i*16)+y_axis,clrRed,9);}

//MEDIAS MOVEIS
      if(signals[i].SignalM01up==UP){SetObjText("MM12M15"+IntegerToString(i),CharToStr(200),x_axis+460,(i*16)+y_axis+1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM01up==DOWN){SetObjText("MM12M15"+IntegerToString(i),CharToStr(202),x_axis+460,(i*16)+y_axis+1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM02dn==UP){SetObjText("MM12M30"+IntegerToString(i),CharToStr(200),x_axis+470,(i*16)+y_axis+1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM02dn==DOWN){SetObjText("MM12M30"+IntegerToString(i),CharToStr(202),x_axis+470,(i*16)+y_axis+1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM03up==UP){SetObjText("MM12H1"+IntegerToString(i),CharToStr(200),x_axis+480,(i*16)+y_axis+1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM03up==DOWN){SetObjText("MM12H1"+IntegerToString(i),CharToStr(202),x_axis+480,(i*16)+y_axis+1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM04dn==UP){SetObjText("MM12H4"+IntegerToString(i),CharToStr(200),x_axis+490,(i*16)+y_axis+1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM04dn==DOWN){SetObjText("MM12H4"+IntegerToString(i),CharToStr(202),x_axis+490,(i*16)+y_axis+1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM05up==UP){SetObjText("MM12D1"+IntegerToString(i),CharToStr(236),x_axis+503,(i*16)+y_axis-1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM05up==DOWN){SetObjText("MM12D1"+IntegerToString(i),CharToStr(238),x_axis+503,(i*16)+y_axis-1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM06dn==UP){SetObjText("MM12D1"+IntegerToString(i),CharToStr(236),x_axis+503,(i*16)+y_axis-1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM06dn==DOWN){SetObjText("MM12D1"+IntegerToString(i),CharToStr(238),x_axis+503,(i*16)+y_axis-1,BearColor,12);}//06 MM12
      

      if(signals[i].SignalM07up==UP){SetObjText("MM21M15"+IntegerToString(i),CharToStr(200),x_axis+520,(i*16)+y_axis+1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM07up==DOWN){SetObjText("MM21M15"+IntegerToString(i),CharToStr(202),x_axis+520,(i*16)+y_axis+1,BearColor,12);}//07 MM21 
      if(signals[i].SignalM08dn==UP){SetObjText("MM21M30"+IntegerToString(i),CharToStr(200),x_axis+530,(i*16)+y_axis+1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM08dn==DOWN){SetObjText("MM21M30"+IntegerToString(i),CharToStr(202),x_axis+530,(i*16)+y_axis+1,BearColor,12);}//07 MM21 
      if(signals[i].SignalM09up==UP){SetObjText("MM21H1"+IntegerToString(i),CharToStr(200),x_axis+540,(i*16)+y_axis+1,BullColor,12);}//07 MM21  
      if(signals[i].SignalM09up==DOWN){SetObjText("MM21H1"+IntegerToString(i),CharToStr(202),x_axis+540,(i*16)+y_axis+1,BearColor,12);}//07 MM21 
      if(signals[i].SignalM10dn==UP){SetObjText("MM21H4"+IntegerToString(i),CharToStr(200),x_axis+550,(i*16)+y_axis+1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM10dn==DOWN){SetObjText("MM21H4"+IntegerToString(i),CharToStr(202),x_axis+550,(i*16)+y_axis+1,BearColor,12);}//07 MM21 
      if(signals[i].SignalM11up==UP){SetObjText("MM21D1"+IntegerToString(i),CharToStr(236),x_axis+563,(i*16)+y_axis-1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM11up==DOWN){SetObjText("MM21D1"+IntegerToString(i),CharToStr(238),x_axis+563,(i*16)+y_axis-1,BearColor,12);}//07 MM21  
      if(signals[i].SignalM12dn==UP){SetObjText("MM21D1"+IntegerToString(i),CharToStr(236),x_axis+563,(i*16)+y_axis-1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM12dn==DOWN){SetObjText("MM21D1"+IntegerToString(i),CharToStr(238),x_axis+563,(i*16)+y_axis-1,BearColor,12);}//07 MM21  
 
      if(signals[i].SignalM13up==UP){SetObjText("MM30M15"+IntegerToString(i),CharToStr(200),x_axis+580,(i*16)+y_axis+1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM13up==DOWN){SetObjText("MM30M15"+IntegerToString(i),CharToStr(202),x_axis+580,(i*16)+y_axis+1,BearColor,12);}//03 MM30 
      if(signals[i].SignalM14dn==UP){SetObjText("MM30M30"+IntegerToString(i),CharToStr(200),x_axis+590,(i*16)+y_axis+1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM14dn==DOWN){SetObjText("MM30M30"+IntegerToString(i),CharToStr(202),x_axis+590,(i*16)+y_axis+1,BearColor,12);}//03 MM30 
      if(signals[i].SignalM15up==UP){SetObjText("MM30H1"+IntegerToString(i),CharToStr(200),x_axis+600,(i*16)+y_axis+1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM15up==DOWN){SetObjText("MM30H1"+IntegerToString(i),CharToStr(202),x_axis+600,(i*16)+y_axis+1,BearColor,12);}//03 MM30 
      if(signals[i].SignalM16dn==UP){SetObjText("MM30H4"+IntegerToString(i),CharToStr(200),x_axis+610,(i*16)+y_axis+1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM16dn==DOWN){SetObjText("MM30H4"+IntegerToString(i),CharToStr(202),x_axis+610,(i*16)+y_axis+1,BearColor,12);}//03 MM30 
      if(signals[i].SignalM17up==UP){SetObjText("MM30D1"+IntegerToString(i),CharToStr(236),x_axis+623,(i*16)+y_axis-1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM17up==DOWN){SetObjText("MM30D1"+IntegerToString(i),CharToStr(238),x_axis+623,(i*16)+y_axis-1,BearColor,12);}//03 MM30  
      if(signals[i].SignalM18dn==UP){SetObjText("MM30D1"+IntegerToString(i),CharToStr(236),x_axis+623,(i*16)+y_axis-1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM18dn==DOWN){SetObjText("MM30D1"+IntegerToString(i),CharToStr(238),x_axis+623,(i*16)+y_axis-1,BearColor,12);}//03 MM30  

      if(signals[i].SignalM19up==UP){SetObjText("MM50M15"+IntegerToString(i),CharToStr(200),x_axis+640,(i*16)+y_axis+1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM19up==DOWN){SetObjText("MM50M15"+IntegerToString(i),CharToStr(202),x_axis+640,(i*16)+y_axis+1,BearColor,12);}//04 MM50 
      if(signals[i].SignalM20dn==UP){SetObjText("MM50M30"+IntegerToString(i),CharToStr(200),x_axis+650,(i*16)+y_axis+1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM20dn==DOWN){SetObjText("MM50M30"+IntegerToString(i),CharToStr(202),x_axis+650,(i*16)+y_axis+1,BearColor,12);}//04 MM50 
      if(signals[i].SignalM21up==UP){SetObjText("MM50H1"+IntegerToString(i),CharToStr(200),x_axis+660,(i*16)+y_axis+1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM21up==DOWN){SetObjText("MM50H1"+IntegerToString(i),CharToStr(202),x_axis+660,(i*16)+y_axis+1,BearColor,12);}//04 MM50  
      if(signals[i].SignalM22dn==UP){SetObjText("MM50H4"+IntegerToString(i),CharToStr(200),x_axis+670,(i*16)+y_axis+1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM22dn==DOWN){SetObjText("MM50H4"+IntegerToString(i),CharToStr(202),x_axis+670,(i*16)+y_axis+1,BearColor,12);}//04 MM50  
      if(signals[i].SignalM23up==UP){SetObjText("MM50D1"+IntegerToString(i),CharToStr(236),x_axis+683,(i*16)+y_axis-1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM23up==DOWN){SetObjText("MM50D1"+IntegerToString(i),CharToStr(238),x_axis+683,(i*16)+y_axis-1,BearColor,12);}//04 MM50  
      if(signals[i].SignalM24dn==UP){SetObjText("MM50D1"+IntegerToString(i),CharToStr(236),x_axis+683,(i*16)+y_axis-1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM24dn==DOWN){SetObjText("MM50D1"+IntegerToString(i),CharToStr(238),x_axis+683,(i*16)+y_axis-1,BearColor,12);}//04 MM50
      
      if(signals[i].SignalM25up==UP){SetObjText("MM100M15"+IntegerToString(i),CharToStr(200),x_axis+700,(i*16)+y_axis+1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM25up==DOWN){SetObjText("MM100M15"+IntegerToString(i),CharToStr(202),x_axis+700,(i*16)+y_axis+1,BearColor,12);}//05 MM100 
      if(signals[i].SignalM26dn==UP){SetObjText("MM100M30"+IntegerToString(i),CharToStr(200),x_axis+710,(i*16)+y_axis+1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM26dn==DOWN){SetObjText("MM100M30"+IntegerToString(i),CharToStr(202),x_axis+710,(i*16)+y_axis+1,BearColor,12);}//05 MM100 
      if(signals[i].SignalM27up==UP){SetObjText("MM100H1"+IntegerToString(i),CharToStr(200),x_axis+720,(i*16)+y_axis+1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM27up==DOWN){SetObjText("MM100H1"+IntegerToString(i),CharToStr(202),x_axis+720,(i*16)+y_axis+1,BearColor,12);}//05 MM100  
      if(signals[i].SignalM28dn==UP){SetObjText("MM100H4"+IntegerToString(i),CharToStr(200),x_axis+730,(i*16)+y_axis+1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM28dn==DOWN){SetObjText("MM100H4"+IntegerToString(i),CharToStr(202),x_axis+730,(i*16)+y_axis+1,BearColor,12);}//05 MM100   
      if(signals[i].SignalM29up==UP){SetObjText("MM100D1"+IntegerToString(i),CharToStr(236),x_axis+743,(i*16)+y_axis-1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM29up==DOWN){SetObjText("MM100D1"+IntegerToString(i),CharToStr(238),x_axis+743,(i*16)+y_axis-1,BearColor,12);}//05 MM100  
      if(signals[i].SignalM30dn==UP){SetObjText("MM100D1"+IntegerToString(i),CharToStr(236),x_axis+743,(i*16)+y_axis-1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM30dn==DOWN){SetObjText("MM100D1"+IntegerToString(i),CharToStr(238),x_axis+743,(i*16)+y_axis-1,BearColor,12);}//05 MM100
      
//CANDLE DIRECTION
      if(signals[i].SignalCDm1==UP){SetObjText("CDM1"+IntegerToString(i),CharToStr(127),x_axis+760,(i*16)+y_axis-4,BullColor,15);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm1==DOWN){SetObjText("CDM1"+IntegerToString(i),CharToStr(127),x_axis+760,(i*16)+y_axis-4,BearColor,15);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm5==UP){SetObjText("CDM5"+IntegerToString(i),CharToStr(127),x_axis+770,(i*16)+y_axis-4,BullColor,15);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm5==DOWN){SetObjText("CDM5"+IntegerToString(i),CharToStr(127),x_axis+770,(i*16)+y_axis-4,BearColor,15);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm15==UP){SetObjText("CDM15"+IntegerToString(i),CharToStr(127),x_axis+780,(i*16)+y_axis-4,BullColor,15);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm15==DOWN){SetObjText("CDM15"+IntegerToString(i),CharToStr(127),x_axis+780,(i*16)+y_axis-4,BearColor,15);}//08 CANDLE DIRECTION      
      if(signals[i].SignalCDm30==UP){SetObjText("CDM30"+IntegerToString(i),CharToStr(127),x_axis+790,(i*16)+y_axis-4,BullColor,15);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm30==DOWN){SetObjText("CDM30"+IntegerToString(i),CharToStr(127),x_axis+790,(i*16)+y_axis-4,BearColor,15);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDh1==UP){SetObjText("CDH1"+IntegerToString(i),CharToStr(127),x_axis+800,(i*16)+y_axis-4,BullColor,15);}//09 CANDLE DIRECTION
      if(signals[i].SignalCDh1==DOWN){SetObjText("CDH1"+IntegerToString(i),CharToStr(127),x_axis+800,(i*16)+y_axis-4,BearColor,15);}//09 CANDLE DIRECTION
      if(signals[i].SignalCDh4==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-4,BullColor,15);}//10 CANDLE DIRECTION
      if(signals[i].SignalCDh4==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-4,BearColor,15);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDd1==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-4,BullColor,15);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDd1==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-4,BearColor,15);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDw1==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-4,BullColor,15);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDw1==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-4,BearColor,15);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDmn==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-4,BullColor,15);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDmn==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-4,BearColor,15);}//10 CANDLE DIRECTION
      //CCI-RSI-MACD
      if(signals[i].Signalcciup1==UP){SetObjText("CCIup1"+IntegerToString(i),CharToStr(246),x_axis+820,(i*16)+y_axis,BullColor,9);}//02 CCI M30
      if(signals[i].Signalccidn1==DOWN){SetObjText("CCIdn1"+IntegerToString(i),CharToStr(248),x_axis+830,(i*16)+y_axis,BearColor,9);}//02 CCI M30
      if(signals[i].Signalcciup2==UP){SetObjText("CCIup2"+IntegerToString(i),CharToStr(246),x_axis+840,(i*16)+y_axis,BullColor,9);}//02 CCI H1
      if(signals[i].Signalccidn2==DOWN){SetObjText("CCIdn2"+IntegerToString(i),CharToStr(248),x_axis+850,(i*16)+y_axis,BearColor,9);}//02 CCI H1
      if(signals[i].Signalcciup3==UP){SetObjText("CCIup3"+IntegerToString(i),CharToStr(246),x_axis+860,(i*16)+y_axis,BullColor,9);}//02 CCI H4
      if(signals[i].Signalccidn3==DOWN){SetObjText("CCIdn3"+IntegerToString(i),CharToStr(248),x_axis+870,(i*16)+y_axis,BearColor,9);}//02 CCI H4

      if(signals[i].Signalrsiup1==UP){SetObjText("RSIup1"+IntegerToString(i),CharToStr(246),x_axis+880,(i*16)+y_axis,BullColor,9);}//01 RSI  M30
      if(signals[i].Signalrsidn1==DOWN){SetObjText("RSIdn1"+IntegerToString(i),CharToStr(248),x_axis+890,(i*16)+y_axis,BearColor,9);}//01 RSI  M30 
      if(signals[i].Signalrsiup2==UP){SetObjText("RSIup2"+IntegerToString(i),CharToStr(246),x_axis+900,(i*16)+y_axis,BullColor,9);}//01 RSI  H1
      if(signals[i].Signalrsidn2==DOWN){SetObjText("RSIdn2"+IntegerToString(i),CharToStr(248),x_axis+910,(i*16)+y_axis,BearColor,9);}//01 RSI  H1
      if(signals[i].Signalrsiup3==UP){SetObjText("RSIup3"+IntegerToString(i),CharToStr(246),x_axis+920,(i*16)+y_axis,BullColor,9);}//01 RSI  H4
      if(signals[i].Signalrsidn3==DOWN){SetObjText("RSIdn3"+IntegerToString(i),CharToStr(248),x_axis+930,(i*16)+y_axis,BearColor,9);}//01 RSI  H4

      if(signals[i].SignalMACDup01==UP){SetObjText("MACDup1"+IntegerToString(i),CharToStr(246),x_axis+940,(i*16)+y_axis,BullColor,9);}//MACD M30
      if(signals[i].SignalMACDdn01==DOWN){SetObjText("MACDdn1"+IntegerToString(i),CharToStr(248),x_axis+950,(i*16)+y_axis,BearColor,9);}//MACD M30
      if(signals[i].SignalMACDup02==UP){SetObjText("MACDup2"+IntegerToString(i),CharToStr(246),x_axis+960,(i*16)+y_axis,BullColor,9);}//MACD H1
      if(signals[i].SignalMACDdn02==DOWN){SetObjText("MACDdn2"+IntegerToString(i),CharToStr(248),x_axis+970,(i*16)+y_axis,BearColor,9);}//MACD H1  
      if(signals[i].SignalMACDup03==UP){SetObjText("MACDup3"+IntegerToString(i),CharToStr(246),x_axis+980,(i*16)+y_axis,BullColor,9);}//MACD H4
      if(signals[i].SignalMACDdn03==DOWN){SetObjText("MACDdn3"+IntegerToString(i),CharToStr(248),x_axis+990,(i*16)+y_axis,BearColor,9);}//MACD H4
      /*//SUPORTE RESISTENCIA
      if(signals[i].buysig==UP){SetObjText("SUP"+IntegerToString(i),CharToStr(254),x_axis+1000,(i*16)+y_axis,BullColor,9);}//SUPORTE
      if(signals[i].sellsig==DOWN){SetObjText("RES"+IntegerToString(i),CharToStr(254),x_axis+1010,(i*16)+y_axis,BearColor,9);}//RESISTENCIA
      //SUPORTE RESISTENCIA*/                           

SetText("BidRat"+IntegerToString(i),DoubleToStr(signals[i].ratio,1)+"%",x_axis+145,(i*16)+y_axis,Colorstr(signals[i].ratio),8); 
SetText("RelStrgth"+IntegerToString(i),DoubleToStr(signals[i].calc,0),x_axis+200,(i*16)+y_axis,Colorsync(signals[i].calc),8);
SetText("BSRat"+IntegerToString(i),DoubleToStr(signals[i].strength5,1),x_axis+225,(i*16)+y_axis,ColorBSRat(signals[i].strength5),8);
SetText("PrevGap"+IntegerToString(i),DoubleToStr(signals[i].strength8,1),x_axis+250,(i*16)+y_axis,clrGray,8);
SetText("gap"+signals[i].symbol, DoubleToStr(signals[i].strength_Gap,1),x_axis+275,(i*16)+y_axis,ColorGap(signals[i].strength_Gap),8);

if(signals[i].SigRatioPrev==UP){SetObjText("Sig"+IntegerToString(i),CharToStr(217),x_axis+185,(i*16)+y_axis,clrLime,10);}
else if(signals[i].SigRatioPrev==DOWN){SetObjText("Sig"+IntegerToString(i),CharToStr(218),x_axis+185,(i*16)+y_axis,clrRed,10);}

if(signals[i].SigGapPrev==UP){SetObjText("GapSig"+IntegerToString(i),CharToStr(217),x_axis+300,(i*16)+y_axis,clrLime,10);}
else if(signals[i].SigGapPrev==DOWN){SetObjText("GapSig"+IntegerToString(i),CharToStr(218),x_axis+300,(i*16)+y_axis,clrRed,10);}
else {SetObjText("GapSig"+IntegerToString(i),CharToStr(251),x_axis+300,(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].Signalperc >trade_MIN_HeatMap1 || trigger_UseHeatMap1==false)
&&(signals[i].Signalperc1 >trade_MIN_HeatMap2 || trigger_UseHeatMap2==false)
&&(signals[i].Signalperc2 >trade_MIN_HeatMap3 || trigger_UseHeatMap3==false)
&&(signals[i].Signalperc3 >trade_MIN_HeatMap4 || trigger_UseHeatMap4==false)
&&(signals[i].Signalperc4 >trade_MIN_HeatMap5 || trigger_UseHeatMap5==false)

&&(signals[i].SignalM01up>0||trigger_Moving_Average1==false )//12
&&(signals[i].SignalM03up>0||trigger_Moving_Average2==false )//12
&&(signals[i].SignalM05up>0||trigger_Moving_Average3==false )//12

&&(signals[i].SignalM07up>0||trigger_Moving_Average4==false )//21
&&(signals[i].SignalM09up>0||trigger_Moving_Average5==false )//21
&&(signals[i].SignalM11up>0||trigger_Moving_Average6==false )//21

&&(signals[i].SignalM13up>0||trigger_Moving_Average7==false )//30
&&(signals[i].SignalM15up>0||trigger_Moving_Average8==false )//30
&&(signals[i].SignalM17up>0||trigger_Moving_Average9==false )//30

&&(signals[i].SignalM19up>0||trigger_Moving_Average10==false )//50
&&(signals[i].SignalM21up>0||trigger_Moving_Average11==false )//50
&&(signals[i].SignalM23up>0||trigger_Moving_Average12==false )//50

&&(signals[i].SignalM25up>0||trigger_Moving_Average13==false )//100
&&(signals[i].SignalM27up>0||trigger_Moving_Average14==false )//100
&&(signals[i].SignalM29up>0||trigger_Moving_Average15==false )//100

&&(signals[i].Signaldirup>0||trigger_Candle_Direction==false)

&&(signals[i].Signalcciup1 == UP || UseCCI1==false)
&&(signals[i].Signalcciup2 == UP || UseCCI2==false)
&&(signals[i].Signalcciup3 == UP || UseCCI3==false)
&&(signals[i].Signalrsiup1 == UP || UseRSI1==false)
&&(signals[i].Signalrsiup2 == UP || UseRSI2==false)
&&(signals[i].Signalrsiup3 == UP || UseRSI3==false)
&&(signals[i].SignalMACDup01 == UP || trigger_MACD1==false)
&&(signals[i].SignalMACDup02 == UP || trigger_MACD2==false)
&&(signals[i].SignalMACDup03 == UP || trigger_MACD3==false))
/*//SUPORTE RESISTENCIA
&&(signals[i].buysig == UP || SupResTrigger==false)
//SUPORTE RESISTENCIA*/


{
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].Signalperc <-trade_MIN_HeatMap1 || trigger_UseHeatMap1==false)
&&(signals[i].Signalperc1 <-trade_MIN_HeatMap2 || trigger_UseHeatMap2==false)
&&(signals[i].Signalperc2 <-trade_MIN_HeatMap3 || trigger_UseHeatMap3==false)
&&(signals[i].Signalperc3 <-trade_MIN_HeatMap4 || trigger_UseHeatMap4==false)
&&(signals[i].Signalperc4 <-trade_MIN_HeatMap5 || trigger_UseHeatMap5==false)

&&(signals[i].SignalM02dn<0||trigger_Moving_Average1==false )//12
&&(signals[i].SignalM04dn<0||trigger_Moving_Average2==false )//12
&&(signals[i].SignalM06dn<0||trigger_Moving_Average3==false )//12

&&(signals[i].SignalM08dn<0||trigger_Moving_Average4==false )//21
&&(signals[i].SignalM10dn<0||trigger_Moving_Average5==false )//21
&&(signals[i].SignalM12dn<0||trigger_Moving_Average6==false )//21

&&(signals[i].SignalM14dn<0||trigger_Moving_Average7==false )//30
&&(signals[i].SignalM16dn<0||trigger_Moving_Average8==false )//30
&&(signals[i].SignalM18dn<0||trigger_Moving_Average9==false )//30

&&(signals[i].SignalM20dn<0||trigger_Moving_Average10==false )//50
&&(signals[i].SignalM22dn<0||trigger_Moving_Average11==false )//50
&&(signals[i].SignalM24dn<0||trigger_Moving_Average12==false )//50

&&(signals[i].SignalM26dn<0||trigger_Moving_Average13==false )//100
&&(signals[i].SignalM28dn<0||trigger_Moving_Average14==false )//100
&&(signals[i].SignalM30dn<0||trigger_Moving_Average15==false )//100

&&(signals[i].Signaldirdn>0||trigger_Candle_Direction==false)

&&(signals[i].Signalccidn1 == DOWN || UseCCI1==false)
&&(signals[i].Signalccidn2 == DOWN || UseCCI2==false)
&&(signals[i].Signalccidn3 == DOWN || UseCCI3==false)
&&(signals[i].Signalrsidn1 == DOWN || UseRSI1==false)
&&(signals[i].Signalrsidn2 == DOWN || UseRSI2==false)
&&(signals[i].Signalrsidn3 == DOWN || UseRSI3==false)
&&(signals[i].SignalMACDdn01 == DOWN || trigger_MACD1==false)
&&(signals[i].SignalMACDdn02 == DOWN || trigger_MACD1==false)
&&(signals[i].SignalMACDdn03 == DOWN || trigger_MACD2==false))
/*//SUPORTE RESISTENCIA
&&(signals[i].sellsig == DOWN || SupResTrigger==false)
//SUPORTE RESISTENCIA*/
{
labelcolor = clrTomato;           
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
ColorPanel("B2222"+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,Black);
   ObjectSetInteger(0,"button_autotrade",OBJPROP_COLOR,White);
   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,Black);
   ObjectSetInteger(0,"button_trigger_use_Pips",OBJPROP_COLOR,DarkGreen);
   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,Black);
   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);
   }
   
   if(sparam=="button_trigger_use_bidratio" && trigger_use_bidratio ==false)
   {
   trigger_use_bidratio =true;
   ObjectSetInteger(0,"button_trigger_use_bidratio",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_use_bidratio",OBJPROP_COLOR,DarkGreen);
   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,Black);
   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);
   }
   
   if(sparam=="button_trigger_use_relstrength" && trigger_use_relstrength ==false)
   {
   trigger_use_relstrength =true;
   ObjectSetInteger(0,"button_trigger_use_relstrength",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_use_relstrength",OBJPROP_COLOR,DarkGreen);
   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,Black);
   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);
   }
   
   if(sparam=="button_trigger_use_buysellratio" && trigger_use_buysellratio ==false)
   {
   trigger_use_buysellratio =true;
   ObjectSetInteger(0,"button_trigger_use_buysellratio",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_use_buysellratio",OBJPROP_COLOR,DarkGreen);
   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,Black);
   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);
   }
   
   if(sparam=="button_trigger_use_gap" && trigger_use_gap ==false)
   {
   trigger_use_gap =true;
   ObjectSetInteger(0,"button_trigger_use_gap",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_use_gap",OBJPROP_COLOR,DarkGreen);
   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,Black);
   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);
   }
   
   if(sparam=="button_trigger_UseHeatMap1" && trigger_UseHeatMap1 ==false)
   {
   trigger_UseHeatMap1 =true;
   ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_UseHeatMap1",OBJPROP_TEXT,"H.M1");
   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,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_UseHeatMap1",OBJPROP_TEXT,"H.M1");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap1",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_UseHeatMap2" && trigger_UseHeatMap2 ==false)
   {
   trigger_UseHeatMap2 =true;
   ObjectSetInteger(0,"button_trigger_UseHeatMap2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap2",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_UseHeatMap2",OBJPROP_TEXT,"H.M2");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap2",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_UseHeatMap2" && trigger_UseHeatMap2 ==true)
   {
   trigger_UseHeatMap2=false;
   ObjectSetInteger(0,"button_trigger_UseHeatMap2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap2",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_UseHeatMap2",OBJPROP_TEXT,"H.M2");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap2",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_UseHeatMap3" && trigger_UseHeatMap3 ==false)
   {
   trigger_UseHeatMap3 =true;
   ObjectSetInteger(0,"button_trigger_UseHeatMap3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap3",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_UseHeatMap3",OBJPROP_TEXT,"H.M3");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap3",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_UseHeatMap3" && trigger_UseHeatMap3 ==true)
   {
   trigger_UseHeatMap3=false;
   ObjectSetInteger(0,"button_trigger_UseHeatMap3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap3",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_UseHeatMap3",OBJPROP_TEXT,"H.M3");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap3",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_UseHeatMap4" && trigger_UseHeatMap4 ==false)
   {
   trigger_UseHeatMap4 =true;
   ObjectSetInteger(0,"button_trigger_UseHeatMap4",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap4",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_UseHeatMap4",OBJPROP_TEXT,"H.M4");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap4",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_UseHeatMap4" && trigger_UseHeatMap4 ==true)
   {
   trigger_UseHeatMap4=false;
   ObjectSetInteger(0,"button_trigger_UseHeatMap4",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap4",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_UseHeatMap4",OBJPROP_TEXT,"H.M4");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap4",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_UseHeatMap5" && trigger_UseHeatMap5 ==false)
   {
   trigger_UseHeatMap5 =true;
   ObjectSetInteger(0,"button_trigger_UseHeatMap5",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap5",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_UseHeatMap5",OBJPROP_TEXT,"H.M5");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap5",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_UseHeatMap5" && trigger_UseHeatMap5 ==true)
   {
   trigger_UseHeatMap5=false;
   ObjectSetInteger(0,"button_trigger_UseHeatMap5",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_UseHeatMap5",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_UseHeatMap5",OBJPROP_TEXT,"H.M5");
   Sleep(100);ObjectSetInteger(0,"button_trigger_UseHeatMap5",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);
   }
*/   
//MEDIA MOVEL TF POR PERIODO
//---BOTAO INDICADORES  
   if(sparam=="button_trigger_Moving_Average1" && trigger_Moving_Average1 ==false)//MM12
   {
   trigger_Moving_Average1 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average1",OBJPROP_TEXT,"ON");
   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,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average1",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average1",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average2" && trigger_Moving_Average2 ==false)//MM12
   {
   trigger_Moving_Average2 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average2",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average2",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average2",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average2" && trigger_Moving_Average2 ==true)
   {
   trigger_Moving_Average2=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average2",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average2",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average2",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average3" && trigger_Moving_Average3 ==false)//MM12
   {
   trigger_Moving_Average3 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average3",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average3",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average3",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average3" && trigger_Moving_Average3 ==true)
   {
   trigger_Moving_Average3=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average3",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average3",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average3",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average4" && trigger_Moving_Average4 ==false)//MM21
   {
   trigger_Moving_Average4 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average4",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average4",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average4",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average4",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average4" && trigger_Moving_Average4 ==true)
   {
   trigger_Moving_Average4=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average4",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average4",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average4",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average4",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average5" && trigger_Moving_Average5 ==false)//MM21
   {
   trigger_Moving_Average5 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average5",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average5",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average5",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average5",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average5" && trigger_Moving_Average5 ==true)
   {
   trigger_Moving_Average5=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average5",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average5",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average5",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average5",OBJPROP_STATE,false);
   }
//---
   if(sparam=="button_trigger_Moving_Average6" && trigger_Moving_Average6 ==false)//MM21
   {
   trigger_Moving_Average6 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average6",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average6",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average6",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average6",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average6" && trigger_Moving_Average6 ==true)
   {
   trigger_Moving_Average6=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average6",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average6",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average6",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average6",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average7" && trigger_Moving_Average7 ==false)//MM30
   {
   trigger_Moving_Average7 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average7",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average7",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average7",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average7",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average7" && trigger_Moving_Average7 ==true)
   {
   trigger_Moving_Average7=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average7",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average7",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average7",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average7",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average8" && trigger_Moving_Average8 ==false)//MM30
   {
   trigger_Moving_Average8 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average8",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average8",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average8",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average8",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average8" && trigger_Moving_Average8 ==true)
   {
   trigger_Moving_Average8=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average8",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average8",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average8",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average8",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average9" && trigger_Moving_Average9 ==false)//MM30
   {
   trigger_Moving_Average9 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average9",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average9",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average9",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average9",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average9" && trigger_Moving_Average9 ==true)
   {
   trigger_Moving_Average9=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average9",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average9",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average9",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average9",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average10" && trigger_Moving_Average10 ==false)//MM50
   {
   trigger_Moving_Average10 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average10",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average10",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average10",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average10",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average10" && trigger_Moving_Average10 ==true)
   {
   trigger_Moving_Average10=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average10",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average10",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average10",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average10",OBJPROP_STATE,false);
   }      
//---
   if(sparam=="button_trigger_Moving_Average11" && trigger_Moving_Average11 ==false)//MM50
   {
   trigger_Moving_Average11 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average11",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average11",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average11",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average11",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average11" && trigger_Moving_Average11 ==true)
   {
   trigger_Moving_Average11=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average11",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average11",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average11",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average11",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average12" && trigger_Moving_Average12 ==false)//MM50
   {
   trigger_Moving_Average12 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average12",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average12",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average12",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average12",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average12" && trigger_Moving_Average12 ==true)
   {
   trigger_Moving_Average12=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average12",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average12",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average12",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average12",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average13" && trigger_Moving_Average13 ==false)//MM100
   {
   trigger_Moving_Average13 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average13",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average13",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average13",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average13",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average13" && trigger_Moving_Average13 ==true)
   {
   trigger_Moving_Average13=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average13",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average13",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average13",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average13",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average14" && trigger_Moving_Average14 ==false)//MM100
   {
   trigger_Moving_Average14 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average14",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average14",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average14",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average14",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average14" && trigger_Moving_Average14 ==true)
   {
   trigger_Moving_Average14=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average14",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average14",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average14",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average14",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_Moving_Average15" && trigger_Moving_Average15 ==false)//MM100
   {
   trigger_Moving_Average15 =true;
   ObjectSetInteger(0,"button_trigger_Moving_Average15",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average15",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Moving_Average15",OBJPROP_TEXT,"ON");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average15",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_Moving_Average15" && trigger_Moving_Average15 ==true)
   {
   trigger_Moving_Average15=false;
   ObjectSetInteger(0,"button_trigger_Moving_Average15",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_Moving_Average15",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Moving_Average15",OBJPROP_TEXT,"OF");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Moving_Average15",OBJPROP_STATE,false);
   }    
//MEDIA MOVEL TF POR PERIODO
   if(sparam=="button_UseCCI1" && UseCCI1 ==false)
   {
   UseCCI1 =true;
   ObjectSetInteger(0,"button_UseCCI1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseCCI1",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_UseCCI1",OBJPROP_TEXT,"CCI");
   Sleep(100);ObjectSetInteger(0,"button_UseCCI1",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseCCI1" && UseCCI1 ==true)
   {
   UseCCI1=false;
   ObjectSetInteger(0,"button_UseCCI1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseCCI1",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseCCI1",OBJPROP_TEXT,"CCI");
   Sleep(100);ObjectSetInteger(0,"button_UseCCI1",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_UseCCI2" && UseCCI2 ==false)
   {
   UseCCI2 =true;
   ObjectSetInteger(0,"button_UseCCI2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseCCI2",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_UseCCI2",OBJPROP_TEXT,"CCI");
   Sleep(100);ObjectSetInteger(0,"button_UseCCI2",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseCCI2" && UseCCI2 ==true)
   {
   UseCCI2=false;
   ObjectSetInteger(0,"button_UseCCI2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseCCI2",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseCCI2",OBJPROP_TEXT,"CCI");
   Sleep(100);ObjectSetInteger(0,"button_UseCCI2",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_UseCCI3" && UseCCI3 ==false)
   {
   UseCCI3 =true;
   ObjectSetInteger(0,"button_UseCCI3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseCCI3",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_UseCCI3",OBJPROP_TEXT,"CCI");
   Sleep(100);ObjectSetInteger(0,"button_UseCCI3",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseCCI3" && UseCCI3 ==true)
   {
   UseCCI3=false;
   ObjectSetInteger(0,"button_UseCCI3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseCCI3",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseCCI3",OBJPROP_TEXT,"CCI");
   Sleep(100);ObjectSetInteger(0,"button_UseCCI3",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_UseRSI1" && UseRSI1 ==false)
   {
   UseRSI1 =true;
   ObjectSetInteger(0,"button_UseRSI1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseRSI1",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_UseRSI1",OBJPROP_TEXT,"RSI");
   Sleep(100);ObjectSetInteger(0,"button_UseRSI1",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseRSI1" && UseRSI1 ==true)
   {
   UseRSI1=false;
   ObjectSetInteger(0,"button_UseRSI1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseRSI1",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseRSI1",OBJPROP_TEXT,"RSI");
   Sleep(100);ObjectSetInteger(0,"button_UseRSI1",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_UseRSI2" && UseRSI2 ==false)
   {
   UseRSI2 =true;
   ObjectSetInteger(0,"button_UseRSI2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseRSI2",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_UseRSI2",OBJPROP_TEXT,"RSI");
   Sleep(100);ObjectSetInteger(0,"button_UseRSI2",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseRSI2" && UseRSI2 ==true)
   {
   UseRSI2=false;
   ObjectSetInteger(0,"button_UseRSI2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseRSI2",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseRSI2",OBJPROP_TEXT,"RSI");
   Sleep(100);ObjectSetInteger(0,"button_UseRSI2",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_UseRSI3" && UseRSI3 ==false)
   {
   UseRSI3 =true;
   ObjectSetInteger(0,"button_UseRSI3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseRSI3",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_UseRSI3",OBJPROP_TEXT,"RSI");
   Sleep(100);ObjectSetInteger(0,"button_UseRSI3",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseRSI3" && UseRSI3 ==true)
   {
   UseRSI3=false;
   ObjectSetInteger(0,"button_UseRSI3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseRSI3",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseRSI3",OBJPROP_TEXT,"RSI");
   Sleep(100);ObjectSetInteger(0,"button_UseRSI3",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_MACD1" && trigger_MACD1 ==false)
   {
   trigger_MACD1 =true;
   ObjectSetInteger(0,"button_trigger_MACD1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_MACD1",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_MACD1",OBJPROP_TEXT,"MACD");
   Sleep(100);ObjectSetInteger(0,"button_trigger_MACD1",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_MACD1" && trigger_MACD1 ==true)
   {
   trigger_MACD1=false;
   ObjectSetInteger(0,"button_trigger_MACD1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_MACD1",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_MACD1",OBJPROP_TEXT,"MACD");
   Sleep(100);ObjectSetInteger(0,"button_trigger_MACD1",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_MACD2" && trigger_MACD2 ==false)
   {
   trigger_MACD2 =true;
   ObjectSetInteger(0,"button_trigger_MACD2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_MACD2",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_MACD2",OBJPROP_TEXT,"MACD");
   Sleep(100);ObjectSetInteger(0,"button_trigger_MACD2",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_MACD2" && trigger_MACD2 ==true)
   {
   trigger_MACD2=false;
   ObjectSetInteger(0,"button_trigger_MACD2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_MACD2",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_MACD2",OBJPROP_TEXT,"MACD");
   Sleep(100);ObjectSetInteger(0,"button_trigger_MACD2",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_trigger_MACD3" && trigger_MACD3 ==false)
   {
   trigger_MACD3 =true;
   ObjectSetInteger(0,"button_trigger_MACD3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_MACD3",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_MACD3",OBJPROP_TEXT,"MACD");
   Sleep(100);ObjectSetInteger(0,"button_trigger_MACD3",OBJPROP_STATE,false);
   }
   else if(sparam=="button_trigger_MACD3" && trigger_MACD3 ==true)
   {
   trigger_MACD3=false;
   ObjectSetInteger(0,"button_trigger_MACD3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_trigger_MACD3",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_MACD3",OBJPROP_TEXT,"MACD");
   Sleep(100);ObjectSetInteger(0,"button_trigger_MACD3",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,Black);
   ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_COLOR,DarkGreen);
   ObjectSetString(0,"button_trigger_Candle_Direction",OBJPROP_TEXT,"Candle D");
   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,Black);
   ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_trigger_Candle_Direction",OBJPROP_TEXT,"Candle D");
   Sleep(100);ObjectSetInteger(0,"button_trigger_Candle_Direction",OBJPROP_STATE,false);
   }
//SESSOES
   if(sparam=="button_UseSession1" && UseSession1 ==false)//LONDRES
   {
   UseSession1 =true;
   ObjectSetInteger(0,"button_UseSession1",OBJPROP_BGCOLOR,DarkGreen);
   ObjectSetInteger(0,"button_UseSession1",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseSession1",OBJPROP_TEXT,"ABERTO");
   Sleep(100);ObjectSetInteger(0,"button_UseSession1",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseSession1" && UseSession1 ==true)
   {
   UseSession1=false;
   ObjectSetInteger(0,"button_UseSession1",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseSession1",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseSession1",OBJPROP_TEXT,"FECHADO");
   Sleep(100);ObjectSetInteger(0,"button_UseSession1",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_UseSession2" && UseSession2 ==false)//TOKIO
   {
   UseSession2 =true;
   ObjectSetInteger(0,"button_UseSession2",OBJPROP_BGCOLOR,DarkGreen);
   ObjectSetInteger(0,"button_UseSession2",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseSession2",OBJPROP_TEXT,"ABERTO");
   Sleep(100);ObjectSetInteger(0,"button_UseSession2",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseSession2" && UseSession2 ==true)
   {
   UseSession2=false;
   ObjectSetInteger(0,"button_UseSession2",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseSession2",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseSession2",OBJPROP_TEXT,"FECHADO");
   Sleep(100);ObjectSetInteger(0,"button_UseSession2",OBJPROP_STATE,false);
   }
   
   if(sparam=="button_UseSession3" && UseSession3 ==false)//NOVA YORK
   {
   UseSession3 =true;
   ObjectSetInteger(0,"button_UseSession3",OBJPROP_BGCOLOR,DarkGreen);
   ObjectSetInteger(0,"button_UseSession3",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseSession3",OBJPROP_TEXT,"ABERTO");
   Sleep(100);ObjectSetInteger(0,"button_UseSession3",OBJPROP_STATE,false);
   }
   else if(sparam=="button_UseSession3" && UseSession3 ==true)
   {
   UseSession3=false;
   ObjectSetInteger(0,"button_UseSession3",OBJPROP_BGCOLOR,Black);
   ObjectSetInteger(0,"button_UseSession3",OBJPROP_COLOR,White);
   ObjectSetString(0,"button_UseSession3",OBJPROP_TEXT,"FECHADO");
   Sleep(100);ObjectSetInteger(0,"button_UseSession3",OBJPROP_STATE,false);
   }            
//SESSOES                        
//---------------------------------------------------------------------  
      //{
       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+1250,y_axis+450,Green,10);
else
SetText("CTPT","Closed",x_axis+1250,y_axis+450,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;
}
//-----------------------------------------------------------------------------
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_HM3, 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;
signals[i].Signalperc1 = (iClose(TradePairs[i], 1, 0) - iClose(TradePairs[i], trigger_TF_HM1, 1)) / iClose(TradePairs[i], trigger_TF_HM2, 1) * 100;    
signals[i].Signalperc2 = (iClose(TradePairs[i], 1, 0) - iClose(TradePairs[i], trigger_TF_HM1, 1)) / iClose(TradePairs[i], trigger_TF_HM3, 1) * 100;
signals[i].Signalperc3 = (iClose(TradePairs[i], 1, 0) - iClose(TradePairs[i], trigger_TF_HM1, 1)) / iClose(TradePairs[i], trigger_TF_HM4, 1) * 100;    
signals[i].Signalperc4 = (iClose(TradePairs[i], 1, 0) - iClose(TradePairs[i], trigger_TF_HM1, 1)) / iClose(TradePairs[i], trigger_TF_HM5, 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_H4 ,a)-iLow(TradePairs[i],PERIOD_H4 ,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].SignalCDm1=UP;
if(Closem1<Openm1)signals[i].SignalCDm1=DOWN;
if(Closem5>Openm5)signals[i].SignalCDm5=UP;
if(Closem5<Openm5)signals[i].SignalCDm5=DOWN;
if(Closem15>Openm15)signals[i].SignalCDm15=UP;
if(Closem15<Openm15)signals[i].SignalCDm15=DOWN;
if(Closem30>Openm30)signals[i].SignalCDm30=UP;
if(Closem30<Openm30)signals[i].SignalCDm30=DOWN;
if(Closeh1>Openh1)signals[i].SignalCDh1=UP;
if(Closeh1<Openh1)signals[i].SignalCDh1=DOWN;
if(Closeh4>Openh4)signals[i].SignalCDh4=UP;
if(Closeh4<Openh4)signals[i].SignalCDh4=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].SignalCDm1==UP&&signals[i].SignalCDm5==UP&&signals[i].SignalCDm15==UP&&signals[i].SignalCDm30==UP&&signals[i].SignalCDh1==UP&&signals[i].SignalCDh4==UP/*&&signals[i].SignalCDd1==UP&&signals[i].SignalCDw1==UP&&signals[i].SignalCDmn==UP*/;
signals[i].Signaldirdn=signals[i].SignalCDm1==DOWN&&signals[i].SignalCDm5==DOWN&&signals[i].SignalCDm15==DOWN&&signals[i].SignalCDm30==DOWN&&signals[i].SignalCDh1==DOWN&&signals[i].SignalCDh4==DOWN/*&&signals[i].SignalCDd1==DOWN&&signals[i].SignalCDw1==DOWN&&signals[i].SignalCDmn==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].SignalCDm1==1){ClrLime=BullColor;}
if(signals[i].SignalCDm1==-1){ClrRed=BearColor;}
if(signals[i].SignalCDm5==1){ClrLime=BullColor;}         
if(signals[i].SignalCDm5==-1){ClrRed =BearColor;}
if(signals[i].SignalCDm15==1){ClrLime =BullColor;}
if(signals[i].SignalCDm15==-1){ClrRed=BearColor;}
if(signals[i].SignalCDm30==1){ClrLime=BullColor;}
if(signals[i].SignalCDm30==-1){ClrRed=BearColor;}
if(signals[i].SignalCDh1==1){ClrLime=BullColor;}
if(signals[i].SignalCDh1==-1){ClrRed=BearColor;}
if(signals[i].SignalCDh4==1){ClrLime=BullColor;}
if(signals[i].SignalCDh4==-1){ClrRed=BearColor;}
//if(signals[i].SignalCDd1==1){ClrLime=BullColor;}
//if(signals[i].SignalCDd1==-1){ClrRed=BearColor;}
//if(signals[i].SignalCDw1==1){ClrLime=BullColor;}
//if(signals[i].SignalCDw1==-1){ClrRed=BearColor;}
//if(signals[i].SignalCDmn==1){ClrLime=BullColor;}
//if(signals[i].SignalCDmn==-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].Signalperc1>0){ClrLime=BullColor;}
if(signals[i].Signalperc1<0){ClrRed=BearColor;}
if(signals[i].Signalperc2>0){ClrLime=BullColor;}
if(signals[i].Signalperc2<0){ClrRed=BearColor;}
if(signals[i].Signalperc3>0){ClrLime=BullColor;}
if(signals[i].Signalperc3<0){ClrRed=BearColor;}
if(signals[i].Signalperc4>0){ClrLime=BullColor;}
if(signals[i].Signalperc4<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 

/*//SUPORTE RESISTENCIA
//+------------------------------------------------------------------------------------------+
//|   Support Resistance Trigger                                                                      |
//+------------------------------------------------------------------------------------------+
void SupResTrigger(bool &buysig,bool &sellsig)
  {
// for manual trigger, tcs = -1 
   double ADX1_Val;
   double BB_Spread;
   double Sigma[10]={10*0.};
   double SMA1_Hi,SMA1_Lo;
   double ResVal,SupVal;
   double zzArray[100];
   int Proc_BarsMin=4;
   int jj;
   int BarSel,EndBar,ProcBars;
   int limit = 90;
//
   buysig  = false;
   sellsig = false;
   EndBar=0;
//
   BB_Spread=(iBands(TradePairs[i],0,BBPeriod,BBSigma,0,PRICE_CLOSE,MODE_UPPER,1) -
              iBands(TradePairs[i],0,BBPeriod,BBSigma,0,PRICE_CLOSE,MODE_LOWER,1))/(MULT*_point);
//               
   ADX1_Val=iADX(TradePairs[i],0,ADX_Per,PRICE_CLOSE,MODE_MAIN,1);
//  first trigger filter
   if(BB_Spread<BBSprd_LwLim || BB_Spread>BBSprd_UpLim || ADX1_Val < ADX_Lim) return;
//  Standard Deviation
   for(jj=0;jj<5;jj++)
     {
      Sigma[jj]=1000.*iStdDev(TradePairs[i],0,SigPer,0,MODE_SMA,PRICE_HIGH,1+jj);
     }
// ZigZag array (zzArray[]= 0. except for start and end values of segment)
   FunZigZag(limit,ExtDepth,ExtDeviation,ExtBackstep,zzArray);
   for(jj=0; jj<limit; jj++)
    {
//   zzArray[jj] = iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, jj+1);// alternative
     if(zzArray[jj+1]>0.01 && jj>Proc_BarsMin-1)
      {
       EndBar=jj+1;
       break;
      }
    }
//
   ProcBars=EndBar; // total bars to process
   if(ProcBars<ProcBars_Min) return;
   BarSel=1; // use close of last bar
   GetSupRes(ProcBars,BarSel,SupVal,ResVal);
//
   SMA1_Hi=iMA(TradePairs[i],0,SMAPer,0,MODE_SMA,PRICE_HIGH,1 );  // high
   SMA1_Lo=iMA(TradePairs[i],0,SMAPer,0,MODE_SMA,PRICE_LOW, 1 );  // low
                                                            //
   if(SMA1_Hi>ResVal && Sigma[0]<SigLim && Sigma[0]>Sigma[1]) buysig=true;
   if(SMA1_Lo<SupVal && Sigma[0]<SigLim && Sigma[0]>Sigma[1]) sellsig=true;
   return;
  }
//-----------------------------------------------------------------------------------
//
void GetSupRes(int ProcBars,int BarSel,double &SupVal,double &ResVal)
  {
// input are number of bars in ZigZag segment, bar used to compute values of Supp/Res
   double MM,BBS,BBR,ResBarVal,SupBarVal;
   int TotBars,BarSup,BarRes,StartBar;
   StartBar=1;
   TotBars = ProcBars+StartBar-1;
// compute slope of supp/res lines (y = MM*x + BBR)
   MM=(iClose(NULL,0,TotBars)-iClose(NULL,0,StartBar))/ProcBars; // slope
                                                                 // Resistance
   BarRes=Highest(NULL,0,MODE_HIGH,TotBars,StartBar);
   ResBarVal=iHigh(NULL,0,BarRes);
   BBR = ResBarVal-MM*BarRes;  // Res line intercept
   ResVal = MM*BarSel+BBR;     // compute value of Resistance at last closed bar
                               //  Support
   BarSup=Lowest(NULL,0,MODE_LOW,TotBars,StartBar);
   SupBarVal=iLow(NULL,0,BarSup);
   BBS = SupBarVal-MM*BarSup; // Supp line intercept
   SupVal = MM*BarSel+BBS;    // compute value of Support at last closed bar
   return;
  }
// --------------------------------------------------------------------------------
//+------------------------------------------------------------------+
//|                                                    FunZigZag.mq4 |
//|           2006-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+

void FunZigZag(int limit,int InpDepth,int InpDeviation,int InpBackstep,double &ExtZigzagBuffer[])
// Based on Metaquotes ZigZag MT4 Indicator code 
// - workaround for submittal to codebase -
 {
   int    i,jj,counterZ,whatlookfor=0;
   int    back,pos,lasthighpos=0,lastlowpos=0;
   double extremum;
   double ExtHighBuffer[],ExtLowBuffer[];
   double high[],low[];
   int    ExtLevel=3; // recounting's depth of extremums
   double curlow=0.0,curhigh=0.0,lasthigh=0.0,lastlow=0.0;
   int prev_calculated;
//--- first calculations
   ArrayResize(high,limit+InpDepth);
   ArrayResize(low,limit+InpDepth);
   ArrayResize(ExtHighBuffer,limit+InpBackstep);
   ArrayResize(ExtLowBuffer,limit+InpBackstep);
   ArrayInitialize(ExtZigzagBuffer,0.0);
   ArrayInitialize(ExtHighBuffer,0.0);
   ArrayInitialize(ExtLowBuffer,0.0);
   //
   for(jj=0;jj<(limit+InpDepth);jj++)
    {
     high[jj] = iHigh(Symbol(),0,jj);
     low[jj]  = iLow(Symbol(),0,jj);
    }   
   prev_calculated = 0;
//---------------------------------------------------------
//--- first calculations 
//   if(prev_calculated==0)
//      limit=InitializeAll();
//    else
   if(prev_calculated>0)  // (should not be executed in function call)
     {
      //--- find first extremum in the depth ExtLevel or 100 last bars
      i=counterZ=0;
      while(counterZ<ExtLevel && i<100)
        {
         if(ExtZigzagBuffer[i]!=0.0)
            counterZ++;
         i++;
        }
      //--- no extremum found - recounting all from begin
 //     if(counterZ==0)
 //        limit=InitializeAll();
 //     else
      if(counterZ>0)
        {
         //--- set start position to found extremum position
         limit=i-1;
         //--- what kind of extremum?
         if(ExtLowBuffer[i]!=0.0) 
           {
            //--- low extremum
            curlow=ExtLowBuffer[i];
            //--- will look for the next high extremum
            whatlookfor=1;
           }
         else
           {
            //--- high extremum
            curhigh=ExtHighBuffer[i];
            //--- will look for the next low extremum
            whatlookfor=-1;
           }
         //--- clear the rest data
         for(i=limit-1; i>=0; i--)  
           {
            ExtZigzagBuffer[i]=0.0;  
            ExtLowBuffer[i]=0.0;
            ExtHighBuffer[i]=0.0;
           }
        }
     } // -----  end  if prev calculated>0 -----------------------
//
//--- main loop    -----------------------------------------------------------  
   for(i=limit-1; i>=0; i--) 
     {
      //--- find lowest low in depth of bars
      extremum=low[iLowest(NULL,0,MODE_LOW,InpDepth,i)];
      //--- this lowest has been found previously
      if(extremum==lastlow)
         extremum=0.0;
      else 
        { 
         //--- new last low
         lastlow=extremum; 
         //--- discard extremum if current low is too high
         if(low[i]-extremum>InpDeviation*Point)
            extremum=0.0;
         else
           {
            //--- clear previous extremums in backstep bars
            for(back=1; back<=InpBackstep; back++)
              {
               pos=i+back;
               if(ExtLowBuffer[pos]!=0 && ExtLowBuffer[pos]>extremum)
                  ExtLowBuffer[pos]=0.0; 
              }
           }
        } 
      //--- found extremum is current low
      if(low[i]==extremum)
         ExtLowBuffer[i]=extremum;
      else
         ExtLowBuffer[i]=0.0;
      //--- find highest high in depth of bars
      extremum=high[iHighest(NULL,0,MODE_HIGH,InpDepth,i)];
      //--- this highest has been found previously
      if(extremum==lasthigh)
         extremum=0.0;
      else 
        {
         //--- new last high
         lasthigh=extremum;
         //--- discard extremum if current high is too low
         if(extremum-high[i]>InpDeviation*Point)
            extremum=0.0;
         else
           {
            //--- clear previous extremums in backstep bars
            for(back=1; back<=InpBackstep; back++)
              {
               pos=i+back;
               if(ExtHighBuffer[pos]!=0 && ExtHighBuffer[pos]<extremum)
                  ExtHighBuffer[pos]=0.0; 
              } 
           }
        }
      //--- found extremum is current high
      if(high[i]==extremum)
         ExtHighBuffer[i]=extremum;
      else
         ExtHighBuffer[i]=0.0;
     }
//--- final cutting 
   if(whatlookfor==0)
     {
      lastlow=0.0;
      lasthigh=0.0;  
     }
   else
     {
      lastlow=curlow;
      lasthigh=curhigh;
     }
   for(i=limit-1; i>=0; i--) 
     {
      switch(whatlookfor)
        {
         case 0: // look for peak or lawn 
            if(lastlow==0.0 && lasthigh==0.0)
              {
               if(ExtHighBuffer[i]!=0.0)
                 {
                  lasthigh=High[i];
                  lasthighpos=i;
                  whatlookfor=-1;
                  ExtZigzagBuffer[i]=lasthigh;
                 }
               if(ExtLowBuffer[i]!=0.0)
                 {
                  lastlow=Low[i];
                  lastlowpos=i;
                  whatlookfor=1;
                  ExtZigzagBuffer[i]=lastlow;
                 }
              }
             break;  
         case 1: // look for peak
            if(ExtLowBuffer[i]!=0.0 && ExtLowBuffer[i]<lastlow && ExtHighBuffer[i]==0.0)
              {
               ExtZigzagBuffer[lastlowpos]=0.0;
               lastlowpos=i;
               lastlow=ExtLowBuffer[i];
               ExtZigzagBuffer[i]=lastlow;
              }
            if(ExtHighBuffer[i]!=0.0 && ExtLowBuffer[i]==0.0)
              {
               lasthigh=ExtHighBuffer[i];
               lasthighpos=i;
               ExtZigzagBuffer[i]=lasthigh;
               whatlookfor=-1;
              }   
            break;               
         case -1: // look for lawn
            if(ExtHighBuffer[i]!=0.0 && ExtHighBuffer[i]>lasthigh && ExtLowBuffer[i]==0.0)
              {
               ExtZigzagBuffer[lasthighpos]=0.0;
               lasthighpos=i;
               lasthigh=ExtHighBuffer[i];
               ExtZigzagBuffer[i]=lasthigh;
              }
            if(ExtLowBuffer[i]!=0.0 && ExtHighBuffer[i]==0.0)
              {
               lastlow=ExtLowBuffer[i];
               lastlowpos=i;
               ExtZigzagBuffer[i]=lastlow;
               whatlookfor=1;
              }   
            break;               
        }
     }
//--- done
   return;
  }
//+------------------------------------------------------------------
//SUPORTE RESISTENCIA*/    
//======================RUN=974===============01 
void GetTrendChange() {
for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalcci = NONE;

   double cci = iCCI(TradePairs[i],0, trade_Period_CCI1, PRICE_OPEN, 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].Signalcciup1 = UP;
      } 
             
      if (CloseSell1_1 < CloseSell1_2) 
      {        
      signals[i].Signalccidn1 = DOWN;
      }      
   
      
 //======================RUN=974===============
 //======================RUN=974===============02 

//void GetTrendChange() {
   for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalcci = NONE;

   double cci = iCCI(TradePairs[i],0, trade_Period_CCI2, PRICE_OPEN, PERIOD_H1);
   

   double CloseBuy1_1 =  cci ;
   double CloseBuy1_21 = -100;

   double CloseSell1_1 =  cci ;
   double CloseSell1_21 = 100;   
    
          if (CloseBuy1_1 > CloseBuy1_21)  
      {        
      signals[i].Signalcciup2 = UP;
      } 
             
      if (CloseSell1_1 < CloseSell1_21) 
      {        
      signals[i].Signalccidn2 = DOWN;
      }      
   
      
 //======================RUN=974=============== 
 //======================RUN=974===============03 

//void GetTrendChange() {
   for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalcci = NONE;

   double cci = iCCI(TradePairs[i],0, trade_Period_CCI3, PRICE_OPEN, PERIOD_H4);
   

   double CloseBuy1_1 =  cci ;
   double CloseBuy1_22 = -100;

   double CloseSell1_1 =  cci ;
   double CloseSell1_22 = 100;   
    
          if (CloseBuy1_1 > CloseBuy1_22)  
      {        
      signals[i].Signalcciup3 = UP;
      } 
             
      if (CloseSell1_1 < CloseSell1_22) 
      {        
      signals[i].Signalccidn3 = DOWN;
      }      
}}   
      
 //======================RUN=974===============   
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMA4//
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
//MACD
//int OnInit(void)
  {
   IndicatorDigits(Digits+1);
//--- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignPeriod);
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMacdBuffer);
   SetIndexBuffer(1,ExtSignalBuffer);
//--- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+IntegerToString(FastPeriod)+","+IntegerToString(SlowPeriod)+","+IntegerToString(SignPeriod)+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//--- check for input parameters
   if(FastPeriod<=1 || SlowPeriod<=1 || SignPeriod<=1 || FastPeriod>=SlowPeriod)
     {
      Print("Wrong input parameters");
      ExtParameters=false;
      //return(INIT_FAILED);
     }
   else
      ExtParameters=true;
//--- initialization done
   //return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
/*int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
                 const double& low[],
                 const double& close[],
                 const long& tick_volume[],
                 const long& volume[],
                 const int& spread[])
  {
   int i,limit;
//---
   if(rates_total<=InpSignalSMA || !ExtParameters)
    return(0);
//--- last counted bar will be recounted
   limit=rates_total-prev_calculated;
   if(prev_calculated>0)
      //limit++;
//--- macd counted in the 1-st buffer
   for(i=0; i<limit; i++)
      ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
                    iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//--- signal line counted in the 2-nd buffer
   SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- done
   return(rates_total);
  }*/
//MACD
         double valuem = iMACD(TradePairs[i],PERIOD_M30,FastPeriod,SlowPeriod,SignPeriod,Price,MODE_MAIN  ,0); //Times[t] no lugar no period
         double values = iMACD(TradePairs[i],PERIOD_M30,FastPeriod,SlowPeriod,SignPeriod,Price,MODE_SIGNAL,0);
         
            if (valuem > 0)
               if (valuem > values) 
              signals[i].SignalMACDup01=UP;
             
            if (valuem < 0)
               if (valuem < values) 
            signals[i].SignalMACDdn01=DOWN; 
            
      /*signals[i].SignalMACDup=(signals[i].Signalham12==UP&&signals[i].Signalham52==UP);
      signals[i].SignalMACDdn=(signals[i].Signalham12==DOWN&&signals[i].Signalham52==DOWN);*/               
//MACD
//MACD1
//int OnInit(void)
  {
   IndicatorDigits(Digits+1);
//--- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignPeriod1);
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMacdBuffer1);
   SetIndexBuffer(1,ExtSignalBuffer1);
//--- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+IntegerToString(FastPeriod1)+","+IntegerToString(SlowPeriod1)+","+IntegerToString(SignPeriod1)+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//--- check for input parameters
   if(FastPeriod1<=1 || SlowPeriod1<=1 || SignPeriod1<=1 || FastPeriod1>=SlowPeriod1)
     {
      Print("Wrong input parameters");
      ExtParameters1=false;
      //return(INIT_FAILED);
     }
   else
      ExtParameters1=true;
//--- initialization done
   //return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
/*int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
                 const double& low[],
                 const double& close[],
                 const long& tick_volume[],
                 const long& volume[],
                 const int& spread[])
  {
   int i,limit;
//---
   if(rates_total<=InpSignalSMA || !ExtParameters)
    return(0);
//--- last counted bar will be recounted
   limit=rates_total-prev_calculated;
   if(prev_calculated>0)
      //limit++;
//--- macd counted in the 1-st buffer
   for(i=0; i<limit; i++)
      ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
                    iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//--- signal line counted in the 2-nd buffer
   SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- done
   return(rates_total);
  }*/
//MACD
         double valuem1 = iMACD(TradePairs[i],PERIOD_H1,FastPeriod1,SlowPeriod1,SignPeriod1,Price,MODE_MAIN  ,0); //Times[t] no lugar no period
         double values1 = iMACD(TradePairs[i],PERIOD_H1,FastPeriod1,SlowPeriod1,SignPeriod1,Price,MODE_SIGNAL,0);
         
            if (valuem1 > 0)
               if (valuem1 > values1) 
              signals[i].SignalMACDup02=UP;
             
            if (valuem1 < 0)
               if (valuem1 < values1) 
            signals[i].SignalMACDdn02=DOWN; 
            
      /*signals[i].SignalMACDup=(signals[i].Signalham12==UP&&signals[i].Signalham52==UP);
      signals[i].SignalMACDdn=(signals[i].Signalham12==DOWN&&signals[i].Signalham52==DOWN);*/               
//MACD
//MACD2
//int OnInit(void)
  {
   IndicatorDigits(Digits+1);
//--- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignPeriod2);
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMacdBuffer2);
   SetIndexBuffer(1,ExtSignalBuffer2);
//--- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+IntegerToString(FastPeriod2)+","+IntegerToString(SlowPeriod2)+","+IntegerToString(SignPeriod2)+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//--- check for input parameters
   if(FastPeriod2<=1 || SlowPeriod2<=1 || SignPeriod2<=1 || FastPeriod2>=SlowPeriod2)
     {
      Print("Wrong input parameters");
      ExtParameters2=false;
      //return(INIT_FAILED);
     }
   else
      ExtParameters2=true;
//--- initialization done
   //return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
/*int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
                 const double& low[],
                 const double& close[],
                 const long& tick_volume[],
                 const long& volume[],
                 const int& spread[])
  {
   int i,limit;
//---
   if(rates_total<=InpSignalSMA || !ExtParameters)
    return(0);
//--- last counted bar will be recounted
   limit=rates_total-prev_calculated;
   if(prev_calculated>0)
      //limit++;
//--- macd counted in the 1-st buffer
   for(i=0; i<limit; i++)
      ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
                    iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//--- signal line counted in the 2-nd buffer
   SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- done
   return(rates_total);
  }*/
//MACD
         double valuem2 = iMACD(TradePairs[i],PERIOD_H4,FastPeriod2,SlowPeriod2,SignPeriod2,Price,MODE_MAIN  ,0); //Times[t] no lugar no period
         double values2 = iMACD(TradePairs[i],PERIOD_H4,FastPeriod2,SlowPeriod2,SignPeriod2,Price,MODE_SIGNAL,0);
         
            if (valuem2 > 0)
               if (valuem2 > values2) 
              signals[i].SignalMACDup03=UP;
             
            if (valuem2 < 0)
               if (valuem2 < values2) 
            signals[i].SignalMACDdn03=DOWN; 
            
      /*signals[i].SignalMACDup=(signals[i].Signalham12==UP&&signals[i].Signalham52==UP);
      signals[i].SignalMACDdn=(signals[i].Signalham12==DOWN&&signals[i].Signalham52==DOWN);*/               
//MACD
//+------------------------------------------------------------------+
   for (int i=0;i<ArraySize(TradePairs);i++) {
   
      double BB1  = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average1,0,MODE_SMA,PRICE_CLOSE,0);//MM12 //PERIODO TIME FRAME ALTERAR DE PERIOD_M1 PARA NULL OU TF     
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average1,0,MODE_SMA,PRICE_CLOSE,0);//MM12       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM01up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM01up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM02dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )
         signals[i].SignalM02dn=DOWN;
         
      signals[i].Signalmaup10=(signals[i].SignalM01up==UP&&signals[i].SignalM02dn==UP);
      signals[i].Signalmadn10=(signals[i].SignalM01up==DOWN&&signals[i].SignalM02dn==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_H1,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_CLOSE,0);//MM12      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_CLOSE,0);//MM12       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM03up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM03up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM04dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB10 )
         signals[i].SignalM04dn=DOWN;
         
      signals[i].Signalmaup11=(signals[i].SignalM03up==UP&&signals[i].SignalM04dn==UP);
      signals[i].Signalmadn11=(signals[i].SignalM03up==DOWN&&signals[i].SignalM04dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM2 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM2 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM2 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM2 ,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_H4,trade_Period_Moving_Average3,0,MODE_SMA,PRICE_CLOSE,0);//MM12      
      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_Moving_Average3,0,MODE_SMA,PRICE_CLOSE,0);//MM12       
      
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB1 )
         signals[i].SignalM05up=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB1 )
         signals[i].SignalM05up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )
         signals[i].SignalM06dn=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )
         signals[i].SignalM06dn=DOWN;
         
      signals[i].Signalmaup12=(signals[i].SignalM05up==UP&&signals[i].SignalM06dn==UP);
      signals[i].Signalmadn12=(signals[i].SignalM05up==DOWN&&signals[i].SignalM06dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM3 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM3 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM3 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM3 ,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_M30,trade_Period_Moving_Average4,0,MODE_SMA,PRICE_CLOSE,0);//MM21      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average4,0,MODE_SMA,PRICE_CLOSE,0);//MM21       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM07up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM07up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM08dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )
         signals[i].SignalM08dn=DOWN;
         
      signals[i].Signalmaup13=(signals[i].SignalM07up==UP&&signals[i].SignalM08dn==UP);
      signals[i].Signalmadn13=(signals[i].SignalM07up==DOWN&&signals[i].SignalM08dn==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_H1,trade_Period_Moving_Average5,0,MODE_SMA,PRICE_CLOSE,0);//MM21      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average5,0,MODE_SMA,PRICE_CLOSE,0);//MM21       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM09up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM09up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM10dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB10 )
         signals[i].SignalM10dn=DOWN;
         
      signals[i].Signalmaup14=(signals[i].SignalM09up==UP&&signals[i].SignalM10dn==UP);
      signals[i].Signalmadn14=(signals[i].SignalM09up==DOWN&&signals[i].SignalM10dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM2 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM2 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM2 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM2 ,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_H4,trade_Period_Moving_Average6,0,MODE_SMA,PRICE_CLOSE,0);//MM21      
      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_Moving_Average6,0,MODE_SMA,PRICE_CLOSE,0);//MM21       
      
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB1 )
         signals[i].SignalM11up=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB1 )
         signals[i].SignalM11up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )
         signals[i].SignalM12dn=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )
         signals[i].SignalM12dn=DOWN;
         
      signals[i].Signalmaup15=(signals[i].SignalM11up==UP&&signals[i].SignalM12dn==UP);
      signals[i].Signalmadn15=(signals[i].SignalM11up==DOWN&&signals[i].SignalM12dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM3 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM3 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM3 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM3 ,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_M30,trade_Period_Moving_Average7,0,MODE_SMA,PRICE_CLOSE,0);//MM30      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average7,0,MODE_SMA,PRICE_CLOSE,0);//MM30       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM13up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM13up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM14dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )
         signals[i].SignalM14dn=DOWN;
         
      signals[i].Signalmaup1=(signals[i].SignalM13up==UP&&signals[i].SignalM14dn==UP);
      signals[i].Signalmadn1=(signals[i].SignalM13up==DOWN&&signals[i].SignalM14dn==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_H1,trade_Period_Moving_Average8,0,MODE_SMA,PRICE_CLOSE,0);//MM30      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average8,0,MODE_SMA,PRICE_CLOSE,0);//MM30       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM15up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM15up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM16dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB10 )
         signals[i].SignalM16dn=DOWN;
         
      signals[i].Signalmaup2=(signals[i].SignalM15up==UP&&signals[i].SignalM16dn==UP);
      signals[i].Signalmadn2=(signals[i].SignalM15up==DOWN&&signals[i].SignalM16dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM2 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM2 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM2 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM2 ,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_H4,trade_Period_Moving_Average9,0,MODE_SMA,PRICE_CLOSE,0);//MM30      
      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_Moving_Average9,0,MODE_SMA,PRICE_CLOSE,0);//MM30       
      
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB1 )
         signals[i].SignalM17up=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB1 )
         signals[i].SignalM17up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )
         signals[i].SignalM18dn=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )
         signals[i].SignalM18dn=DOWN;
         
      signals[i].Signalmaup3=(signals[i].SignalM17up==UP&&signals[i].SignalM18dn==UP);
      signals[i].Signalmadn3=(signals[i].SignalM17up==DOWN&&signals[i].SignalM18dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM3 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM3 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM3 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM3 ,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_M30,trade_Period_Moving_Average10,0,MODE_SMA,PRICE_CLOSE,0);//MM50      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average10,0,MODE_SMA,PRICE_CLOSE,0);//MM50       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM19up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM19up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM20dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )
         signals[i].SignalM20dn=DOWN;
         
      signals[i].Signalmaup4=(signals[i].SignalM19up==UP&&signals[i].SignalM20dn==UP);
      signals[i].Signalmadn4=(signals[i].SignalM19up==DOWN&&signals[i].SignalM20dn==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_H1,trade_Period_Moving_Average11,0,MODE_SMA,PRICE_CLOSE,0);//MM50      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average11,0,MODE_SMA,PRICE_CLOSE,0);//MM50       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM21up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM21up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM22dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB10 )
         signals[i].SignalM22dn=DOWN;
         
      signals[i].Signalmaup5=(signals[i].SignalM21up==UP&&signals[i].SignalM22dn==UP);
      signals[i].Signalmadn5=(signals[i].SignalM21up==DOWN&&signals[i].SignalM22dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM2 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM2 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM2 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM2 ,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_H4,trade_Period_Moving_Average12,0,MODE_SMA,PRICE_CLOSE,0);//MM50      
      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_Moving_Average12,0,MODE_SMA,PRICE_CLOSE,0);//MM50       
      
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB1 )
         signals[i].SignalM23up=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB1 )
         signals[i].SignalM23up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )
         signals[i].SignalM24dn=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )
         signals[i].SignalM24dn=DOWN;
         
      signals[i].Signalmaup6=(signals[i].SignalM23up==UP&&signals[i].SignalM24dn==UP);
      signals[i].Signalmadn6=(signals[i].SignalM23up==DOWN&&signals[i].SignalM24dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM3 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM3 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM3 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM3 ,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_M30,trade_Period_Moving_Average13,0,MODE_SMA,PRICE_CLOSE,0);//MM100      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average13,0,MODE_SMA,PRICE_CLOSE,0);//MM100       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM25up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM25up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM26dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB10 )
         signals[i].SignalM26dn=DOWN;
         
      signals[i].Signalmaup7=(signals[i].SignalM25up==UP&&signals[i].SignalM26dn==UP);
      signals[i].Signalmadn7=(signals[i].SignalM25up==DOWN&&signals[i].SignalM26dn==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_H1,trade_Period_Moving_Average14,0,MODE_SMA,PRICE_CLOSE,0);//MM100      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average14,0,MODE_SMA,PRICE_CLOSE,0);//MM100       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM27up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM27up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM28dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB10 )
         signals[i].SignalM28dn=DOWN;
         
      signals[i].Signalmaup8=(signals[i].SignalM27up==UP&&signals[i].SignalM28dn==UP);
      signals[i].Signalmadn8=(signals[i].SignalM27up==DOWN&&signals[i].SignalM28dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM2 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM2 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM2 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM2 ,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_H4,trade_Period_Moving_Average15,0,MODE_SMA,PRICE_CLOSE,0);//MM100      
      double BB10 = iMA(TradePairs[i],PERIOD_H4,trade_Period_Moving_Average15,0,MODE_SMA,PRICE_CLOSE,0);//MM100       
      
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB1 )
         signals[i].SignalM29up=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB1 )
         signals[i].SignalM29up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H4,0)>BB10 )
         signals[i].SignalM30dn=UP;
      if(iClose(TradePairs[i],PERIOD_H4,0)<BB10 )
         signals[i].SignalM30dn=DOWN;
         
      signals[i].Signalmaup9=(signals[i].SignalM29up==UP&&signals[i].SignalM30dn==UP);
      signals[i].Signalmadn9=(signals[i].SignalM29up==DOWN&&signals[i].SignalM30dn==DOWN);   
        
     
     signals[i].prevSignalusd = signals[i].Signalusd; 
    
      double high   = iHigh(TradePairs[i],trigger_TF_HM3 ,0);
      double low    = iLow(TradePairs[i],trigger_TF_HM3 ,0);
      double close  = iClose(TradePairs[i],trigger_TF_HM3 ,0);
      double open   = iOpen(TradePairs[i],trigger_TF_HM3 ,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;
//     }
//   }
//  }
}}
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI02
      double Openlast = iRSI(TradePairs[i],PERIOD_M30,trade_Period_RSI1,0,0);
      double Openbefore = iRSI(TradePairs[i],PERIOD_M30,trade_Period_RSI1,0,1);
    
      
      if (Openlast<Openbefore && Openlast>30) {
         
            signals[i].Signalrsidn1 = DOWN;
      }
       
      if (Openlast>Openbefore && Openlast<70)  {
         
            signals[i].Signalrsiup1 = UP;
      }   
   }
 }
void GetCommodity() {
   for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalrsi = NONE; 
      
    //  }//}
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI03
      double Openlast = iRSI(TradePairs[i],PERIOD_H1,trade_Period_RSI2,0,0);
      double Openbefore = iRSI(TradePairs[i],PERIOD_H1,trade_Period_RSI2,0,1);
    
      
      if (Openlast<Openbefore && Openlast>30) {
         
            signals[i].Signalrsidn2 = DOWN;
      }
       
      if (Openlast>Openbefore && Openlast<70)  {
         
            signals[i].Signalrsiup2 = UP;
      }   
   }
 }
void GetCommodity2() {
   for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalrsi = NONE; 
      
    //  }//}
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI01
      double Openlast = iRSI(TradePairs[i],PERIOD_H4,trade_Period_RSI3,0,0);
      double Openbefore = iRSI(TradePairs[i],PERIOD_H4,trade_Period_RSI3,0,1);
    
      
      if (Openlast<Openbefore && Openlast>30) {
         
            signals[i].Signalrsidn3 = DOWN;
      }
       
      if (Openlast>Openbefore && Openlast<70)  {
         
            signals[i].Signalrsiup3 = UP;
      }   
   }
 }
void GetCommodity3()
 {
   for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalrsi = NONE; 
      
      }}
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI

//-----------------------------------------------------------------------------
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;
 }
//-----------------------------------------------------------------------------  
void ChngBoxCol1(int mVal1, int mBx1)
 {
   if(mVal1 >= 0 && mVal1 < 10)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, White);
   if(mVal1 > 10 && mVal1 < 20)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, LightCyan);
   if(mVal1 > 20 && mVal1 < 30)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, PowderBlue);
   if(mVal1 > 30 && mVal1 < 40)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, PaleTurquoise);
   if(mVal1 > 40 && mVal1 < 50)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, LightBlue);
   if(mVal1 > 50 && mVal1 < 60)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, SkyBlue);
   if(mVal1 > 60 && mVal1 < 70)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Turquoise);
   if(mVal1 > 70 && mVal1 < 80)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, DeepSkyBlue);
   if(mVal1 > 80 && mVal1 < 90)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, SteelBlue);
   if(mVal1 > 90 && mVal1 < 100)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Blue);
   if(mVal1 > 100)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, MediumBlue);

   if(mVal1 < 0 && mVal1 > -10)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, White);
   if(mVal1 < -10 && mVal1 > -20)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Seashell);
   if(mVal1 < -20 && mVal1 > -30)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, MistyRose);
   if(mVal1 < -30 && mVal1 > -40)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Pink);
   if(mVal1 < -40 && mVal1 > -50)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, LightPink);
   if(mVal1 < -50 && mVal1 > -60)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Plum);
   if(mVal1 < -60 && mVal1 >-70)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Violet);
   if(mVal1 < -70 && mVal1 > -80)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Orchid);
   if(mVal1 < -80 && mVal1 > -90)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, DeepPink);
   if(mVal1 < -90)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Red);
   return;
 }
//----------------------------------------------------------------------------- 
void ChngBoxCol2(int mVal2, int mBx2)
 {
   if(mVal2 >= 0 && mVal2 < 10)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, White);
   if(mVal2 > 10 && mVal2 < 20)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, LightCyan);
   if(mVal2 > 20 && mVal2 < 30)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, PowderBlue);
   if(mVal2 > 30 && mVal2 < 40)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, PaleTurquoise);
   if(mVal2 > 40 && mVal2 < 50)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, LightBlue);
   if(mVal2 > 50 && mVal2 < 60)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, SkyBlue);
   if(mVal2 > 60 && mVal2 < 70)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Turquoise);
   if(mVal2 > 70 && mVal2 < 80)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, DeepSkyBlue);
   if(mVal2 > 80 && mVal2 < 90)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, SteelBlue);
   if(mVal2 > 90 && mVal2 < 100)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Blue);
   if(mVal2 > 100)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, MediumBlue);

   if(mVal2 < 0 && mVal2 > -10)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, White);
   if(mVal2 < -10 && mVal2 > -20)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Seashell);
   if(mVal2 < -20 && mVal2 > -30)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, MistyRose);
   if(mVal2 < -30 && mVal2 > -40)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Pink);
   if(mVal2 < -40 && mVal2 > -50)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, LightPink);
   if(mVal2 < -50 && mVal2 > -60)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Plum);
   if(mVal2 < -60 && mVal2 >-70)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Violet);
   if(mVal2 < -70 && mVal2 > -80)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Orchid);
   if(mVal2 < -80 && mVal2 > -90)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, DeepPink);
   if(mVal2 < -90)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Red);
   return;
 }
//----------------------------------------------------------------------------- 
void ChngBoxCol3(int mVal2, int mBx2)
 {
   if(mVal2 >= 0 && mVal2 < 10)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, White);
   if(mVal2 > 10 && mVal2 < 20)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, LightCyan);
   if(mVal2 > 20 && mVal2 < 30)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, PowderBlue);
   if(mVal2 > 30 && mVal2 < 40)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, PaleTurquoise);
   if(mVal2 > 40 && mVal2 < 50)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, LightBlue);
   if(mVal2 > 50 && mVal2 < 60)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, SkyBlue);
   if(mVal2 > 60 && mVal2 < 70)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Turquoise);
   if(mVal2 > 70 && mVal2 < 80)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, DeepSkyBlue);
   if(mVal2 > 80 && mVal2 < 90)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, SteelBlue);
   if(mVal2 > 90 && mVal2 < 100)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Blue);
   if(mVal2 > 100)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, MediumBlue);

   if(mVal2 < 0 && mVal2 > -10)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, White);
   if(mVal2 < -10 && mVal2 > -20)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Seashell);
   if(mVal2 < -20 && mVal2 > -30)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, MistyRose);
   if(mVal2 < -30 && mVal2 > -40)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Pink);
   if(mVal2 < -40 && mVal2 > -50)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, LightPink);
   if(mVal2 < -50 && mVal2 > -60)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Plum);
   if(mVal2 < -60 && mVal2 >-70)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Violet);
   if(mVal2 < -70 && mVal2 > -80)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Orchid);
   if(mVal2 < -80 && mVal2 > -90)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, DeepPink);
   if(mVal2 < -90)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Red);
   return;
 }
//----------------------------------------------------------------------------- 
void ChngBoxCol4(int mVal2, int mBx2)
 {
   if(mVal2 >= 0 && mVal2 < 10)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, White);
   if(mVal2 > 10 && mVal2 < 20)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, LightCyan);
   if(mVal2 > 20 && mVal2 < 30)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, PowderBlue);
   if(mVal2 > 30 && mVal2 < 40)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, PaleTurquoise);
   if(mVal2 > 40 && mVal2 < 50)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, LightBlue);
   if(mVal2 > 50 && mVal2 < 60)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, SkyBlue);
   if(mVal2 > 60 && mVal2 < 70)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Turquoise);
   if(mVal2 > 70 && mVal2 < 80)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, DeepSkyBlue);
   if(mVal2 > 80 && mVal2 < 90)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, SteelBlue);
   if(mVal2 > 90 && mVal2 < 100)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Blue);
   if(mVal2 > 100)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, MediumBlue);

   if(mVal2 < 0 && mVal2 > -10)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, White);
   if(mVal2 < -10 && mVal2 > -20)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Seashell);
   if(mVal2 < -20 && mVal2 > -30)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, MistyRose);
   if(mVal2 < -30 && mVal2 > -40)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Pink);
   if(mVal2 < -40 && mVal2 > -50)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, LightPink);
   if(mVal2 < -50 && mVal2 > -60)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Plum);
   if(mVal2 < -60 && mVal2 >-70)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Violet);
   if(mVal2 < -70 && mVal2 > -80)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Orchid);
   if(mVal2 < -80 && mVal2 > -90)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, DeepPink);
   if(mVal2 < -90)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Red);
   return;
 }       

    