#property copyright "Fênix Capital" //<---Curta nossa pagina no Facebook
#property link      "https://www.facebook.com/FenixCapital.Ltda" 
#property version   "1.00"
#property strict
#include <stdlib.mqh>
#include <WinUser32.mqh>
#include <ChartObjects\ChartObjectsTxtControls.mqh>

#define BullColor Lime
#define BearColor Red

enum dbu {Constant=0,OneMinute=1,FiveMinutes=5};
// ====================================================================
sinput   string                  t_trade                    = "EXPERT MANAGEMENT"; // ===========
sinput bool                      UseDefaultPairs            = true;    // Use todos os 28 pares
sinput string                    OwnPairs                   = "AUDCAD,AUDJPY,AUDUSD,CADJPY,EURAUD,EURCAD,EURGBP,EURJPY,EURUSD,GBPAUD,GBPCAD,GBPJPY,GBPUSD,NZDJPY,NZDUSD,USDCAD,USDCHF,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;    // Auto Trade
// ====================================================================
//sinput   string                  t_trigger                  = "TRIGGER MANAGEMENT"; // ===========
//sinput   bool                  trigger_use_Pips           = false;   // Use Pips
//sinput   double                  trade_MIN_pips             = 1;       // Minimo de pips para abrir posição
//sinput   bool                  trigger_UseHeatMap1        = false;   // Use Heat Map
//sinput   ENUM_TIMEFRAMES       trigger_TF_HM1             = 240;     // TimeFrame para Heat Map  
//sinput   double                trade_MIN_HeatMap1         = 0.03;    // Minimo % do HeatMap para abrir posição
//sinput   bool                  trigger_use_bidratio       = false;   // Use BidRatio filtro
//sinput   double                  trigger_buy_bidratio       = 60;      // % Nivel para abrir Buy
//sinput   double                  trigger_sell_bidratio      = 40;      // % Nivel para abrir Sell
//sinput   ENUM_TIMEFRAMES TF_2                               = 1;      // BidRatio Time Frame
//sinput   int Period_2                                       = 4;       // BidRatio Period
//sinput   bool                  trigger_use_relstrength    = false;   // Use Relative Strength filtro (Base)
//sinput   double                  trigger_buy_relstrength    = 3.0;     // Strenth para abrir Buy
//sinput   double                  trigger_sell_relstrength   =-3.0;     // Strength para abrir Sell
//sinput   bool                  trigger_use_buysellratio   = false;   // Use Buy/Sell Ratio filtro
//sinput   double                  trigger_buy_buysellratio   = 1.5;     // Nivel para abrir Buy
//sinput   double                  trigger_sell_buysellratio  =-1.5;     // Nivel para abrir Sell
//sinput   bool                  trigger_use_gap            = false;   // Use Gap filtro
//sinput   double                  trigger_gap_buy            = 2.00;    // Gap nivel para abrir Buy
//sinput   double                  trigger_gap_sell           = -2.00;   // Gap nivel para abrir Sell
// ====================================================================
//sinput   ENUM_TIMEFRAMES TF_1                               = 30;      // Heat Map Time Frame
//sinput   int Period_1                                       = 4;       // Heat Map Period
//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.01;    // 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.02;    // 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.03;    // 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.04;    // 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.05;    // Minimum % HeatMap5 to open position
// ====================================================================
//sinput   bool                 trigger_Moving_Average1     = false;   // Use Média Movel 12
//sinput   int                    trade_Period_Moving_Average1= 12;      // Periodo Média Movel 12
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average2     = false;   // Use a Média Móvel 12
//sinput   int                    trade_Period_Moving_Average2= 12;      // Período de Média Móvel 12
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average3     = false;   // Use Média Movel 12
//sinput   int                    trade_Period_Moving_Average3= 12;      // Periodo Média Movel 12
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average4     = false;   // Use a Média Móvel 21
//sinput   int                    trade_Period_Moving_Average4= 21;      // Período de Média Móvel 21
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average5     = false;   // Use a Média Móvel 21
//sinput   int                    trade_Period_Moving_Average5= 21;      // Período de Média Móvel 21
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average6     = false;   // Use Média Movel 21
//sinput   int                    trade_Period_Moving_Average6= 21;      // Periodo Média Movel 21
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average7     = false;   // Use a Média Móvel 30
//sinput   int                    trade_Period_Moving_Average7= 30;      // Período de Média Móvel 30
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average8     = false;   // Use Média Movel 30
//sinput   int                    trade_Period_Moving_Average8= 30;      // Periodo Média Movel 30
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average9     = false;   // Use a Média Móvel 30
//sinput   int                    trade_Period_Moving_Average9= 30;      // Período de Média Móvel 30
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                 trigger_Moving_Average10    = false;   // Use a Média Móvel 50
//sinput   int                   trade_Period_Moving_Average10= 50;      // Período de Média Móvel 50
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                trigger_Moving_Average11     = false;   // Use Média Movel 50
//sinput   int                   trade_Period_Moving_Average11= 50;      // Periodo Média Movel 50
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                trigger_Moving_Average12     = false;   // Use a Média Móvel 50
//sinput   int                   trade_Period_Moving_Average12= 50;      // Período de Média Móvel 50
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                trigger_Moving_Average13     = false;   // Use Média Movel 100
//sinput   int                   trade_Period_Moving_Average13= 100;     // Periodo Média Movel 100
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                trigger_Moving_Average14     = false;   // Use a Média Móvel 100
//sinput   int                   trade_Period_Moving_Average14= 100;     // Período de Média Móvel 100
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                trigger_Moving_Average15     = false;   // Use a Média Móvel 100
//sinput   int                   trade_Period_Moving_Average15= 100;     // Período de Média Móvel 100
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
//sinput   bool                trigger_Candle_Direction     = false;   //Use a direção da vela
// ====================================================================
//sinput   bool                  UseCCI                     = false;   // Use CCI 
//sinput   int                     trade_Period_CCI1          = 14;      // 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                  UseCCI2                    = false;   // Use CCI 
//sinput   int                     trade_Period_CCI2          = 14;      // 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                  UseCCI3                    = false;   // Use CCI 
//sinput   int                     trade_Period_CCI3          = 14;      // CCI Periodo
//sinput   double                  trigger_CCI_CloseBuy1_23   = 100;    // Nível de Compra CCI
//sinput   double                  trigger_CCI_CloseSell1_23  = -100;     // Nível de Venda CCI
// ====================================================================
//sinput   bool                  UseRSI                     = false;   // Use RSI 
//sinput   int                     trade_Period_RSI1          = 14;      // RSI Periodo
//sinput   bool                  UseRSI2                    = false;   // Use RSI 
//sinput   int                     trade_Period_RSI2          = 14;      // RSI Periodo
//sinput   bool                  UseRSI3                    = false;   // Use RSI 
//sinput   int                     trade_Period_RSI3          = 14;      // RSI Periodo
// ====================================================================
//--- 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                 = 12;      // Fast EMA Period
//input int                        SlowPeriod                 = 21;      // Slow EMA Period
//input int                        SignPeriod                 = 30;       // 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                = 21;      // Fast EMA Period
//input int                        SlowPeriod1                = 30;      // Slow EMA Period
//input int                        SignPeriod1                = 50;       // 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                 = 50;      // Slow EMA Period
//input int                       SignPeriod2                 = 100;       // 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;
// ====================================================================
sinput   string                 t_basket                    = "BASKET MANAGEMENT"; // ===========
sinput double                   lot                         = 0.10;      // Lote
sinput int                      MaxTrades                   = 1;         // Max. trades por par
//sinput int                    MaxTotalTrades              = 0;         // Max. total de trades geral
sinput double                   MaxSpread                   = 5.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                       = 0;         // 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                      = 50;        // Takeprofit porcentagem adr(10) 0=None
sinput double                   Adr1sl                      = 0;         // Stoploss adr porcentagem adr(10) 0 = None
//sinput int                    StopLoss                    = 0;         // Pare depois de tantas cestas perdedoras
//sinput bool                   OnlyAddProfit               = false;     // Apenas adiciona negociações no lucro
sinput bool                     CloseAllSession             = false;     // Fechar todas as negociações após a sessão(s)
// ====================================================================
//sinput   string                 t_time                      = "TIME MANAGEMENT"; // ===========
//sinput bool                   UseSession1                 = true;      // Sessão Londres
//sinput string                   sess1start                  = "00:00";   // Inicio sessão 05:00
//sinput string                   sess1end                    = "23:59";   // Fim sessão 14:00
//sinput string                   sess1comment                = "LONDRES"; // Comentário
//sinput bool                   UseSession2                 = false;     // Sessão Tokio
//sinput string                   sess2start                  = "21:00";   // Inicio sessão 21:00
//sinput string                   sess2end                    = "00:00";   // Fim sessão 05:00
//sinput string                   sess2comment                = "TOKYO";   // Comentário
//sinput bool                   UseSession3                 = false;     // Sessão Nova York
//sinput string                   sess3start                  = "10:00";   // Inicio sessão 10:00
//sinput string                   sess3end                    = "13:00";   // Fim sessão 18:00
//sinput string                   sess3comment                = "NOVA YORK";// Comentário
// ====================================================================
//sinput   string               t_chart                       = "CHART MANAGEMENT"; // ===========
//sinput ENUM_TIMEFRAMES        TimeFrame                     = 30;        //TEMPO GRÁFICO
//sinput string                 usertemplate                  = "Neural System";//TEMPLATE
//sinput int                    x_axis                      =-1;         // Esquerda X Direita
//sinput int                    y_axis                      = 50;        // Cima X Baixo
// ==================================================================== FIM CODIGO DESCRIÇÃO ESTRATÉGIA E.A
// ====================================================================
dbu                             DashUpdate                  = 0;       // Intervalo de atualização
int                             Magic_Number                = 1984;    // Número Mágico
bool                            autotrade                   = true;     // Auto Trade
// ====================================================================
string                           t_trigger                  = "TRIGGER MANAGEMENT"; // ===========
bool                             trigger_use_Pips           = true;      // Use Pips
double                           trade_MIN_pips             = 5;       // Minimo de pips para abrir posição
bool                             trigger_use_bidratio       = true;      // Use BidRatio filtro
double                           trigger_buy_bidratio       = 60;      // % Nivel para abrir Buy
double                           trigger_sell_bidratio      = 40;      // % Nivel para abrir Sell
ENUM_TIMEFRAMES                  TF_2                       = 240;      // BidRatio Time Frame
int                              Period_2                   = 2;       // BidRatio Period
bool                             trigger_use_relstrength    = true;      // Use Relative Strength filtro (Base)
double                           trigger_buy_relstrength    = 3.0;     // Strenth para abrir Buy
double                           trigger_sell_relstrength   =-3.0;     // Strength para abrir Sell
bool                             trigger_use_buysellratio   = true;      // Use Buy/Sell Ratio filtro
double                           trigger_buy_buysellratio   = 3.0;     // Nivel para abrir Buy
double                           trigger_sell_buysellratio  =-3.0;     // Nivel para abrir Sell
bool                             trigger_use_gap            = true;      // Use Gap filtro
double                           trigger_gap_buy            = 2.25;    // Gap nivel para abrir Buy
double                           trigger_gap_sell           = -2.25;   // Gap nivel para abrir Sell
bool                             trigger_UseHeatMap1        = false;      // Use Heat Map 1
ENUM_TIMEFRAMES                  trigger_TF_HM1             = 15;      // TimeFrame for Heat Map 1
double                           trade_MIN_HeatMap1         = 0.03;    // Minimum % HeatMap1 to open position
bool                             trigger_UseHeatMap2        = false;      // Use Heat Map 2
ENUM_TIMEFRAMES                  trigger_TF_HM2             = 30;      // TimeFrame for Heat Map 2
double                           trade_MIN_HeatMap2         = 0.03;    // Minimum % HeatMap2 to open position
bool                             trigger_UseHeatMap3        = false;      // Use Heat Map 3
ENUM_TIMEFRAMES                  trigger_TF_HM3             = 60;     // TimeFrame for Heat Map 3
double                           trade_MIN_HeatMap3         = 0.05;    // Minimum % HeatMap3 to open position
bool                             trigger_UseHeatMap4        = true;     // Use Heat Map 4
ENUM_TIMEFRAMES                  trigger_TF_HM4             = 240;    // TimeFrame for Heat Map 4
double                           trade_MIN_HeatMap4         = 0.05;    // Minimum % HeatMap4 to open position
bool                             trigger_UseHeatMap5        = false;     // Use Heat Map 5
ENUM_TIMEFRAMES                  trigger_TF_HM5             = 1440;   // TimeFrame for Heat Map 5
double                           trade_MIN_HeatMap5         = 0.05;    // Minimum % HeatMap5 to open position
// ====================================================================
ENUM_TIMEFRAMES                  TF_1                       = 240;      // Heat Map Time Frame
int                              Period_1                   = 3;       // Heat Map Period
// ====================================================================
bool                            trigger_Moving_Average1     = true;      // Use Média Movel 12
int                             trade_Period_Moving_Average1= 15;      // Periodo Média Movel 12
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
bool                            trigger_Moving_Average2     = true;      // Use Média Móvel 12
int                             trade_Period_Moving_Average2= 15;      // Período de Média Móvel 12
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
bool                            trigger_Moving_Average3     = true;      // Use Média Móvel 12
int                             trade_Period_Moving_Average3= 15;      // Periodo Média Movel 12
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
bool                            trigger_Moving_Average4     = true;      // Use Média Movel 21
int                             trade_Period_Moving_Average4= 30;      // Período de Média Móvel 21
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
bool                            trigger_Moving_Average5     = true;      // Use Média Móvel 21
int                             trade_Period_Moving_Average5= 30;      // Período de Média Móvel 21
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
bool                            trigger_Moving_Average6     = true;      // Use Média Movel 21 
int                             trade_Period_Moving_Average6= 30;      // Periodo Média Movel 21
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
bool                            trigger_Moving_Average7     = true;      // Use Média Móvel 30
int                             trade_Period_Moving_Average7= 45;      // Período de Média Móvel 30
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe 
bool                            trigger_Moving_Average8     = true;      // Use Média Móvel 30
int                             trade_Period_Moving_Average8= 45;      // Periodo Média Movel 30
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe 
bool                            trigger_Moving_Average9     = true;      // Use Média Movel 30 
int                             trade_Period_Moving_Average9= 45;      // Período de Média Móvel 30
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
bool                            trigger_Moving_Average10    = true;     // Use Média Móvel 50
int                            trade_Period_Moving_Average10= 60;      // Período de Média Móvel 50
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe 
bool                            trigger_Moving_Average11    = true;     // Use Média Móvel 50
int                            trade_Period_Moving_Average11= 60;      // Periodo Média Movel 50
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe 
bool                            trigger_Moving_Average12    = true;     // Use Média Movel 50
int                            trade_Period_Moving_Average12= 60;      // Período de Média Móvel 50
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe 
bool                            trigger_Moving_Average13    = true;     // Use Média Móvel 100
int                            trade_Period_Moving_Average13= 75;     // Periodo Média Movel 100
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe 
bool                            trigger_Moving_Average14    = true;     // Use Média Móvel 100
int                            trade_Period_Moving_Average14= 75;     // Período de Média Móvel 100
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe 
bool                            trigger_Moving_Average15    = true;     // Use Média Movel 100 
int                            trade_Period_Moving_Average15= 75;     // Período de Média Móvel 100
//input ENUM_TIMEFRAMES TF                                  = PERIOD_CURRENT; //Moving Average Timeframe
// ====================================================================
bool                            trigger_Candle_Direction    = true;     //Use a direção da vela
// ====================================================================
bool                            UseCCI1                     = true;     // Use CCI TF 15
int                              trade_Period_CCI1          = 20;      // CCI Periodo
double                          trigger_CCI_CloseBuy1_21    = 100;    // Nível de Compra CCI
double                          trigger_CCI_CloseSell1_21   = -100;     // Nível de Venda CCI
bool                            UseCCI2                     = true;     // Use CCI TF 30
int                              trade_Period_CCI2          = 20;      // CCI Periodo
double                           trigger_CCI_CloseBuy1_22   = 100;    // Nível de Compra CCI
double                           trigger_CCI_CloseSell1_22  = -100;     // Nível de Venda CCI
bool                            UseCCI3                     = true;     // Use CCI TH H1
int                              trade_Period_CCI3          = 20;      // CCI Periodo
double                           trigger_CCI_CloseBuy1_23   = 100;    // Nível de Compra CCI
double                           trigger_CCI_CloseSell1_23  = -100;     // Nível de Venda CCI 
// ====================================================================
bool                            UseRSI1                     = true;     // Use RSI M30
int                              trade_Period_RSI1          = 14;      // RSI Periodo 
bool                            UseRSI2                     = true;     // Use RSI H1
int                              trade_Period_RSI2          = 14;      // RSI Periodo 
bool                            UseRSI3                     = true;     // Use RSI H4
int                              trade_Period_RSI3          = 14;      // RSI Periodo
// ==================================================================== 
//------------------------------------------- indicator parameters MACD
bool                            trigger_MACD1               = true;     // MACD
//extern string                  TimeFrames                 = "M1;M5;M15;M30;H1;H4;D1;W1;MN"; // Time frames to use (separated by ";" in the list)
int                              FastPeriod                 = 26;      // Fast EMA Period
int                              SlowPeriod                 = 12;      // Slow EMA Period
int                              SignPeriod                 = 9;       // Signal SMA Period
                                 ENUM_APPLIED_PRICE Price   = PRICE_OPEN;// MACD price
int                              BarToTest                  = 0;       // Bar to test
//--- indicator buffers
double    ExtMacdBuffer[];
double    ExtSignalBuffer[];
//--- right input parameters flag
bool      ExtParameters                                     = false;
//-------------------------------------------- indicator parameters MACD
bool                            trigger_MACD2               = true;     // 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)
int                              FastPeriod1                = 26;      // Fast EMA Period
int                              SlowPeriod1                = 12;      // Slow EMA Period
int                              SignPeriod1                = 9;       // Signal SMA Period
                                 ENUM_APPLIED_PRICE Price1  = PRICE_OPEN;// MACD price
 int                             BarToTest1                 = 0;       // Bar to test
//--- indicator buffers
double    ExtMacdBuffer1[];
double    ExtSignalBuffer1[];
//--- right input parameters flag
bool      ExtParameters1                                    = false;
//--------------------------------------------- indicator parameters MACD
bool                            trigger_MACD3               = true;     // 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)
int                             FastPeriod2                 = 26;      // Fast EMA Period
int                             SlowPeriod2                 = 12;      // Slow EMA Period
int                             SignPeriod2                 = 9;       // Signal SMA Period
                                ENUM_APPLIED_PRICE Price2   = PRICE_OPEN;// MACD price
 int                            BarToTest2                  = 0;       // Bar to test
//--- indicator buffers
double    ExtMacdBuffer2[];
double    ExtSignalBuffer2[];
//--- right input parameters flag
bool      ExtParameters2                                    = false;
// ====================================================================
// ====================================================================
string                          t_time                      = "TIME MANAGEMENT"; // ===========
bool                            UseSession1                 = true;      //Sessão Londres
string                          sess1start                  = "00:00";   // Inicio sessão 05:00
string                          sess1end                    = "23:59";   // Fim sessão 14:00
string                          sess1comment                = "LONDRES"; // Comentário
bool                            UseSession2                 = false;     //Sessão Tokio
string                          sess2start                  = "21:00";   // Inicio sessão 21:00
string                          sess2end                    = "05:00";   // Fim sessão 05:00
string                          sess2comment                = "TOKYO";   // Comentário
bool                            UseSession3                 = false;     //Sessão Nova York
string                          sess3start                  = "10:00";   // Inicio sessão 10:00
string                          sess3end                    = "18:00";   // Fim sessão 18:00
string                          sess3comment                = "NOVA YORK";// Comentário
// ====================================================================
int                             MaxTotalTrades              = 0;         // Max. total de trades geral
int                             Basket_Target               = 0;         // Take Profit em $ TOTAL
int                             Basket_StopLoss             = 0;         // Stop Loss em $ TOTAL
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
int                             StopLoss                    = 0;         // Pare depois de tantas cestas perdedoras
bool                            OnlyAddProfit               = false;     // Apenas adiciona negociações no lucro
// ====================================================================
string                          t_chart                       = "CHART MANAGEMENT"; // ===========
ENUM_TIMEFRAMES                 TimeFrame                     = 15;        //TEMPO GRÁFICO
string                          usertemplate                  = "Neural System";//TEMPLATE
int                             x_axis                      =-1;        // Esquerda X Direita
int                             y_axis                      = 185;       // Cima X Baixo
int                             z_axis                      = 0;
// ====================================================================
//---FIM---FIM---FIM---
int BeforeMin = 15;
int FontSize = 10;
string FontName = "Arial";
int ShiftX = 200;
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 ask;
   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 Signalcci1;
   double Signalcci2;
   double Signalcci3;
   double Signalcciup1;
   double Signalccidn1;
   double Signalcciup2;
   double Signalccidn2;
   double Signalcciup3;
   double Signalccidn3;
   //RSI   
   double Signalrsi;
   double Signalrsi1;
   double Signalrsi2;
   double Signalrsi3;
   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;
}; 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_D1;
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,4);
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;
}
int                             a_axis                      =-0;  // Esquerda X Direita
int                             b_axis                      =85;// Cima X Baixo
//SetPanel("BarSupMeter1",0,a_axis+1,b_axis-10,100,10,clrBlack,clrDimGray,1); //CAIXA CINZA FUNDO PAINEL              
//SetPanel("Bar",0,a_axis+1,b_axis-1,1230,448,clrBlack,clrDimGray,1);//CAIXA CINZA FUNDO NUNERICA
//SetPanel("Panel",0,a_axis+165,b_axis+450,100,120,clrBlack,clrDarkGray,1);//CAIXA BRANCA MAPA DE CALOR
//SetPanel("BottPanel",0,a_axis+817,b_axis+100,110,100,C'61,61,61',clrWhite,1);
SetPanel("BottPanel1",0,a_axis+0,b_axis-85,740,183,Black,clrYellow,1);//MONITOR DE TRADES SUPERIOR ESQUERDO
SetPanel("BottPanel2",0,a_axis+740,b_axis-85,210,183,Black,clrYellow,1);//MONITOR DE TRADES SUPERIOR CENTRAL
SetPanel("BottPanel3",0,a_axis+949,b_axis-85,275,183,Black,clrYellow,1);//MONITOR DE TRADES SUPERIOR DIREITO
SetPanel("BottPanel4",0,a_axis+1222,b_axis-85,83,183,Black,clrYellow,1);//MONITOR DE TRADES SUPERIOR ESQUERDO
SetPanel("BottPanel5",0,a_axis+50,b_axis-85,691,70,Black,clrYellow,1);//MONITOR DE TRADES SUPERIOR ESQUERDO
SetPanel("BottPanel6",0,a_axis+0,b_axis+99,1100,451,Black,clrYellow,1);//CAIXA AMARELA PARES INDICADORES
SetPanel("BottPanel7",0,a_axis+1100,b_axis+99,205,451,Black,clrYellow,1);//CAIXA AMARELA PARES LOTES/LUCRO
SetPanel("Spread"+IntegerToString(i),0,a_axis+170,(i*16)+b_axis+100,25,17,clrBlack,clrDimGray,1);
SetPanel("Pips"+IntegerToString(i),0,a_axis+195,(i*16)+b_axis+100,35,17,clrBlack,clrDimGray,1);
SetPanel("Adr"+IntegerToString(i),0,a_axis+230,(i*16)+b_axis+100,30,17,clrBlack,clrDimGray,1);
SetPanel("BidRatio"+IntegerToString(i),0,a_axis+260,(i*16)+b_axis+100,55,17,clrBlack,clrDimGray,1);
SetPanel("RelStr"+IntegerToString(i),0,a_axis+315,(i*16)+b_axis+100,15,17,clrBlack,clrDimGray,1);
SetPanel("BSRatio"+IntegerToString(i),0,a_axis+330,(i*16)+b_axis+100,25,17,clrBlack,clrDimGray,1);
SetPanel("PrevGAP"+IntegerToString(i),0,a_axis+355,(i*16)+b_axis+100,25,17,clrBlack,clrDimGray,1);
SetPanel("GAP123"+IntegerToString(i),0,a_axis+380,(i*16)+b_axis+100,40,17,clrBlack,clrDimGray,1);         
int                             aa_axis                      =120;  // Esquerda X Direita
int                             bb_axis                      = 85;// Cima X Baixo
SetPanel("HM1"+IntegerToString(i),0,aa_axis+300,(i*16)+bb_axis+100,30,17,BackGrnCol,clrDimGray,1);
SetPanel("HM2"+IntegerToString(i),0,aa_axis+330,(i*16)+bb_axis+100,30,17,BackGrnCol,clrDimGray,1);
SetPanel("HM3"+IntegerToString(i),0,aa_axis+360,(i*16)+bb_axis+100,30,17,BackGrnCol,clrDimGray,1);
SetPanel("HM4"+IntegerToString(i),0,aa_axis+390,(i*16)+bb_axis+100,30,17,BackGrnCol,clrDimGray,1);
SetPanel("HM5"+IntegerToString(i),0,aa_axis+420,(i*16)+bb_axis+100,30,17,BackGrnCol,clrDimGray,1);
//MEDIA MOVEL 
int                             c_axis                      =300;  // Esquerda X Direita
int                             d_axis                      = 85;// Cima X Baixo
SetPanel("B01"+IntegerToString(i),0,c_axis+450,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("B02"+IntegerToString(i),0,c_axis+470,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("B03"+IntegerToString(i),0,c_axis+490,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("B04"+IntegerToString(i),0,c_axis+510,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("B05"+IntegerToString(i),0,c_axis+530,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("B06"+IntegerToString(i),0,c_axis+550,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("B07"+IntegerToString(i),0,c_axis+570,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//             
SetPanel("B08"+IntegerToString(i),0,c_axis+590,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//                        
SetPanel("A01"+IntegerToString(i),0,c_axis+610,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("A02"+IntegerToString(i),0,c_axis+630,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//             
SetPanel("A03"+IntegerToString(i),0,c_axis+650,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//        
SetPanel("A04"+IntegerToString(i),0,c_axis+670,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("A05"+IntegerToString(i),0,c_axis+690,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("A06"+IntegerToString(i),0,c_axis+710,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
SetPanel("A07"+IntegerToString(i),0,c_axis+730,(i*16)+d_axis+100,20,17,clrBlack,clrDimGray,1);//
//CANDLE DIRECTION
int                             e_axis                      =100;  // Esquerda X Direita
int                             f_axis                      =85;// Cima X Baixo
SetPanel("A08"+IntegerToString(i),0,e_axis+654,(i*16)+f_axis+100,21,17,clrBlack,clrDimGray,1);//
SetPanel("A10"+IntegerToString(i),0,e_axis+674,(i*16)+f_axis+100,21,17,clrBlack,clrDimGray,1);//
SetPanel("A11"+IntegerToString(i),0,e_axis+694,(i*16)+f_axis+100,21,17,clrBlack,clrDimGray,1);//
//CCI-RSI-MACD
int                             g_axis                      =0;  // Esquerda X Direita
int                             h_axis                      =0;// Cima X Baixo
SetPanel("A12"+IntegerToString(i),0,g_axis+750,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//CCI
SetPanel("A13"+IntegerToString(i),0,g_axis+770,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//CCI
SetPanel("A14"+IntegerToString(i),0,g_axis+790,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//CCI
SetPanel("A15"+IntegerToString(i),0,g_axis+810,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//RSI
SetPanel("A16"+IntegerToString(i),0,g_axis+830,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//RSI   
SetPanel("A17"+IntegerToString(i),0,g_axis+850,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//RSI
SetPanel("A18"+IntegerToString(i),0,g_axis+870,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//MACD
SetPanel("A19"+IntegerToString(i),0,g_axis+890,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//MACD
SetPanel("A20"+IntegerToString(i),0,g_axis+910,(i*16)+h_axis+185,20,17,clrBlack,clrDimGray,1);//MACD

int                             s_axis                      =0;  // Esquerda X Direita
int                             t_axis                      =0;// Cima X Baixo      
SetPanel("H.M",0,s_axis+51,t_axis+17,150,20,Black,White,1);//CAIXA BRANCA SUPERIOR 
SetPanel("MM15",0,s_axis+201,t_axis+17,60,20,Black,White,1);//CAIXA BRANCA SUPERIOR
SetPanel("MM30",0,s_axis+261,t_axis+17,60,20,Black,White,1);//CAIXA BRANCA SUPERIOR
SetPanel("MM45",0,s_axis+321,t_axis+17,60,20,Black,White,1);//CAIXA BRANCA SUPERIOR
SetPanel("MM60",0,s_axis+381,t_axis+17,60,20,Black,White,1);//CAIXA BRANCA SUPERIOR
SetPanel("MM75",0,s_axis+441,t_axis+17,60,20,Black,White,1);//CAIXA BRANCA SUPERIOR
SetPanel("CANDLE DIRECTION",0,s_axis+501,t_axis+17,60,20,Black,White,1);//CAIXA BRANCA SUPERIOR
SetPanel("LUCRO",0,s_axis+1130,t_axis+163,48,20,Black,Yellow,1);//CAIXA AMARELA LUCRO
/*SetPanel("RSI",0,s_axis+870,t_axis+60,60,20,Black,White,1);//CAIXA BRANCA SUPERIOR
SetPanel("MACD",0,s_axis+930,t_axis+60,60,20,Black,White,1);//CAIXA BRANCA SUPERIOR */ 
int                             i_axis                      =5;  // Esquerda X Direita
int                             j_axis                      = 85;// Cima X Baixo      
SetPanel("A222"+IntegerToString(i),0,i_axis+160,(i*16)+j_axis+100,260,17,clrBlack,C'61,61,61',1);//COLUNA LOTES ORDEM LINHAS / LINHA VERDE
SetPanel("B2222"+IntegerToString(i),0,i_axis+160,(i*16)+j_axis+100,260,17,clrBlack,C'61,61,61',1);//COLUNA LOTES ORDEM LINHAS / LINHA VERDE
SetPanel("A2223"+IntegerToString(i),0,i_axis+560,(i*16)+j_axis+100,535,17,clrBlack,C'61,61,61',1);//COLUNA LOTES ORDEM LINHAS / LINHA VERDE
SetPanel("B22223"+IntegerToString(i),0,i_axis+560,(i*16)+j_axis+100,535,17,clrBlack,C'61,61,61',1);//COLUNA LOTES ORDEM LINHAS / LINHA VERDE

Create_Button(IntegerToString(i)+"Pair1",StringSubstr(TradePairs[i],0,6),50 ,17,x_axis+122 ,(i*16)+y_axis-1,Black,clrWhite);//COLUNA PARES PRIMEIRA COLUNA 
//SetText("Pr1"+IntegerToString(i),StringSubstr(TradePairs[i],0,7),x_axis+5,(i*16)+y_axis-1,clrWhite,8);//COLUNA PARES PRIMEIRA COLUNA         
int                             k_axis                      =5;  // Esquerda X Direita
int                             l_axis                      = 85;// Cima X Baixo
SetText("Spr1"+IntegerToString(i),0,k_axis+175,(i*16)+l_axis+102,Orange,8);//
SetText("Pp1"+IntegerToString(i),0,k_axis+195,(i*16)+l_axis+102,PipsColor,8);//
SetText("S1"+IntegerToString(i),0,k_axis+230,(i*16)+l_axis+102,Yellow,8);//     
SetText("PerChange",   trigger_TF_HM1+"       "+trigger_TF_HM2+"      "+trigger_TF_HM3+"      "+trigger_TF_HM4+"     "+trigger_TF_HM5,x_axis+60,y_axis-165,White,7);
SetText("MovingAverege1",trade_Period_Moving_Average1+"                 "+trade_Period_Moving_Average4+"                 "+trade_Period_Moving_Average7,x_axis+225,y_axis-130,White,7);
SetText("PeriodMovingAverege2",trade_Period_Moving_Average10+"                 "+trade_Period_Moving_Average13,x_axis+405,y_axis-130,White,7);
SetText("T.F.PeriodMovingAverege1",PERIOD_M15+"    "+PERIOD_M30+"   "+PERIOD_H1,x_axis+205,y_axis-165,White,7);
SetText("T.F.PeriodMovingAverege2",PERIOD_M15+"    "+PERIOD_M30+"   "+PERIOD_H1,x_axis+265,y_axis-165,White,7);
SetText("T.F.PeriodMovingAverege3",PERIOD_M15+"   "+PERIOD_M30+"    "+PERIOD_H1,x_axis+325,y_axis-165,White,7);
SetText("T.F.PeriodMovingAverege4",PERIOD_M15+"    "+PERIOD_M30+"   "+PERIOD_H1,x_axis+385,y_axis-165,White,7);
SetText("T.F.PeriodMovingAverege5",PERIOD_M15+"    "+PERIOD_M30+"   "+PERIOD_H1,x_axis+445,y_axis-165,White,7);
SetText("PeriodCCI1",trade_Period_CCI1+"    "+trade_Period_CCI2+"  "+trade_Period_CCI3,x_axis+565,y_axis-130,White,7);
SetText("T.F.PeriodCCI",PERIOD_M15+"   "+PERIOD_M30+"   "+PERIOD_H1,x_axis+565,y_axis-165,White,7);
SetText("PeriodRSI1",trade_Period_RSI1+"   "+trade_Period_RSI2+"    "+trade_Period_RSI3,x_axis+625,y_axis-130,White,7);
SetText("T.F.PeriodRSI",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+625,y_axis-165,White,7);
SetText("PeriodMACD1",FastPeriod+"   "+FastPeriod1+"    "+FastPeriod2,x_axis+685,y_axis-130,White,7);
SetText("T.F.PeriodMACD",PERIOD_M30+"   "+PERIOD_H1+"   "+PERIOD_H4,x_axis+685,y_axis-165,White,7);
int                             m_axis                      =-45;  // Esquerda X Direita
int                             n_axis                      = 185;// Cima X Baixo
SetText("bLots"+IntegerToString(i),DoubleToStr(blots[i],2),m_axis+1160,(i*16)+n_axis+2,C'61,61,61',8);
SetText("sLots"+IntegerToString(i),DoubleToStr(slots[i],2),m_axis+1190,(i*16)+n_axis+2,C'61,61,61',8);
SetText("bPos"+IntegerToString(i),DoubleToStr(bpos[i],0),m_axis+1220,(i*16)+n_axis+2,C'61,61,61',8);
SetText("sPos"+IntegerToString(i),DoubleToStr(spos[i],0),m_axis+1235,(i*16)+n_axis+2,C'61,61,61',8);
SetText("TProf"+IntegerToString(i),DoubleToStr(MathAbs(bprofit[i]),2),m_axis+1250,(i*16)+n_axis+2,C'61,61,61',8);
SetText("SProf"+IntegerToString(i),DoubleToStr(MathAbs(sprofit[i]),2),m_axis+1290,(i*16)+n_axis+2,C'61,61,61',8);
SetText("TtlProf"+IntegerToString(i),DoubleToStr(MathAbs(tprofit[i]),2),m_axis+1320,(i*16)+n_axis+2,C'61,61,61',8);

SetText("TotProf",DoubleToStr(MathAbs(totalprofit),2),x_axis+1140,y_axis-20,ProfitColor1,12);//CAIXA GAIN/LOOS TOTAL 

//Create_Button(IntegerToString(i)+"Pair2",StringSubstr(TradePairs[i],0,6),50 ,17,x_axis+930 ,(i*16)+y_axis-0,Black,clrWhite); //COLUNA PARES SEGUNDA COLUNA
//Create_Button(i+"Hold","~",18 ,17,x_axis+915,(i*16)+y_axis-1,C'35,35,35',clrAqua);

Create_Button(i+"BUY","BUY",40 ,17,x_axis+0,(i*16)+y_axis-1,Black,clrLime);           
Create_Button(i+"SELL","SELL",40 ,17,x_axis+40 ,(i*16)+y_axis-1,Black,clrRed);
Create_Button(i+"CLOSE","CLOSE",40 ,17,x_axis+80,(i*16)+y_axis-1,Black,clrYellow);
}
/*int                             q_axis                      =480;  // Esquerda X Direita
int                             r_axis                      =-55;// Cima X Baixo
SetText("TPr","TakeProfit =$ "+DoubleToStr(Basket_Target,0),q_axis+1,r_axis+55,Lime,8);
SetText("SL","StopLoss =$ -"+DoubleToStr(Basket_StopLoss,0),q_axis+1,r_axis+65,Red,8);
SetText("Highest","Highest= "+DoubleToStr(SymbolMaxHi,2)+" ("+DoubleToStr(PercentFloatingSymbol,2)+"%)",q_axis+100,r_axis+55,BullColor,8);
SetText("Lowest","Drawdown= "+DoubleToStr(SymbolMaxDD,2)+" ("+DoubleToStr(PercentMaxDDSymbol,2)+"%)",q_axis+100,r_axis+65,BearColor,8);
SetText("Lock","Lock= "+DoubleToStr(currentlock,2),q_axis+230,r_axis+45,BullColor,8);
SetText("Won",IntegerToString(profitbaskets,2),q_axis+260,r_axis+55,BullColor,8);
SetText("Lost",IntegerToString(lossbaskets,2),q_axis+260,r_axis+65,BearColor,8);*/                         
//SetText("Symbol","Sprd    PFO     ADR     BidRatio     RStr   BSRatio  Prev",q_axis+60,r_axis-17,White,8);
//SetText("Sy","Gap       HeatMap",q_axis+335,r_axis-17,White,8);   
//SetText("Direct","Candle Direction",q_axis+770,r_axis-30,White,8);
//SetText("Trend","M5  M15  M30  H1  H4  ",q_axis+760,r_axis-17,White,7);
//SetText("TTr","Lotes             Ordens",q_axis+1003,r_axis-30,C'51,160,180',8);             
//SetText("Trades","Buy        Sell      Buy  Sell     Buy     Sell",q_axis+985,r_axis-17,C'51,160,180',8);

int                             s_axis                      =-970;  // Esquerda X Direita
int                             t_axis                      =-405;// Cima X Baixo       

//Basket Trades
int basket_x = x_axis + 1062 ;
int basket_y = y_axis - 193;
int i = 0;

//AUD
Create_Button(button_AUD_basket,"AUD",40 ,17,basket_x+0 ,basket_y+10,Black,clrWhite);//
Create_Button(button_AUD_basket_buy,"BUY",40 ,17,basket_x+40 ,basket_y+10,Black,clrLime);//
Create_Button(button_AUD_basket_sell,"SELL",40 ,17,basket_x+80 ,basket_y+10,Black,clrRed);//
Create_Button(button_AUD_basket_close,"CLOSE",40 ,17,basket_x+120 ,basket_y+10,Black,clrYellow);//
//CAD
i += 50;
Create_Button(button_CAD_basket,"CAD",40 ,17,basket_x+0 ,basket_y+25,Black,clrWhite);//
Create_Button(button_CAD_basket_buy,"BUY",40 ,17,basket_x+40 ,basket_y+25,Black,clrLime);//
Create_Button(button_CAD_basket_sell,"SELL",40 ,17,basket_x+80 ,basket_y+25,Black,clrRed);//
Create_Button(button_CAD_basket_close,"CLOSE",40 ,17,basket_x+120 ,basket_y+25,Black,clrYellow);//
//CHF
i += 50;
Create_Button(button_CHF_basket,"CHF",40 ,17,basket_x+0 ,basket_y+40,Black,clrWhite);//
Create_Button(button_CHF_basket_buy,"BUY",40 ,17,basket_x+40 ,basket_y+40,Black,clrLime);//
Create_Button(button_CHF_basket_sell,"SELL",40 ,17,basket_x+80 ,basket_y+40,Black,clrRed);//
Create_Button(button_CHF_basket_close,"CLOSE",40 ,17,basket_x+120 ,basket_y+40,Black,clrYellow);//
//EUR
i += 50;
Create_Button(button_EUR_basket,"EUR",40 ,17,basket_x+0 ,basket_y+55,Black,clrWhite);//
Create_Button(button_EUR_basket_buy,"BUY",40 ,17,basket_x+40 ,basket_y+55,Black,clrLime);//
Create_Button(button_EUR_basket_sell,"SELL",40 ,17,basket_x+80 ,basket_y+55,Black,clrRed);//
Create_Button(button_EUR_basket_close,"CLOSE",40 ,17,basket_x+120 ,basket_y+55,Black,clrYellow);//
//GBP
i += 50;
Create_Button(button_GBP_basket,"GBP",40 ,17,basket_x+0 ,basket_y+70,Black,clrWhite);//
Create_Button(button_GBP_basket_buy,"BUY",40 ,17,basket_x+40 ,basket_y+70,Black,clrLime);//
Create_Button(button_GBP_basket_sell,"SELL",40 ,17,basket_x+80 ,basket_y+70,Black,clrRed);//
Create_Button(button_GBP_basket_close,"CLOSE",40 ,17,basket_x+120 ,basket_y+70,Black,clrYellow);//
//JPY
i += 50;
Create_Button(button_JPY_basket,"JPY",40 ,17,basket_x+0 ,basket_y+85,Black,clrWhite);//
Create_Button(button_JPY_basket_buy,"BUY",40 ,17,basket_x+40 ,basket_y+85,Black,clrLime);//
Create_Button(button_JPY_basket_sell,"SELL",40 ,17,basket_x+80 ,basket_y+85,Black,clrRed);//
Create_Button(button_JPY_basket_close,"CLOSE",40 ,17,basket_x+120 ,basket_y+85,Black,clrYellow);//
//NZD
i += 50;
Create_Button(button_NZD_basket,"NZD",40 ,17,basket_x+0 ,basket_y+100,Black,clrWhite);//
Create_Button(button_NZD_basket_buy,"BUY",40 ,17,basket_x+40 ,basket_y+100,Black,clrLime);//
Create_Button(button_NZD_basket_sell,"SELL",40 ,17,basket_x+80 ,basket_y+100,Black,clrRed);//
Create_Button(button_NZD_basket_close,"CLOSE",40 ,17,basket_x+120 ,basket_y+100,Black,clrYellow);//
//USD
i += 50;
Create_Button(button_USD_basket,"USD",40 ,17,basket_x+0 ,basket_y+115,Black,clrWhite);//
Create_Button(button_USD_basket_buy,"BUY",40 ,17,basket_x+40 ,basket_y+115,Black,clrLime);//
Create_Button(button_USD_basket_sell,"SELL",40 ,17,basket_x+80 ,basket_y+115,Black,clrRed);//
Create_Button(button_USD_basket_close,"CLOSE",40 ,17,basket_x+120 ,basket_y+115,Black,clrYellow);//  

int                             mm_axis                      =0;  // Esquerda X Direita
int                             nn_axis                      =0;// Cima X Baixo
Create_Button("button_trigger_use_PARES","Pares",50 ,17,mm_axis+1 ,nn_axis+0,Black,White);//PARES FAKE
Create_Button("button_trigger_use_SPR","Spread",50 ,17,mm_axis+1 ,nn_axis+17,Black,White);//SPR FAKE
Create_Button("button_trigger_use_Pips","Pip",50 ,17,mm_axis+1 ,nn_axis+34,Black,White);//
Create_Button("button_trigger_use_ADR","Adr",50 ,17,mm_axis+1 ,nn_axis+51,Black,White);//ADR FAKE          
Create_Button("button_trigger_use_bidratio","Bidratio",50 ,17,mm_axis+1 ,nn_axis+68,Black,White);
Create_Button("button_trigger_use_relstrength","R.Strength",50 ,17,mm_axis+1 ,nn_axis+85,Black,White);
Create_Button("button_trigger_use_buysellratio","B.S.Ratio",50 ,17,mm_axis+1 ,nn_axis+102,Black,White);
Create_Button("button_trigger_use_SigGapPrev","Gap.Prev",50 ,17,mm_axis+1 ,nn_axis+119,Black,White);//Prev.Gap FAKE
Create_Button("button_trigger_use_gap","Gap",50 ,17,mm_axis+1 ,nn_axis+136,Black,White);
int                             m_axis                      =0;  // Esquerda X Direita
int                             n_axis                      =0;// Cima X Baixo
Create_Button("button_FAKE","Heat Map",150 ,17,m_axis+50 ,n_axis+1,Black,White);//Heat Map FAKE
Create_Button("button_trigger_UseHeatMap1",".",30 ,17,m_axis+50 ,n_axis+34,Black,White);
Create_Button("button_trigger_UseHeatMap2",".",30 ,17,m_axis+80 ,n_axis+34,Black,White);
Create_Button("button_trigger_UseHeatMap3",".",30 ,17,m_axis+110 ,n_axis+34,Black,White);
Create_Button("button_trigger_UseHeatMap4",".",30 ,17,m_axis+140 ,n_axis+34,Black,White);
Create_Button("button_trigger_UseHeatMap5",".",30 ,17,m_axis+170 ,n_axis+34,Black,White);
   
Create_Button("button_FAKEMM12","Média Móvel",300 ,17,m_axis+200 ,n_axis+1,Black,White); //BOTAO FAKE
//MM12   
Create_Button("button_trigger_Moving_Average1",".",20 ,17,m_axis+200 ,n_axis+34,Black,White);//MM12 30
Create_Button("button_trigger_Moving_Average2",".",20 ,17,m_axis+220 ,n_axis+34,Black,White);//MM12 H1
Create_Button("button_trigger_Moving_Average3",".",20 ,17,m_axis+240 ,n_axis+34,Black,White);//MM12 H4 

//Create_Button("button_FAKEMM21","MM21",60 ,17,m_axis+510 ,n_axis+85,Black,White); //BOTAO FAKE
//MM21 
Create_Button("button_trigger_Moving_Average4",".",20 ,17,m_axis+260 ,n_axis+34,Black,White);//MM21 30
Create_Button("button_trigger_Moving_Average5",".",20 ,17,m_axis+280 ,n_axis+34,Black,White);//MM21 H1
Create_Button("button_trigger_Moving_Average6",".",20 ,17,m_axis+300 ,n_axis+34,Black,White);//MM21 H4

//Create_Button("button_FAKEMM30","MM30",60 ,17,m_axis+570 ,n_axis+60,Black,White); //BOTAO FAKE
//MM30
Create_Button("button_trigger_Moving_Average7",".",20 ,17,m_axis+320 ,n_axis+34,Black,White);//MM30 30
Create_Button("button_trigger_Moving_Average8",".",20 ,17,m_axis+340 ,n_axis+34,Black,White);//MM30 H1
Create_Button("button_trigger_Moving_Average9",".",20 ,17,m_axis+360 ,n_axis+34,Black,White);//MM30 H4

//Create_Button("button_FAKEMM50","MM50",60 ,17,x_axis+630 ,n_axis+60,Black,White); //BOTAO FAKE
//MM50
Create_Button("button_trigger_Moving_Average10",".",20 ,17,m_axis+380 ,n_axis+34,Black,White);//MM50 30
Create_Button("button_trigger_Moving_Average11",".",20 ,17,m_axis+400 ,n_axis+34,Black,White);//MM50 H1
Create_Button("button_trigger_Moving_Average12",".",20 ,17,m_axis+420 ,n_axis+34,Black,White);//MM50 H4

//Create_Button("button_FAKEMM100","MM100",60 ,17,m_axis+690 ,n_axis+60,Black,White); //BOTAO FAKE
//MM100
Create_Button("button_trigger_Moving_Average13",".",20 ,17,m_axis+440 ,n_axis+34,Black,White);//MM100 30
Create_Button("button_trigger_Moving_Average14",".",20 ,17,m_axis+460 ,n_axis+34,Black,White);//MM100 H1
Create_Button("button_trigger_Moving_Average15",".",20 ,17,m_axis+480 ,n_axis+34,Black,White);//MM100 H4

Create_Button("button_trigger_Candle_DirectionFAKE","Candle D",60 ,17,m_axis+500 ,n_axis+1,Black,White); //BOTAO FAKE
Create_Button("button_trigger_Candle_Direction",".",60 ,17,m_axis+500 ,n_axis+34,Black,White);
Create_Button("button_1","CCI",60 ,17,m_axis+560 ,n_axis+1,Black,White);//CCI FAKE
Create_Button("button_2","RSI",60 ,17,m_axis+620 ,n_axis+1,Black,White);//RSI FAKE
Create_Button("button_3","MACD",60 ,17,m_axis+680 ,n_axis+1,Black,White);//MACD FAKE
Create_Button("button_UseCCI1",".",20 ,17,m_axis+560 ,n_axis+34,Black,White);//CCI M30 
Create_Button("button_UseCCI2",".",20 ,17,m_axis+580 ,n_axis+34,Black,White);//CCI H1
Create_Button("button_UseCCI3",".",20 ,17,m_axis+600 ,n_axis+34,Black,White);//CCI H4
Create_Button("button_UseRSI1",".",20 ,17,m_axis+620 ,n_axis+34,Black,White);//RSI M30
Create_Button("button_UseRSI2",".",20 ,17,m_axis+640 ,n_axis+34,Black,White);//RSI H1
Create_Button("button_UseRSI3",".",20 ,17,m_axis+660 ,n_axis+34,Black,White);//RSI H4
Create_Button("button_trigger_MACD1",".",20 ,17,m_axis+680 ,n_axis+34,Black,White);//MACD M30
Create_Button("button_trigger_MACD2",".",20 ,17,m_axis+700 ,n_axis+34,Black,White);//MACD H1
Create_Button("button_trigger_MACD3",".",20 ,17,m_axis+720 ,n_axis+34,Black,White);//MACD H4
//SESSOES
int                             o_axis                      =1005;  // Esquerda X Direita
int                             p_axis                      =0;// Cima X Baixo
Create_Button("button_trigger_use_TRADING","",80 ,17,o_axis+218 ,p_axis+21,Black,White);//TRADING/CLOSE
Create_Button("button_autotrade","Manual",80 ,17,o_axis+218 ,p_axis+39,Black,clrGreen);//AUTOTRADE/MANUAL
Create_Button("button_UseSession1","LONDRES",80 ,17,o_axis+218 ,p_axis+57,Black,White);//SESSAO LONDRES
Create_Button("button_UseSession2","TOKIO",80 ,17,o_axis+218 ,p_axis+75,Black,White);//SESSAO TOKIO
Create_Button("button_UseSession3","N.YORK",80 ,17,o_axis+218 ,p_axis+93,Black,White);//SESSAO NOVA YORK
int                             oo_axis                      =1005;  // Esquerda X Direita
int                             pp_axis                      =0;// Cima X Baixo
Create_Button(button_close_basket_All,"CLOSE ALL",80 ,17,oo_axis+218 ,pp_axis+111,Black,clrWhite);//
Create_Button(button_close_basket_Prof,"CLOSE PROFIT",80 ,17,oo_axis+218 ,pp_axis+129,Black,clrLime);//
Create_Button(button_close_basket_Loss,"CLOSE LOSS",80 ,17,oo_axis+218 ,pp_axis+147,Black,clrRed);//
Create_Button(button_reset_ea,"RESET EA",80 ,17,oo_axis+218 ,pp_axis+165,Black,clrYellow);//
//SetPanel("button_GAIN/LOOS",0,x_axis+300,y_axis-145,75,20,clrBlack,White,1);//GAIN/LOOS
//=============================================================================================================     

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();
//GetTrendChange1();
//GetTrendChange2();
//GetTrendChange3();
GetCommodity();
GetCommodity1();
GetCommodity2();
GetCommodity3();
//ChngBoxCol(0,0);

if (newday != iTime("EURUSD"+postfix,PERIOD_D1 ,0)) 
{
GetAdrValues();
PlotAdrValues();
newday = iTime("EURUSD"+postfix,PERIOD_D1,0);
}

if (DashUpdate == 0 || (DashUpdate == 1 && newm1 != iTime("EURUSD"+postfix,PERIOD_M1,0)) || (DashUpdate == 5 && newm1 != iTime("EURUSD"+postfix,PERIOD_M5,0)))
{

for(int i=0;i<ArraySize(TradePairs);i++) 
for(int a=0;a<5;a++)
{
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+425,(i*16)+y_axis+3,clrGray,7);
SetText("Percnt2"+IntegerToString(i),DoubleToStr(signals[i].Signalperc1,2),x_axis+455,(i*16)+y_axis+3,clrGray,7);
SetText("Percent3"+IntegerToString(i),DoubleToStr(signals[i].Signalperc2,2),x_axis+485,(i*16)+y_axis+3,clrGray,7);
SetText("Percent4"+IntegerToString(i),DoubleToStr(signals[i].Signalperc3,2),x_axis+515,(i*16)+y_axis+3,clrGray,7);
SetText("Percent5"+IntegerToString(i),DoubleToStr(signals[i].Signalperc4,2),x_axis+545,(i*16)+y_axis+3,clrGray,7); 

if(pairinfo[i].PipsSig==UP){SetObjText("Sigpips"+IntegerToString(i),CharToStr(217),x_axis+220,(i*16)+y_axis,clrLime,9);}
else if(pairinfo[i].PipsSig==DOWN){SetObjText("Sigpips"+IntegerToString(i),CharToStr(218),x_axis+220,(i*16)+y_axis,clrRed,9);}
int                             q_axis                      =120;  // Esquerda X Direita
int                             r_axis                      =185;// Cima X Baixo
//MEDIAS MOVEIS
      if(signals[i].SignalM01up==DOWN){SetObjText("MM12M15"+IntegerToString(i),CharToStr(200),q_axis+450,(i*16)+r_axis+1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM01up==UP){SetObjText("MM12M15"+IntegerToString(i),CharToStr(202),q_axis+450,(i*16)+r_axis+1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM02dn==DOWN){SetObjText("MM12M30"+IntegerToString(i),CharToStr(200),q_axis+450,(i*16)+r_axis+1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM02dn==UP){SetObjText("MM12M30"+IntegerToString(i),CharToStr(202),q_axis+450,(i*16)+r_axis+1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM03up==DOWN){SetObjText("MM12H1"+IntegerToString(i),CharToStr(200),q_axis+470,(i*16)+r_axis+1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM03up==UP){SetObjText("MM12H1"+IntegerToString(i),CharToStr(202),q_axis+470,(i*16)+r_axis+1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM04dn==DOWN){SetObjText("MM12H4"+IntegerToString(i),CharToStr(200),q_axis+470,(i*16)+r_axis+1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM04dn==UP){SetObjText("MM12H4"+IntegerToString(i),CharToStr(202),q_axis+470,(i*16)+r_axis+1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM05up==DOWN){SetObjText("MM12D1"+IntegerToString(i),CharToStr(236),q_axis+490,(i*16)+r_axis-1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM05up==UP){SetObjText("MM12D1"+IntegerToString(i),CharToStr(238),q_axis+490,(i*16)+r_axis-1,BearColor,12);}//06 MM12 
      if(signals[i].SignalM06dn==DOWN){SetObjText("MM12D1"+IntegerToString(i),CharToStr(236),q_axis+490,(i*16)+r_axis-1,BullColor,12);}//06 MM12 
      if(signals[i].SignalM06dn==UP){SetObjText("MM12D1"+IntegerToString(i),CharToStr(238),q_axis+490,(i*16)+r_axis-1,BearColor,12);}//06 MM12
      

      if(signals[i].SignalM07up==DOWN){SetObjText("MM21M15"+IntegerToString(i),CharToStr(200),q_axis+510,(i*16)+r_axis+1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM07up==UP){SetObjText("MM21M15"+IntegerToString(i),CharToStr(202),q_axis+510,(i*16)+r_axis+1,BearColor,12);}//07 MM21 
      if(signals[i].SignalM08dn==DOWN){SetObjText("MM21M30"+IntegerToString(i),CharToStr(200),q_axis+510,(i*16)+r_axis+1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM08dn==UP){SetObjText("MM21M30"+IntegerToString(i),CharToStr(202),q_axis+510,(i*16)+r_axis+1,BearColor,12);}//07 MM21 
      if(signals[i].SignalM09up==DOWN){SetObjText("MM21H1"+IntegerToString(i),CharToStr(200),q_axis+530,(i*16)+r_axis+1,BullColor,12);}//07 MM21  
      if(signals[i].SignalM09up==UP){SetObjText("MM21H1"+IntegerToString(i),CharToStr(202),q_axis+530,(i*16)+r_axis+1,BearColor,12);}//07 MM21 
      if(signals[i].SignalM10dn==DOWN){SetObjText("MM21H4"+IntegerToString(i),CharToStr(200),q_axis+530,(i*16)+r_axis+1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM10dn==UP){SetObjText("MM21H4"+IntegerToString(i),CharToStr(202),q_axis+530,(i*16)+r_axis+1,BearColor,12);}//07 MM21 
      if(signals[i].SignalM11up==DOWN){SetObjText("MM21D1"+IntegerToString(i),CharToStr(236),q_axis+550,(i*16)+r_axis-1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM11up==UP){SetObjText("MM21D1"+IntegerToString(i),CharToStr(238),q_axis+550,(i*16)+r_axis-1,BearColor,12);}//07 MM21  
      if(signals[i].SignalM12dn==DOWN){SetObjText("MM21D1"+IntegerToString(i),CharToStr(236),q_axis+550,(i*16)+r_axis-1,BullColor,12);}//07 MM21 
      if(signals[i].SignalM12dn==UP){SetObjText("MM21D1"+IntegerToString(i),CharToStr(238),q_axis+550,(i*16)+r_axis-1,BearColor,12);}//07 MM21  
 
      if(signals[i].SignalM13up==DOWN){SetObjText("MM30M15"+IntegerToString(i),CharToStr(200),q_axis+570,(i*16)+r_axis+1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM13up==UP){SetObjText("MM30M15"+IntegerToString(i),CharToStr(202),q_axis+570,(i*16)+r_axis+1,BearColor,12);}//03 MM30 
      if(signals[i].SignalM14dn==DOWN){SetObjText("MM30M30"+IntegerToString(i),CharToStr(200),q_axis+570,(i*16)+r_axis+1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM14dn==UP){SetObjText("MM30M30"+IntegerToString(i),CharToStr(202),q_axis+570,(i*16)+r_axis+1,BearColor,12);}//03 MM30 
      if(signals[i].SignalM15up==DOWN){SetObjText("MM30H1"+IntegerToString(i),CharToStr(200),q_axis+590,(i*16)+r_axis+1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM15up==UP){SetObjText("MM30H1"+IntegerToString(i),CharToStr(202),q_axis+590,(i*16)+r_axis+1,BearColor,12);}//03 MM30 
      if(signals[i].SignalM16dn==DOWN){SetObjText("MM30H4"+IntegerToString(i),CharToStr(200),q_axis+590,(i*16)+r_axis+1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM16dn==UP){SetObjText("MM30H4"+IntegerToString(i),CharToStr(202),q_axis+590,(i*16)+r_axis+1,BearColor,12);}//03 MM30 
      if(signals[i].SignalM17up==DOWN){SetObjText("MM30D1"+IntegerToString(i),CharToStr(236),q_axis+610,(i*16)+r_axis-1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM17up==UP){SetObjText("MM30D1"+IntegerToString(i),CharToStr(238),q_axis+610,(i*16)+r_axis-1,BearColor,12);}//03 MM30  
      if(signals[i].SignalM18dn==DOWN){SetObjText("MM30D1"+IntegerToString(i),CharToStr(236),q_axis+610,(i*16)+r_axis-1,BullColor,12);}//03 MM30 
      if(signals[i].SignalM18dn==UP){SetObjText("MM30D1"+IntegerToString(i),CharToStr(238),q_axis+610,(i*16)+r_axis-1,BearColor,12);}//03 MM30  

      if(signals[i].SignalM19up==DOWN){SetObjText("MM50M15"+IntegerToString(i),CharToStr(200),q_axis+630,(i*16)+r_axis+1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM19up==UP){SetObjText("MM50M15"+IntegerToString(i),CharToStr(202),q_axis+630,(i*16)+r_axis+1,BearColor,12);}//04 MM50 
      if(signals[i].SignalM20dn==DOWN){SetObjText("MM50M30"+IntegerToString(i),CharToStr(200),q_axis+630,(i*16)+r_axis+1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM20dn==UP){SetObjText("MM50M30"+IntegerToString(i),CharToStr(202),q_axis+630,(i*16)+r_axis+1,BearColor,12);}//04 MM50 
      if(signals[i].SignalM21up==DOWN){SetObjText("MM50H1"+IntegerToString(i),CharToStr(200),q_axis+650,(i*16)+r_axis+1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM21up==UP){SetObjText("MM50H1"+IntegerToString(i),CharToStr(202),q_axis+650,(i*16)+r_axis+1,BearColor,12);}//04 MM50  
      if(signals[i].SignalM22dn==DOWN){SetObjText("MM50H4"+IntegerToString(i),CharToStr(200),q_axis+650,(i*16)+r_axis+1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM22dn==UP){SetObjText("MM50H4"+IntegerToString(i),CharToStr(202),q_axis+650,(i*16)+r_axis+1,BearColor,12);}//04 MM50  
      if(signals[i].SignalM23up==DOWN){SetObjText("MM50D1"+IntegerToString(i),CharToStr(236),q_axis+670,(i*16)+r_axis-1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM23up==UP){SetObjText("MM50D1"+IntegerToString(i),CharToStr(238),q_axis+670,(i*16)+r_axis-1,BearColor,12);}//04 MM50  
      if(signals[i].SignalM24dn==DOWN){SetObjText("MM50D1"+IntegerToString(i),CharToStr(236),q_axis+670,(i*16)+r_axis-1,BullColor,12);}//04 MM50 
      if(signals[i].SignalM24dn==UP){SetObjText("MM50D1"+IntegerToString(i),CharToStr(238),q_axis+670,(i*16)+r_axis-1,BearColor,12);}//04 MM50
      
      if(signals[i].SignalM25up==DOWN){SetObjText("MM100M15"+IntegerToString(i),CharToStr(200),q_axis+690,(i*16)+r_axis+1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM25up==UP){SetObjText("MM100M15"+IntegerToString(i),CharToStr(202),q_axis+690,(i*16)+r_axis+1,BearColor,12);}//05 MM100 
      if(signals[i].SignalM26dn==DOWN){SetObjText("MM100M30"+IntegerToString(i),CharToStr(200),q_axis+690,(i*16)+r_axis+1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM26dn==UP){SetObjText("MM100M30"+IntegerToString(i),CharToStr(202),q_axis+690,(i*16)+r_axis+1,BearColor,12);}//05 MM100 
      if(signals[i].SignalM27up==DOWN){SetObjText("MM100H1"+IntegerToString(i),CharToStr(200),q_axis+710,(i*16)+r_axis+1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM27up==UP){SetObjText("MM100H1"+IntegerToString(i),CharToStr(202),q_axis+710,(i*16)+r_axis+1,BearColor,12);}//05 MM100  
      if(signals[i].SignalM28dn==DOWN){SetObjText("MM100H4"+IntegerToString(i),CharToStr(200),q_axis+710,(i*16)+r_axis+1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM28dn==UP){SetObjText("MM100H4"+IntegerToString(i),CharToStr(202),q_axis+710,(i*16)+r_axis+1,BearColor,12);}//05 MM100   
      if(signals[i].SignalM29up==DOWN){SetObjText("MM100D1"+IntegerToString(i),CharToStr(236),q_axis+730,(i*16)+r_axis-1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM29up==UP){SetObjText("MM100D1"+IntegerToString(i),CharToStr(238),q_axis+730,(i*16)+r_axis-1,BearColor,12);}//05 MM100  
      if(signals[i].SignalM30dn==DOWN){SetObjText("MM100D1"+IntegerToString(i),CharToStr(236),q_axis+730,(i*16)+r_axis-1,BullColor,12);}//05 MM100 
      if(signals[i].SignalM30dn==UP){SetObjText("MM100D1"+IntegerToString(i),CharToStr(238),q_axis+730,(i*16)+r_axis-1,BearColor,12);}//05 MM100
      
//CANDLE DIRECTION
      if(signals[i].SignalCDm1==UP){SetObjText("CDM1"+IntegerToString(i),CharToStr(127),q_axis+920,(i*16)+r_axis-1,BullColor,13);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm1==DOWN){SetObjText("CDM1"+IntegerToString(i),CharToStr(127),q_axis+920,(i*16)+r_axis-1,BearColor,13);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm5==UP){SetObjText("CDM5"+IntegerToString(i),CharToStr(127),q_axis+930,(i*16)+r_axis-1,BullColor,13);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm5==DOWN){SetObjText("CDM5"+IntegerToString(i),CharToStr(127),q_axis+930,(i*16)+r_axis-1,BearColor,13);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm15==UP){SetObjText("CDM15"+IntegerToString(i),CharToStr(127),q_axis+940,(i*16)+r_axis-1,BullColor,13);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm15==DOWN){SetObjText("CDM15"+IntegerToString(i),CharToStr(127),q_axis+940,(i*16)+r_axis-1,BearColor,13);}//08 CANDLE DIRECTION      
      if(signals[i].SignalCDm30==UP){SetObjText("CDM30"+IntegerToString(i),CharToStr(127),q_axis+950,(i*16)+r_axis-1,BullColor,13);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDm30==DOWN){SetObjText("CDM30"+IntegerToString(i),CharToStr(127),q_axis+950,(i*16)+r_axis-1,BearColor,13);}//08 CANDLE DIRECTION
      if(signals[i].SignalCDh1==UP){SetObjText("CDH1"+IntegerToString(i),CharToStr(127),q_axis+960,(i*16)+r_axis-1,BullColor,13);}//09 CANDLE DIRECTION
      if(signals[i].SignalCDh1==DOWN){SetObjText("CDH1"+IntegerToString(i),CharToStr(127),q_axis+960,(i*16)+r_axis-1,BearColor,13);}//09 CANDLE DIRECTION
      if(signals[i].SignalCDh4==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),q_axis+970,(i*16)+r_axis-1,BullColor,13);}//10 CANDLE DIRECTION
      if(signals[i].SignalCDh4==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),q_axis+970,(i*16)+r_axis-1,BearColor,13);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDd1==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-1,BullColor,13);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDd1==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-1,BearColor,13);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDw1==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-1,BullColor,13);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDw1==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-1,BearColor,13);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDmn==UP){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-1,BullColor,13);}//10 CANDLE DIRECTION
      //if(signals[i].SignalCDmn==DOWN){SetObjText("CDH4"+IntegerToString(i),CharToStr(127),x_axis+810,(i*16)+y_axis-1,BearColor,13);}//10 CANDLE DIRECTION
      //CCI-RSI-MACD
      if(signals[i].Signalcciup1==UP){SetObjText("CCIup1"+IntegerToString(i),CharToStr(246),q_axis+745,(i*16)+r_axis-1,BullColor,12);}//02 CCI M30
      if(signals[i].Signalccidn1==DOWN){SetObjText("CCIdn1"+IntegerToString(i),CharToStr(248),q_axis+755,(i*16)+r_axis-1,BearColor,12);}//02 CCI M30
      if(signals[i].Signalcciup2==UP){SetObjText("CCIup2"+IntegerToString(i),CharToStr(246),q_axis+765,(i*16)+r_axis-1,BullColor,12);}//02 CCI H1
      if(signals[i].Signalccidn2==DOWN){SetObjText("CCIdn2"+IntegerToString(i),CharToStr(248),q_axis+775,(i*16)+r_axis-1,BearColor,12);}//02 CCI H1
      if(signals[i].Signalcciup3==UP){SetObjText("CCIup3"+IntegerToString(i),CharToStr(246),q_axis+785,(i*16)+r_axis-1,BullColor,12);}//02 CCI H4
      if(signals[i].Signalccidn3==DOWN){SetObjText("CCIdn3"+IntegerToString(i),CharToStr(248),q_axis+795,(i*16)+r_axis-1,BearColor,12);}//02 CCI H4

      if(signals[i].Signalrsiup1==UP){SetObjText("RSIup1"+IntegerToString(i),CharToStr(246),x_axis+930,(i*16)+y_axis+1,BullColor,15);}//01 RSI  M30
      if(signals[i].Signalrsidn1==DOWN){SetObjText("RSIdn1"+IntegerToString(i),CharToStr(248),x_axis+930,(i*16)+y_axis-1,BearColor,15);}//01 RSI  M30 
      if(signals[i].Signalrsiup2==UP){SetObjText("RSIup2"+IntegerToString(i),CharToStr(246),x_axis+950,(i*16)+y_axis+1,BullColor,15);}//01 RSI  H1
      if(signals[i].Signalrsidn2==DOWN){SetObjText("RSIdn2"+IntegerToString(i),CharToStr(248),x_axis+950,(i*16)+y_axis-1,BearColor,15);}//01 RSI  H1
      if(signals[i].Signalrsiup3==UP){SetObjText("RSIup3"+IntegerToString(i),CharToStr(246),x_axis+970,(i*16)+y_axis+1,BullColor,15);}//01 RSI  H4
      if(signals[i].Signalrsidn3==DOWN){SetObjText("RSIdn3"+IntegerToString(i),CharToStr(248),x_axis+970,(i*16)+y_axis-1,BearColor,15);}//01 RSI  H4

      if(signals[i].SignalMACDup01==UP){SetObjText("MACDup1"+IntegerToString(i),CharToStr(246),x_axis+985,(i*16)+y_axis+1,BullColor,15);}//MACD M30
      if(signals[i].SignalMACDdn01==DOWN){SetObjText("MACDdn1"+IntegerToString(i),CharToStr(248),x_axis+985,(i*16)+y_axis-1,BearColor,15);}//MACD M30
      if(signals[i].SignalMACDup02==UP){SetObjText("MACDup2"+IntegerToString(i),CharToStr(246),x_axis+1005,(i*16)+y_axis+1,BullColor,15);}//MACD H1
      if(signals[i].SignalMACDdn02==DOWN){SetObjText("MACDdn2"+IntegerToString(i),CharToStr(248),x_axis+1005,(i*16)+y_axis-1,BearColor,15);}//MACD H1  
      if(signals[i].SignalMACDup03==UP){SetObjText("MACDup3"+IntegerToString(i),CharToStr(246),x_axis+1025,(i*16)+y_axis+1,BullColor,15);}//MACD H4
      if(signals[i].SignalMACDdn03==DOWN){SetObjText("MACDdn3"+IntegerToString(i),CharToStr(248),x_axis+1025,(i*16)+y_axis-1,BearColor,15);}//MACD H4

SetText("BidRat"+IntegerToString(i),DoubleToStr(signals[i].ratio,1)+"%",x_axis+265,(i*16)+y_axis+2,Colorstr(signals[i].ratio),8); 
SetText("RelStrgth"+IntegerToString(i),DoubleToStr(signals[i].calc,0),x_axis+320,(i*16)+y_axis+2,Colorsync(signals[i].calc),8);
SetText("BSRat"+IntegerToString(i),DoubleToStr(signals[i].strength5,1),x_axis+335,(i*16)+y_axis+2,ColorBSRat(signals[i].strength5),8);
SetText("PrevGap"+IntegerToString(i),DoubleToStr(signals[i].strength8,1),x_axis+360,(i*16)+y_axis+2,clrGray,8);
SetText("gap"+signals[i].symbol, DoubleToStr(signals[i].strength_Gap,1),x_axis+385,(i*16)+y_axis+2,ColorGap(signals[i].strength_Gap),8);

if(signals[i].SigRatioPrev==UP){SetObjText("Sig"+IntegerToString(i),CharToStr(217),x_axis+300,(i*16)+y_axis+2,clrLime,10);}
else if(signals[i].SigRatioPrev==DOWN){SetObjText("Sig"+IntegerToString(i),CharToStr(218),x_axis+300,(i*16)+y_axis+2,clrRed,10);}

if(signals[i].SigGapPrev==UP){SetObjText("GapSig"+IntegerToString(i),CharToStr(217),x_axis+410,(i*16)+y_axis+2,clrLime,10);}
else if(signals[i].SigGapPrev==DOWN){SetObjText("GapSig"+IntegerToString(i),CharToStr(218),x_axis+410,(i*16)+y_axis+2,clrRed,10);}
else {SetObjText("GapSig"+IntegerToString(i),CharToStr(251),x_axis+410,(i*16)+y_axis+2,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 )//15
&&(signals[i].SignalM03up<0||trigger_Moving_Average2==false )//15
&&(signals[i].SignalM05up<0||trigger_Moving_Average3==false )//15

&&(signals[i].SignalM07up<0||trigger_Moving_Average4==false )//30
&&(signals[i].SignalM09up<0||trigger_Moving_Average5==false )//30
&&(signals[i].SignalM11up<0||trigger_Moving_Average6==false )//30

&&(signals[i].SignalM13up<0||trigger_Moving_Average7==false )//45
&&(signals[i].SignalM15up<0||trigger_Moving_Average8==false )//45
&&(signals[i].SignalM17up<0||trigger_Moving_Average9==false )//45

&&(signals[i].SignalM19up<0||trigger_Moving_Average10==false )//60
&&(signals[i].SignalM21up<0||trigger_Moving_Average11==false )//60
&&(signals[i].SignalM23up<0||trigger_Moving_Average12==false )//60

&&(signals[i].SignalM25up<0||trigger_Moving_Average13==false )//75
&&(signals[i].SignalM27up<0||trigger_Moving_Average14==false )//75
&&(signals[i].SignalM29up<0||trigger_Moving_Average15==false )//75

/*&& (signals[i].SignalM01up>0||trigger_Moving_Average1==false )//12 M30
&& (signals[i].SignalM07up>0||trigger_Moving_Average4==false )//21 M30 
&& (signals[i].SignalM13up>0||trigger_Moving_Average7==false )//30 M30
&& (signals[i].SignalM19up>0||trigger_Moving_Average10==false )//50 M30
&& (signals[i].SignalM25up>0||trigger_Moving_Average13==false )//100 M30

&&(signals[i].SignalM03up>0||trigger_Moving_Average2==false )//12 H1
&& (signals[i].SignalM09up>0||trigger_Moving_Average5==false )//21 H1
&& (signals[i].SignalM15up>0||trigger_Moving_Average8==false )//30 H1
&& (signals[i].SignalM21up>0||trigger_Moving_Average11==false )//50 H1
&& (signals[i].SignalM27up>0||trigger_Moving_Average14==false )//100 H1

&& (signals[i].SignalM05up>0||trigger_Moving_Average3==false )//12 H4
&& (signals[i].SignalM11up>0||trigger_Moving_Average6==false )//21 H4 
&& (signals[i].SignalM17up>0||trigger_Moving_Average9==false )//30 H4
&& (signals[i].SignalM23up>0||trigger_Moving_Average12==false )//50 H4
&& (signals[i].SignalM29up>0||trigger_Moving_Average15==false )//100 H4*/

&&(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))

{
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 )//15
&&(signals[i].SignalM04dn>0||trigger_Moving_Average2==false )//15
&&(signals[i].SignalM06dn>0||trigger_Moving_Average3==false )//15

&&(signals[i].SignalM08dn>0||trigger_Moving_Average4==false )//30
&&(signals[i].SignalM10dn>0||trigger_Moving_Average5==false )//30
&&(signals[i].SignalM12dn>0||trigger_Moving_Average6==false )//30

&&(signals[i].SignalM14dn>0||trigger_Moving_Average7==false )//45
&&(signals[i].SignalM16dn>0||trigger_Moving_Average8==false )//45
&&(signals[i].SignalM18dn>0||trigger_Moving_Average9==false )//45

&&(signals[i].SignalM20dn>0||trigger_Moving_Average10==false )//60
&&(signals[i].SignalM22dn>0||trigger_Moving_Average11==false )//60
&&(signals[i].SignalM24dn>0||trigger_Moving_Average12==false )//60

&&(signals[i].SignalM26dn>0||trigger_Moving_Average13==false )//75
&&(signals[i].SignalM28dn>0||trigger_Moving_Average14==false )//75
&&(signals[i].SignalM30dn>0||trigger_Moving_Average15==false )//75

/*&& (signals[i].SignalM02dn<0||trigger_Moving_Average1==false )//12 M30
&& (signals[i].SignalM08dn<0||trigger_Moving_Average4==false )//21 M30
&& (signals[i].SignalM14dn<0||trigger_Moving_Average7==false )//30 M30
&& (signals[i].SignalM20dn<0||trigger_Moving_Average10==false )//50 M30
&& (signals[i].SignalM26dn<0||trigger_Moving_Average13==false )//100 M30

&& (signals[i].SignalM04dn<0||trigger_Moving_Average2==false )//12 H1
&& (signals[i].SignalM10dn<0||trigger_Moving_Average5==false )//21 H1
&& (signals[i].SignalM16dn<0||trigger_Moving_Average8==false )//30 H1
&& (signals[i].SignalM22dn<0||trigger_Moving_Average11==false )//50 H1
&& (signals[i].SignalM28dn<0||trigger_Moving_Average14==false )//100 H1

&& (signals[i].SignalM06dn<0||trigger_Moving_Average3==false )//12 H4
&& (signals[i].SignalM12dn<0||trigger_Moving_Average6==false )//21 H4 
&& (signals[i].SignalM18dn<0||trigger_Moving_Average9==false )//30 H4
&& (signals[i].SignalM24dn<0||trigger_Moving_Average12==false )//50 H4
&& (signals[i].SignalM30dn<0||trigger_Moving_Average15==false )//100 H4*/

&&(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))
{
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
ColorPanel("A2223"+IntegerToString(i),labelcolor,C'61,61,61');// LINHA DE OPERAÇÃO VERDE
ColorPanel("B22223"+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");
} 
//-----------------------------------------------------------------------+

double getHigh(string _symbol, int _tf, int _lookBack, int _shift)
{
   double high = -500000;
   for (int u = 0; u < _lookBack; u++)
   {
         if (iHigh(_symbol, _tf, _shift+u) > high)
         {
            high = iHigh(_symbol, _tf, _shift+u);
         }
   }
   return high;
}

double getLow(string _symbol, int _tf, int _lookBack, int _shift)
{
   double low = 500000;
   for (int u = 0; u < _lookBack; u++)
   {
         if (iLow(_symbol, _tf, _shift+u) < low)
         {
            low = iLow(_symbol, _tf, _shift+u);
         }
   }
   return low;
}

//+------------------------------------------------------------------+ 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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,Red);
   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,Red);
   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,Red);
   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,Red);
   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,Red);
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_UseHeatMap1",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_UseHeatMap2",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_UseHeatMap3",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_UseHeatMap4",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_UseHeatMap5",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average1",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average2",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average3",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average4",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average5",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average6",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average7",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average8",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average9",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average10",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average11",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average12",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average13",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average14",OBJPROP_TEXT,".");
   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,Red);
   ObjectSetString(0,"button_trigger_Moving_Average15",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_UseCCI1",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_UseCCI2",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_UseCCI3",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_UseRSI1",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_UseRSI2",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_UseRSI3",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_MACD1",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_MACD2",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_MACD3",OBJPROP_TEXT,".");
   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,"ON");
   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,Red);
   ObjectSetString(0,"button_trigger_Candle_Direction",OBJPROP_TEXT,".");
   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","Sem Trades no Monitor",x_axis+1060,y_axis-60,Red,8); 
else
SetText("CTP","Monitor de Trades",x_axis+1060,y_axis-60,Lime,8);

if (inSession() == true)
SetText("CTPT","Trading",x_axis+1240,y_axis-165,Green,10);
else
SetText("CTPT","Closed",x_axis+1240,y_axis-165,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_HM2, 1)) / iClose(TradePairs[i], trigger_TF_HM2, 1) * 100;    
signals[i].Signalperc2 = (iClose(TradePairs[i], 1, 0) - iClose(TradePairs[i], trigger_TF_HM3, 1)) / iClose(TradePairs[i], trigger_TF_HM3, 1) * 100;
signals[i].Signalperc3 = (iClose(TradePairs[i], 1, 0) - iClose(TradePairs[i], trigger_TF_HM4, 1)) / iClose(TradePairs[i], trigger_TF_HM4, 1) * 100;    
signals[i].Signalperc4 = (iClose(TradePairs[i], 1, 0) - iClose(TradePairs[i], trigger_TF_HM5, 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_D1  ,a)-iLow(TradePairs[i],PERIOD_D1 ,a))/pairinfo[i].PairPip;
if(a==1)
adrvalues[i].adr1=MathRound(s);
if(a==5)
adrvalues[i].adr5=MathRound(s/5);
if(a==10)
adrvalues[i].adr10=MathRound(s/10);
if(a==20)
adrvalues[i].adr20=MathRound(s/20);
}
adrvalues[i].adr=MathRound((adrvalues[i].adr1+adrvalues[i].adr5+adrvalues[i].adr10+adrvalues[i].adr20)/4.0);
s=0.0;
}
}
//-----------------------------------------------------------------------------------------------+ 
void GetSignals() 
{
// CANDLE DIRECTION
//void GetSignals() {
for (int i=0;i<ArraySize(TradePairs);i++) 
{ // for (int i=0;i<ArraySize(signals);i++) {
double Openm1    = iOpen(TradePairs[i], PERIOD_M1,0);
double Closem1   = iClose(TradePairs[i],PERIOD_M1,0);
double Openm5    = iOpen(TradePairs[i], PERIOD_M5,0);
double Closem5   = iClose(TradePairs[i],PERIOD_M5,0);
double Openm15   = iOpen(TradePairs[i], PERIOD_M15,0);
double Closem15  = iClose(TradePairs[i],PERIOD_M15,0);
double Openm30   = iOpen(TradePairs[i], PERIOD_M30,0);
double Closem30  = iClose(TradePairs[i],PERIOD_M30,0);
double Openh1    = iOpen(TradePairs[i], PERIOD_H1,0);
double Closeh1   = iClose(TradePairs[i],PERIOD_H1,0);      
double Openh4    = iOpen(TradePairs[i], PERIOD_H4,0);
double Closeh4   = iClose(TradePairs[i],PERIOD_H4,0);
//double Opend     = iOpen(TradePairs[i], PERIOD_D1,0);
//double Closed    = iClose(TradePairs[i],PERIOD_D1,0);
//double Openw     = iOpen(TradePairs[i], PERIOD_W1,0);
//double Closew    = iClose(TradePairs[i],PERIOD_W1,0);
//double Openmn    = iOpen(TradePairs[i], PERIOD_MN1,0);
//double Closemn   = iClose(TradePairs[i],PERIOD_MN1,0);
      
if(Closem1>Openm1)signals[i].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
//HEAT MAP INDIVIDUAL
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,TF_1,Period_1);      
signals[i].close=iClose(signals[i].symbol,TF_1,0);
signals[i].hi=getLow(signals[i].symbol,TF_1,Period_1,0);
signals[i].lo=getLow(signals[i].symbol,TF_1,Period_1,0);
signals[i].ask=getLow(signals[i].symbol,TF_2,Period_2,0);
signals[i].bid=getLow(signals[i].symbol,TF_2,Period_2,0);
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);
//HEAT MAP INDIVIDUAL
//HEAT MAP PAINEL
{
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].ask=getLow(signals[i].symbol,TF_2,Period_2,0);
signals[i].bid=getLow(signals[i].symbol,TF_2,Period_2,0);
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);
}
//HEAT MAP PAINEL
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);

int                             u_axis                      =-52;  // Esquerda X Direita
int                             v_axis                      =28;// Cima X Baixo       

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)+".",u_axis+1015,(m*15)+v_axis-25,color_for_profit(arrt[m][0]),11);//COLUNA HEAT MAP
SetText(curr[arr2]+"curr", curr[arr2],u_axis+1030,(m*15)+v_axis-25,color_for_profit(arrt[m][0]),11);//COLUNA HEAT MAP
SetText(curr[arr2]+"currdig", DoubleToStr(arrt[m][0],1),u_axis+1065,(m*15)+v_axis-25,color_for_profit(arrt[m][0]),11);////COLUNA HEAT MAP
// 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(217),u_axis+1090,(m*15)+v_axis-25,BullColor,11);}//COLUNA HEAT MAP FLEXA 
else if(currstrength[m] < prevstrength[m]){SetObjText("Sdir"+IntegerToString(m),CharToStr(218),u_axis+1090,(m*15)+v_axis-25,BearColor,11);}//COLUNA HEAT MAP FLEXA 
else {SetObjText("Sdir"+IntegerToString(m),CharToStr(243),u_axis+1090,(m*15)+v_axis-25,clrYellow,11);}//COLUNA HEAT MAP FLEXA 

}
ChartRedraw(); 
}

color color_for_profit(double total) 
{
if(total<2.0)
return (clrRed);
if(total<=3.0)
return (clrRed);
if(total>7.0)
return (clrLime);
if(total>6.0)
return (clrLime);
if(total>5.0)
return (clrLime);
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 = (getHigh(sym, TF_1,Period_1,0) - getLow(sym, TF_1,Period_1,0)) ;
if (range != 0.0) {
ratio = 100.0 * ((getLow(sym, TF_2,Period_2,0) - getLow(sym,TF_1,Period_1,0)) / 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=(getHigh(sym,TF_1,Period_1,0)-getLow(sym,TF_1,Period_1,0));
if(range!=0.0) 
{
ratio=100.0 *((prevbid-getLow(sym,TF_2,Period_2,0))/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 
//======================RUN=974===============01 
void GetCommodity() {
for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalcci = NONE;

   double cci = iCCI(TradePairs[i],0, trade_Period_CCI1, PRICE_OPEN, PERIOD_M15);
   

   double CloseBuy1_1 =  cci ;
   double CloseBuy1_21 = 100;

   double CloseSell1_1 =  cci ;
   double CloseSell1_21 = -100;   
    
          if (CloseBuy1_1 < CloseBuy1_21)  
      {        
      signals[i].Signalcciup1 = UP;
      } 
             
      if (CloseSell1_1 > CloseSell1_21) 
      {        
      signals[i].Signalccidn1 = DOWN;
      }      
   
      
 //======================RUN=974===============
 //======================RUN=974===============02 

//void GetCommodity2() {
   for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalcci = NONE;

   double cci = iCCI(TradePairs[i],0, trade_Period_CCI2, PRICE_OPEN, PERIOD_M30);
   

   double CloseBuy1_1 =  cci ;
   double CloseBuy1_22 = 100;

   double CloseSell1_1 =  cci ;
   double CloseSell1_22 = -100;   
    
          if (CloseBuy1_1 < CloseBuy1_22)  
      {        
      signals[i].Signalcciup2 = UP;
      } 
             
      if (CloseSell1_1 > CloseSell1_22) 
      {        
      signals[i].Signalccidn2 = DOWN;
      }      
   
      
 //======================RUN=974=============== 
 //======================RUN=974===============03 

//void GetCommodity3() {
   for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalcci = NONE;

   double cci = iCCI(TradePairs[i],0, trade_Period_CCI3, PRICE_OPEN, PERIOD_H1);
   

   double CloseBuy1_1 =  cci ;
   double CloseBuy1_23 = 100;

   double CloseSell1_1 =  cci ;
   double CloseSell1_23 = -100;   
    
          if (CloseBuy1_1 < CloseBuy1_23)  
      {        
      signals[i].Signalcciup3 = UP;
      } 
             
      if (CloseSell1_1 > CloseSell1_23) 
      {        
      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_M15,FastPeriod,SlowPeriod,SignPeriod,Price,MODE_MAIN  ,0); //Times[t] no lugar no period
         double values = iMACD(TradePairs[i],PERIOD_M15,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_M30,FastPeriod1,SlowPeriod1,SignPeriod1,Price,MODE_MAIN  ,0); //Times[t] no lugar no period
         double values1 = iMACD(TradePairs[i],PERIOD_M30,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_H1,FastPeriod2,SlowPeriod2,SignPeriod2,Price,MODE_MAIN  ,0); //Times[t] no lugar no period
         double values2 = iMACD(TradePairs[i],PERIOD_H1,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_M15,trade_Period_Moving_Average1,0,MODE_SMA,PRICE_OPEN,0);//MM12 //PERIODO TIME FRAME ALTERAR DE PERIOD_M1 PARA NULL OU TF     
      double BB10 = iMA(TradePairs[i],PERIOD_M15,trade_Period_Moving_Average1,0,MODE_SMA,PRICE_OPEN,0);//MM12       
      
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )
         signals[i].SignalM01up=UP;
      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )
         signals[i].SignalM01up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB10 )
         signals[i].SignalM02dn=UP;
      if(iClose(TradePairs[i],PERIOD_M15,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_M30,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_OPEN,0);//MM12      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average2,0,MODE_SMA,PRICE_OPEN,0);//MM12       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM03up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM03up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM04dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,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_H1,trade_Period_Moving_Average3,0,MODE_SMA,PRICE_OPEN,0);//MM12      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average3,0,MODE_SMA,PRICE_OPEN,0);//MM12       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM05up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM05up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM06dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,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_M15,trade_Period_Moving_Average4,0,MODE_SMA,PRICE_OPEN,0);//MM21      
      double BB10 = iMA(TradePairs[i],PERIOD_M15,trade_Period_Moving_Average4,0,MODE_SMA,PRICE_OPEN,0);//MM21       
      
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )
         signals[i].SignalM07up=UP;
      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )
         signals[i].SignalM07up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB10 )
         signals[i].SignalM08dn=UP;
      if(iClose(TradePairs[i],PERIOD_M15,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_M30,trade_Period_Moving_Average5,0,MODE_SMA,PRICE_OPEN,0);//MM21      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average5,0,MODE_SMA,PRICE_OPEN,0);//MM21       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM09up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM09up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM10dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,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_H1,trade_Period_Moving_Average6,0,MODE_SMA,PRICE_OPEN,0);//MM21      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average6,0,MODE_SMA,PRICE_OPEN,0);//MM21       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM11up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM11up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM12dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,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_M15,trade_Period_Moving_Average7,0,MODE_SMA,PRICE_OPEN,0);//MM30      
      double BB10 = iMA(TradePairs[i],PERIOD_M15,trade_Period_Moving_Average7,0,MODE_SMA,PRICE_OPEN,0);//MM30       
      
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )
         signals[i].SignalM13up=UP;
      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )
         signals[i].SignalM13up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB10 )
         signals[i].SignalM14dn=UP;
      if(iClose(TradePairs[i],PERIOD_M15,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_M30,trade_Period_Moving_Average8,0,MODE_SMA,PRICE_OPEN,0);//MM30      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average8,0,MODE_SMA,PRICE_OPEN,0);//MM30       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM15up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM15up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM16dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,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_H1,trade_Period_Moving_Average9,0,MODE_SMA,PRICE_OPEN,0);//MM30      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average9,0,MODE_SMA,PRICE_OPEN,0);//MM30       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM17up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM17up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM18dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,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_M15,trade_Period_Moving_Average10,0,MODE_SMA,PRICE_OPEN,0);//MM50      
      double BB10 = iMA(TradePairs[i],PERIOD_M15,trade_Period_Moving_Average10,0,MODE_SMA,PRICE_OPEN,0);//MM50       
      
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )
         signals[i].SignalM19up=UP;
      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )
         signals[i].SignalM19up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB10 )
         signals[i].SignalM20dn=UP;
      if(iClose(TradePairs[i],PERIOD_M15,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_M30,trade_Period_Moving_Average11,0,MODE_SMA,PRICE_OPEN,0);//MM50      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average11,0,MODE_SMA,PRICE_OPEN,0);//MM50       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM21up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM21up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM22dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,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_H1,trade_Period_Moving_Average12,0,MODE_SMA,PRICE_OPEN,0);//MM50      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average12,0,MODE_SMA,PRICE_OPEN,0);//MM50       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM23up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM23up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM24dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,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_M15,trade_Period_Moving_Average13,0,MODE_SMA,PRICE_OPEN,0);//MM100      
      double BB10 = iMA(TradePairs[i],PERIOD_M15,trade_Period_Moving_Average13,0,MODE_SMA,PRICE_OPEN,0);//MM100       
      
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB1 )
         signals[i].SignalM25up=UP;
      if(iClose(TradePairs[i],PERIOD_M15,0)<BB1 )
         signals[i].SignalM25up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M15,0)>BB10 )
         signals[i].SignalM26dn=UP;
      if(iClose(TradePairs[i],PERIOD_M15,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_M30,trade_Period_Moving_Average14,0,MODE_SMA,PRICE_OPEN,0);//MM100      
      double BB10 = iMA(TradePairs[i],PERIOD_M30,trade_Period_Moving_Average14,0,MODE_SMA,PRICE_OPEN,0);//MM100       
      
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB1 )
         signals[i].SignalM27up=UP;
      if(iClose(TradePairs[i],PERIOD_M30,0)<BB1 )
         signals[i].SignalM27up=DOWN;
      if(iClose(TradePairs[i],PERIOD_M30,0)>BB10 )
         signals[i].SignalM28dn=UP;
      if(iClose(TradePairs[i],PERIOD_M30,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_H1,trade_Period_Moving_Average15,0,MODE_SMA,PRICE_OPEN,0);//MM100      
      double BB10 = iMA(TradePairs[i],PERIOD_H1,trade_Period_Moving_Average15,0,MODE_SMA,PRICE_OPEN,0);//MM100       
      
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB1 )
         signals[i].SignalM29up=UP;
      if(iClose(TradePairs[i],PERIOD_H1,0)<BB1 )
         signals[i].SignalM29up=DOWN;
      if(iClose(TradePairs[i],PERIOD_H1,0)>BB10 )
         signals[i].SignalM30dn=UP;
      if(iClose(TradePairs[i],PERIOD_H1,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_M15,trade_Period_RSI1,0,0);
      double Openbefore = iRSI(TradePairs[i],PERIOD_M15,trade_Period_RSI1,0,1);
    
      
      if (Openlast<Openbefore && Openlast>45) {
         
            signals[i].Signalrsidn1 = DOWN;
      }
       
      if (Openlast>Openbefore && Openlast<55)  {
         
            signals[i].Signalrsiup1 = UP;
      }   
   }
 }
void GetCommodity1() {
   for (int i=0;i<ArraySize(TradePairs);i++) {

      signals[i].Signalrsi = NONE; 
      
    //  }//}
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVRSI03
      double Openlast = iRSI(TradePairs[i],PERIOD_M30,trade_Period_RSI2,0,0);
      double Openbefore = iRSI(TradePairs[i],PERIOD_M30,trade_Period_RSI2,0,1);
    
      
      if (Openlast<Openbefore && Openlast>45) {
         
            signals[i].Signalrsidn2 = DOWN;
      }
       
      if (Openlast>Openbefore && Openlast<55)  {
         
            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_H1,trade_Period_RSI3,0,0);
      double Openbefore = iRSI(TradePairs[i],PERIOD_H1,trade_Period_RSI3,0,1);
    
      
      if (Openlast<Openbefore && Openlast>45) {
         
            signals[i].Signalrsidn3 = DOWN;
      }
       
      if (Openlast>Openbefore && Openlast<55)  {
         
            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, LightGreen);
   if(mVal > 10 && mVal < 20)
         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Lime);
   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, OrangeRed);
   if(mVal < -10 && mVal > -20)
         ObjectSet("HM1"+mBx, OBJPROP_BGCOLOR, Red);
   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, LightGreen);
   if(mVal1 > 10 && mVal1 < 20)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Lime);
   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, OrangeRed);
   if(mVal1 < -10 && mVal1 > -20)
         ObjectSet("HM2"+mBx1, OBJPROP_BGCOLOR, Red);
   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, LightGreen);
   if(mVal2 > 10 && mVal2 < 20)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Lime);
   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, OrangeRed);
   if(mVal2 < -10 && mVal2 > -20)
         ObjectSet("HM3"+mBx2, OBJPROP_BGCOLOR, Red);
   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, LightGreen);
   if(mVal2 > 10 && mVal2 < 20)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Lime);
   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, OrangeRed);
   if(mVal2 < -10 && mVal2 > -20)
         ObjectSet("HM4"+mBx2, OBJPROP_BGCOLOR, Red);
   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, LightGreen);
   if(mVal2 > 10 && mVal2 < 20)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Lime);
   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, OrangeRed);
   if(mVal2 < -10 && mVal2 > -20)
         ObjectSet("HM5"+mBx2, OBJPROP_BGCOLOR, Red);
   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;
 }       
//------------TRADE INFO
 

    