← К каталогу
Исходный код · ID 4097

GG_MASTER_V2

gg_master.mq5

Похожие материалы по тегам

xauusd_gold_perfect.mq4MQL4 / MetaTrader 4 · 2 общих теговtm sniper pro.pineTradingView · 2 общих теговsniper pro.mq5MQL5 / MetaTrader 5 · 2 общих теговpro +.pineTradingView · 2 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 2 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 2 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

GG_MASTER — это пользовательский индикатор для MetaTrader 5, предназначенный для отображения на графике аналитической информации о рыночной ситуации и сигналов. Индикатор рассчитывает несколько встроенных показателей, включая собственный трендовый фильтр, RVI, MFI, WPR и каналы Кельтнера, а также выводит на экран панель с результатами. В коде присутствуют многочисленные пользовательские настройки, позволяющие включать или отключать отдельные стратегии и фильтры, менять стиль отображения и параметры расчёта. Индикатор также поддерживает отправку уведомлений в Telegram и взаимодействие с внешними торговыми системами через DLL. Все вычисления выполняются на основе ценовых данных и индикаторных буферов, без выполнения торговых операций. Код содержит обработчики событий, характерные для индикатора, и не является советником или скриптом.

Настройки программы

НастройкаОписание
TRADE_SETTINGS_HEADER Заголовок раздела настроек в панели индикатора.
AtivaPainel Включает или отключает отображение панели индикатора на графике.
FontStyleOption Выбор стиля шрифта для отображения текста на панели.
demo1 Включает или отключает отображение прогноза тренда.
MostrarLinha Включает или отключает отображение линий поддержки и сопротивления.
Volium Включает или отключает отображение рыночного объёма.
MartingaleStep Шаг мартингейла: без мартингейла или 1 шаг.
DirectionSignal Выбор направления сигнала: прямой или реверсивный.
Entrada Режим входа: отключить или активировать предварительное оповещение.
SecEnvio Количество секунд до сигнала для предварительного оповещения.
ID Включает или отключает авторизацию по идентификатору.
Velas Количество свечей для обратного тестирования.
VelasBack Глубина обратного тестирования (в разработке).
UTCCHNAGE Выбор смещения часового пояса UTC.
_________candlestrtegy_____________ Заголовок раздела свечной стратегии.
candlestrtegy Включает или отключает свечную стратегию.
_________Reversal_STRATEGY_____________ Заголовок раздела стратегии Reversal.
Reversal_Enabled Включает или отключает стратегию Reversal.
__________HUNTER_STRATEGY_____________ Заголовок раздела стратегии HUNTER.
HUNTER_Enabled Включает или отключает стратегию HUNTER.
_________hulk_STRATEGY_____________ Заголовок раздела стратегии HULK.
hulk_Enabled Включает или отключает стратегию HULK.
_________professor_STRATEGY_____________ Заголовок раздела стратегии PROFESSOR.
professor_Enabled Включает или отключает стратегию PROFESSOR.
_________sniper_STRATEGY_____________ Заголовок раздела стратегии SNIPER.
sniper_Enabled Включает или отключает стратегию SNIPER.
_________ninja_STRATEGY_____________ Заголовок раздела стратегии NINJA.
ninja_Enabled Включает или отключает стратегию NINJA.
_________GUNA_STRATEGY_____________ Заголовок раздела стратегии SHADOW.
shadow Включает или отключает стратегию SHADOW.
___Elite_strategy_____ Заголовок раздела стратегии ELITE.
Elite_Enabled Включает или отключает стратегию ELITE.
________TREND_FILTER___________________ Заголовок раздела фильтра тренда.
Filtro_Tendencia Включает или отключает фильтр тренда по скользящей средней.
gi_84 Период для фильтра.
gd_88 Параметр смещения для фильтра.
_________KEN_Enabled_____________ Заголовок раздела стратегии KEN.
KEN_Enabled Включает или отключает стратегию KEN.
_________MODOOPERACIONALRVI___________________ Заголовок раздела режима RVI.
EnabledRVI Включает или отключает использование индикатора RVI.
TimeFrame4 Таймфрейм для индикатора RVI.
PERIODORVI Период индикатора RVI.
Linha Выбор линии RVI: 0 — линия RVI, 1 — сигнальная линия.
MAXRVI Максимальный уровень RVI.
MINRVI Минимальный уровень RVI.
_________MODOOPERACIONALMFI___________________ Заголовок раздела режима MFI.
EnabledMFI Включает или отключает использование индикатора MFI.
TimeFrame5 Таймфрейм для индикатора MFI.
PERIODOMFI Период индикатора MFI.
mfiPrice Тип цены для расчёта MFI.
MAXMFI Максимальный уровень MFI.
MINMFI Минимальный уровень MFI.
_________MODOOPERACIONALWPR___________________ Заголовок раздела режима WPR.
EnabledWPR Включает или отключает использование индикатора WPR.
TimeFrame6 Таймфрейм для индикатора WPR.
PERIODOWPR Период индикатора WPR.
wprPrice Тип цены для расчёта WPR.
MAXWPR Максимальный уровень WPR.
MINWPR Минимальный уровень WPR.
________FILTROS____________________ Заголовок раздела фильтров.
HILL Модификатор для первого фильтра.
RSIPeriod Период RSI для первого фильтра.
Divisor Делитель для первого фильтра.
DeviationPeriod Период отклонения для первого фильтра.
Desvio Величина отклонения для первого фильтра.
________FILTRO____________________ Заголовок раздела фильтра.
HILL1 Модификатор для второго фильтра.
RSI1Period Период RSI для второго фильтра.
Divisor1 Делитель для второго фильтра.
Deviation1Period Период отклонения для второго фильтра.
Desvio1 Величина отклонения для второго фильтра.
________FILT____________________ Заголовок раздела фильтра.
HILL2 Модификатор для третьего фильтра.
RSI2Period Период RSI для третьего фильтра.
Divisor2 Делитель для третьего фильтра.
Deviation2Period Период отклонения для третьего фильтра.
Desvio2 Величина отклонения для третьего фильтра.
________FI____________________ Заголовок раздела фильтра.
HILL3 Модификатор для четвёртого фильтра.
RSI_8 Период RSI для четвёртого фильтра.
PriceRSI Цена, применяемая для расчёта RSI в четвёртом фильтре.
Divisor8 Делитель для четвёртого фильтра.
Deviation8Period Период отклонения для четвёртого фильтра.
Desvio8 Величина отклонения для четвёртого фильтра.
_________ESTREGIA_MASTER_____________ Заголовок раздела стратегии MASTER.
MasterEstrategia Включает или отключает стратегию MASTER.
PeriodoRSI Период индикатора RSI для стратегии MASTER.
MaxRSI Уровень перекупленности RSI.
MinRSI Уровень перепроданности RSI.
LotSize Размер лота для стратегии MASTER.
StopLoss Размер стоп-лосса в пунктах для стратегии MASTER.
TakeProfit Размер тейк-профита в пунктах для стратегии MASTER.
MA_Period Период скользящей средней для стратегии MASTER.
MA_Type Тип скользящей средней для стратегии MASTER.
_________KILTENER___________________ Заголовок раздела канала Кельтнера.
KeltnerChannel Включает или отключает отображение канала Кельтнера.
KeltnerPeriod Период для канала Кельтнера.
KCAtrPeriod Период ATR для канала Кельтнера.
ATRMultiplier Множитель ATR для канала Кельтнера.
Shift Смещение для канала Кельтнера.
Получить полный код

Поиск по коду файла

#property description  "Group Telegram: @MdShoaibkhann"

#property description "Development: - @MdShoaibkhann "
#property description "\n========== TELEGRAM_CONFIGER===================================="
#property description  "To send the bells to Telegram, call @MdShoaibkhann on Telegram"
#property description  "To get the Chat ID from the @MdShoaibkhann "
#property description "================================================================="
#define UNIQUE_SIGNAL_FILE_NAME "UniqueSignalFlag.txt"  // Unique name of the file used to track signal times
#define UNIQUE_COOLDOWN_DURATION 20
#property strict

#property indicator_chart_window
#property indicator_buffers 25

#include <WinUser32.mqh>

#import "Telegram4Mql.dll"
string TelegramSendText(string ApiKey, string ChatId, string ChatText);
string TelegramSendTextAsync(string apiKey, string chatId, string chatText);
string TelegramSendPhotoAsync(string apiKey, string chatId, string filePath, string caption = "");
#import
static int largura_tela = 0, altura_tela = 0;
#import  "Wininet.dll"
int InternetOpenW(string, int, string, string, int);
int InternetConnectW(int, string, int, string, string, int, int, int);
int HttpOpenRequestW(int, string, string, int, string, int, string, int);
int InternetOpenUrlW(int, string, string, int, int, int);
int InternetReadFile(int, uchar & arr[], int, int& OneInt[]);
int InternetCloseHandle(int);
bool HttpSendRequestW(int, string, int, string, int);
#import

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  int allowedAccountID =********;

#import "Kernel32.dll"
int GetLastError(void);
bool GetVolumeInformationW(string,string,uint,uint&[],uint,uint,string,uint);

#import

enum FontStyle { NORMAL, MONO, BOLD, ITALIC };

enum corretora_price_pro
  {
   EmTodas = 1,    //ALL
   EmIQOption = 2, //IQ Option
   EmSpectre = 3,  //Spectre
   EmBinary = 4,   //Binary
   EmGC = 5,       //Grand Capital
   EmBinomo = 6,   //Binomo
   EmOlymp = 7     //Olymp Trade
  };

enum broker
  {
   Todos = 0,   //ALL
   IQOption = 1,
   Binary = 2,
   Spectre = 3,
   Alpari = 4,
   InstaBinary = 5
  };

enum corretora
  {
   Todas = 0,   //ALL
   IQ = 1,      //IQ Option
   Bin = 2,     //Binary
   Spectree = 3,//Spectre
   GC = 4,      //Grand Capital
   Binomo = 5,  //Binomo
   Olymp = 6    //Olymp Trade
  };

enum sinal
  {
   MESMA_VELA = 0,  //SAME CANDLE
   PROXIMA_VELA = 1 //NEXT CANDLE
  };

enum tipo_expiracao
  {
   TEMPO_FIXO = 0, //Fixed Time!
   RETRACAO = 1    //Tempo Do Time Frame!
  };

enum entrar
  {
   NO_TOQUE = 0,    //DO NOT TOUCH
   FIM_DA_VELA = 1  //END OF CANDLE
  };

enum modo
  {
   MELHOR_PAYOUT = 'M', //MELHOR PAYOUT
   BINARIAS = 'B',      //BINARIAS
   DIGITAIS = 'D'       //DIGITAIS
  };

enum instrument
  {
   DoBotPro= 3, //DO BOT PRO
   Binaria= 0,  //BINARIA
   Digital = 1, //DIGITAL
   MaiorPay =2  //MAIOR PAYOUT
  };

enum signaltype
  {
   IntraBar = 0,          // SAME CANDLE
   ClosedCandle = 1       // NEXT CANDLE
  };

enum martintype
  {
   NoMartingale = 0,             // Sem Martingale (No Martingale)
   OnNextExpiry = 1,             // Next Expiry
   OnNextSignal = 2,             // Next Signal
   Anti_OnNextExpiry = 3,        // Anti-/ Next Expiry
   Anti_OnNextSignal = 4,        // Anti-/ Next Signal
   OnNextSignal_Global = 5,      // Next Signal (Global)
   Anti_OnNextSignal_Global = 6  // Anti-/ Next Signal (Global)
  };

enum FiltroEma
  {
   EMA  = 1,  // EMA
   SMMA = 2,  // SMMA
   LWMA = 3,  // LWMA
   LSMA = 4   // LSMA SMA
  };

enum intervalo
  {
   Cinco = PERIOD_M5,        // 5 MINUTOS
   Quinze = PERIOD_M15,      // 15 MINUTOS
   Trinta = PERIOD_M30,      // 30 MINUTOS
   Uma_Hora = PERIOD_H1,     // 1 HORA
  };

enum antloss
  {
   off   = 0,  //OFF
   gale1 = 1  //ENTER AFTER CANDLE
  };

enum extensaoROBO
  {
   csv   = 0,  //CSV
   txt = 1  //TXT
  };

enum automtizadores
  {
   DesligarRobo   = 0,  //OFF

   OperarComMX2 = 2,  //MX2 TRADING
   OperarComBOTPRO   = 3,  //BOTPRO
   OperarComPricePro = 4,  //PRICEPRO
   OperarComTOPWIN   = 5,  //TOPWIN V4
   OperarComTOPWIN_ATUAL   = 9,  //TOPWIN V6 (ATUAL)
   OperarComFrankestain = 6,  //RETORNO
   OperarComMT2 = 7,  //MT2
   OperarComB2IQ = 8  //B2IQ
  };

enum simnao
  {
   NAO = 0, //OFF
   SIM = 1  //ON
  };

enum tipo
  {
   DESATIVAR_PRE_ALERTA, //DISABLE
   ATIVAR_PRE_ALERTA //ACTIVATE
  };
enum UTCOffset
{
   UTCp600 = 0,         // UTC: +6:00 G.M.T
   UTCp530 = -1800,     // UTC: +5:30 G.M.T
   UTCp500 = -3600,     // UTC: +5:00 G.M.T
   UTCp430 = -5400,     // UTC: +4:30 G.M.T
   UTCp400 = -7200,     // UTC: +4:00 G.M.T
   UTCp330 = -9000,     // UTC: +3:30 G.M.T
   UTCp300 = -10800,    // UTC: +3:00 G.M.T
   UTCp200 = -14400,    // UTC: +2:00 G.M.T
   UTCp100 = -18000,    // UTC: +1:00 G.M.T
   UTC0000 = -21600,    // UTC: +0:00 G.M.T
   UTCm100 = -25200,    // UTC: -1:00 G.M.T
   UTCm200 = -28800,    // UTC: -2:00 G.M.T
   UTCm300 = -32400,    // UTC: -3:00 G.M.T
   UTCm330 = -34200,    // UTC: -3:30 G.M.T
   UTCm400 = -36000,    // UTC: -4:00 G.M.T
   UTCm500 = -39600,    // UTC: -5:00 G.M.T
   UTCm600 = -43200,    // UTC: -6:00 G.M.T
   UTCm700 = -46800,    // UTC: -7:00 G.M.T
   UTCm800 = -50400,    // UTC: -8:00 G.M.T
   UTCm900 = -54000,    // UTC: -9:00 G.M.T
   UTCm1000 = -57600,   // UTC: -10:00 G.M.T
   UTCm1100 = -61200,   // UTC: -11:00 G.M.T
   UTCm1200 = -64800    // UTC: -12:00 G.M.T
};
 enum signal
  {
   FLOW = 0,  //FLOW SIGNAL
   REVERSE = 1 //REVERSE SIGNAL
  };
enum signaltel
  {
   multiplesignal,   //Multiple Signals at a time
   singlesigna       //One signal at a time
  };

enum MVNAME1
  {
   BREAK1,  //BREAK LINE
   TOUCH1  //TOUCH LINE
  };
enum MVNAME2
  {
   BREAK2,  //BREAK LINE
   TOUCH2  //TOUCH LINE
  };
enum MVNAME3
  {
   BREAK3,  //BREAK LINE
   TOUCH3  //TOUCH LINE
  };
enum MVNAME4
  {
   BREAK4,  //BREAK LINE
   TOUCH4  //TOUCH LINE
  };
struct melhor_nivel
  {
   double            rate;
   double            value_chart_maxima;
   double            value_chart_minima;
  };
enum penel
  {
   NON_MTG = 0,  // o mtg win loss
   MTG1 = 1,         // penel 1mtg show 

  };
enum Pos
  {
   UpperLeft,
   UpperRight,
   LowerLeft,
   LowerRight
  };

enum way
  {
   BidRatio,
   OpenRatio,
   BodyRatio,
  };

datetime timet;

input string TRADE_SETTINGS_HEADER = "====== SETTINGS ======"; // Settings header title
input simnao AtivaPainel     = true;       // ACTIVE PENEL
input FontStyle FontStyleOption = MONO;    // FRONT SELECTION
input simnao  demo1     = true;             // TRAND PRADICTION 
input simnao MostrarLinha = false;         // SUPORT-REGISTANCE DROW 
input bool Volium = true;                   // MARKET VOLIUM
input penel MartingaleStep                          = 1;          //1MTG MARTINGALE STEP

input signal DirectionSignal = REVERSE;    // SIGNAL DREACTION
extern tipo Entrada          = ATIVAR_PRE_ALERTA; // PRE ALEART
input int SecEnvio           = 2;          // BEFORE SIGNAL 
input simnao ID      = false;        // AUTHONTICAR ID 

input int Velas              = 300;        // BACK TEST CANDEL
extern int VelasBack         = 100;        // (Coming soon) Backtest depth
input UTCOffset UTCCHNAGE    = UTCp600;    // TIME ZONE (UTC)

input string _________candlestrtegy_____________       = "=======| candlestrtegy |======================================================================"; //=================================================================================
input simnao candlestrtegy                            = false;   // CANDLE STRATEGY 

input string _________Reversal_STRATEGY_____________   = "=======| Reversal STRATEGY |======================================================================"; //=================================================================================
input simnao Reversal_Enabled                         = false;   // REVERSAL STRATEGY 

input string __________HUNTER_STRATEGY_____________    = "=======| HUNTER STRATEGY  |======================================================================"; //=================================================================================
input simnao HUNTER_Enabled                           = false;   // HUNTER STRATEGY 

input string _________hulk_STRATEGY_____________       = "=======|hulk STRATEGY  |======================================================================"; //=================================================================================
input simnao hulk_Enabled                              = false;   // HULK STRATEGY 

input string _________professor_STRATEGY_____________  = "=======| professor STRATEGY  |======================================================================"; //=================================================================================
input simnao professor_Enabled                         = false;   // PROFESSOR STRATEGY 

input string _________sniper_STRATEGY_____________     = "=======| sniper STRATEGY |======================================================================"; //=================================================================================
input simnao sniper_Enabled                            = false;   // SNIPER STRATEGY

input string _________ninja_STRATEGY_____________      = "=======| ninja STRATEGY |======================================================================"; //=================================================================================
input simnao ninja_Enabled                             = false;   // NINJA STRATEGY

input string _________GUNA_STRATEGY_____________       = "=======| SHADOW STRATEGY  |======================================================================"; //=================================================================================
input simnao shadow                                    = false;   // SHADOW STRATEGY

input string ___Elite_strategy_____                    = "=======| ELITE STRATEGY |======================================================================"; //=================================================================================
input simnao Elite_Enabled                             = false;   // ELITE STRATEGY

input string ________TREND_FILTER___________________         = "======= TREND_FILTER ================================================================================"; //=================================================================================
input simnao Filtro_Tendencia                            = false;   // MA TREND FILTER
input int gi_84                                           = 50;      // PERIOD
input double gd_88                                        = 0;       // SHIFT

input string _________KEN_Enabled_____________              = "=======| KEN_Enabled A |======================================================================"; //=================================================================================
input simnao KEN_Enabled                                   = false;   // KEN STRATEGY

input string _________MODOOPERACIONALRVI___________________ = "========== RVI FILTER STRATEGY =================================================================================================="; //=================================================================================
input simnao EnabledRVI                                     = false;   // RVI
input ENUM_TIMEFRAMES TimeFrame4                            = PERIOD_M1; // TIMEFRAME RVI 
input int PERIODORVI                                        = 6;       // PERIODO RVI 
input int Linha                                             = 1;       // 0 = RVI line, 1 = SIGNAL LINE
input double MAXRVI                                         = 0.1;     // MAXIMA RVI 
input double MINRVI                                         = -0.1;    // MINIMA RVI

input string _________MODOOPERACIONALMFI___________________ = "========== MFI FILTER STRATEGY =================================================================================================="; //=================================================================================
input simnao EnabledMFI                                    = false;       // MFI 
input ENUM_TIMEFRAMES TimeFrame5                           = PERIOD_M1;   // TIMEFRAME RVI 
input int PERIODOMFI                                       = 3;           // PERIODO MFI
input ENUM_APPLIED_PRICE mfiPrice                          = PRICE_CLOSE; // INPUT MODULE
input int MAXMFI                                           = 95;          // MAXIMA MFI
input int MINMFI                                           = 5;           // MINIMA MFI

input string _________MODOOPERACIONALWPR___________________ = "========== WPR FILTER STRATEGY =================================================================================================="; //=================================================================================
input simnao EnabledWPR                                     = false;       // WPR 
input ENUM_TIMEFRAMES TimeFrame6                            = PERIOD_M1;   // TIMEFRAME WPR
input int PERIODOWPR                                        = 1;           // PERIODO WPR 
input ENUM_APPLIED_PRICE wprPrice                           = PRICE_CLOSE; // INPUT MODULE
input int MAXWPR                                            = -95;         // MAXIMA WPR 
input int MINWPR                                            = -5;          // MINIMA WPR 

input string ________FILTROS____________________             = "========== ACTIVE HILL 1 FILTER =================================================================================================="; //=================================================================================
input simnao HILL                                           = false;       // HILL MODIFIER
input int RSIPeriod                                        = 9;           // PERIODRSI
input int Divisor                                           = 5;           // DIVISOR
input int DeviationPeriod                                     = 70;          // PERIODDEVIATION
input double Desvio                                         = 0.8;         // DETOUR

input string ________FILTRO____________________              = "========== ACTIVE HILL 2 FILTER =================================================================================================="; //=================================================================================
input simnao HILL1                                          = false;       // HILL MODIFIER
input int RSI1Period                                       = 9;           // PERIODRSI
input int Divisor1                                          = 5;           // DIVISOR
input int Deviation1Period                                    = 70;          // PERIODDEVIATION
input double Desvio1                                        = 0.8;         // DETOUR

input string ________FILT____________________                = "========== ACTIVE HILL 3 FILTER =================================================================================================="; //=================================================================================
input simnao HILL2                                          = false;       // HILL MODIFIER
input int RSI2Period                                       = 9;           // PERIODRSI
input int Divisor2                                          = 5;           // DIVISOR
input int Deviation2Period                                    = 70;          // PERIODDEVIATION
input double Desvio2                                        = 0.8;         // DETOUR

input string ________FI____________________                  = "========== ACTIVE HILL 4 FILTER =================================================================================================="; //=================================================================================
input simnao HILL3                                          = false;       // HILL MODIFIER
extern int RSI_8                                            = 9;
extern ENUM_APPLIED_PRICE PriceRSI                          = PRICE_CLOSE;
extern int Divisor8                                         = 5;
extern int Deviation8Period                                   = 70;
extern double Desvio8                                       = 0.8;

input string _________ESTREGIA_MASTER_____________= "======= RSI STATARGY  ======================================================================"; //=================================================================================";
input bool MasterEstrategia = false; // Enable/Disable Strategy
input int PeriodoRSI = 3;           // RSI Period
input int MaxRSI = 65;              // Overbought Level
input int MinRSI = 30;              // Oversold Level
input double LotSize = 0.1;         // Lot Size
input double StopLoss = 10;         // Stop Loss in Pips
input double TakeProfit = 20;       // Take Profit in Pips
input int MA_Period = 50;           // Moving Average Period
input int MA_Type = MODE_SMA;       // Moving Average Type

input string _________KILTENER___________________ = "================== STRATEGY 1 ==============================================================================="; //=================================================================================

enum ENUM_KC_MODE
{
    OUT_OF_LEVEL,
    TOUCH_LEVEL,
    RESPECT_LEVEL,
    ON_LEVEL_CLOSE,
    INSIDE_LEVEL,
    REVERSAL_SIGNAL,
    FAKE_BREAKOUT
};

extern simnao KeltnerChannel       = true;        // KELTNER CHANNEL
extern int KeltnerPeriod           = 20;          // KC PERIOD
extern int KCAtrPeriod             = 10;          // KC ATR PERIOD
extern double ATRMultiplier        = 2.0;         // KC ATR MULTIPLIER 
extern int Shift                   = 0;           // SHIFT
extern ENUM_KC_MODE KCMode         = TOUCH_LEVEL; // KC MODE

double MiddleBuffer[];
double UpperBuffer[];
double LowerBuffer[];

input string  _________MODOOPERACIONALST___________________ = "========== STOCHASTIC FILTER STRATEGY ==================================================================================================";//=================================================================================";
input simnao        Stochastic_Enabled2 = false; //STOCHASTIC STRATEGY
input ENUM_TIMEFRAMES    STCTimeFrame2 = PERIOD_CURRENT; //TIMEFRAME
input int                SO_KPeriod2=5; //%K PERIOD
input int                SO_DPeriod2=3; //%D PERIOD
input int                SO_Slowing2=3; //SO_SLOWING
input ENUM_MA_METHOD     SO_Mode2=MODE_SMA;//SO_MODE
input ENUM_STO_PRICE     SO_Price2=STO_CLOSECLOSE;//SO_PRICE
input int                SO_MAX2=80; //MAXIMUM LEVEL
input int                SO_MIN2=20; //MINIMUM LEVEL

input string  ________PSAR___________________ = "======= PARABOIC SAR ================================================================================";//=================================================================================";
input simnao UsePSAR = false;            // PARABOLIC SAR
input double PSAR_Step = 0.02;        // STEP VALUE
input double PSAR_Maximum = 0.2;      // MAXIMUM VALUE

input string  _________MODOOPERACIONALSTOC___________________ = "========== STOCHASTIC FILTER STRATEGY ==================================================================================================";//=================================================================================";
input simnao        Stochastic_Enabled = false; //STOCHASTIC STRATEGY
input ENUM_TIMEFRAMES    STCTimeFrame = PERIOD_CURRENT; //TIMEFRAME
input int                SO_KPeriod=5; //%K PERIOD
input int                SO_DPeriod=3; //%D PERIOD
input int                SO_Slowing=3; //SO_SLOWING
input ENUM_MA_METHOD     SO_Mode=MODE_SMA;//SO_MODE
input ENUM_STO_PRICE     SO_Price=STO_CLOSECLOSE;//SO_PRICE
input int                SO_MAX=80; //MAXIMUM LEVEL
input int                SO_MIN=20; //MINIMUM LEVEL

input string  __________movingaverage1_______________________ = "====== MOVING AVERAGE 1 ==================================================================================================";//=================================================================================";
input simnao MA1_Enabled= NAO ;     //MOVING AVERAGE#1
input int MA1_Period=20;                //PERIOD
input int MA1_Shift=0;                //SHIFT
input ENUM_MA_METHOD MA1_Method=MODE_SMA;                //METHOD   
input ENUM_APPLIED_PRICE MA1_Applied_Price= PRICE_CLOSE;       //PRICE
input ENUM_TIMEFRAMES  MA1_Timeframe=PERIOD_M1;  //TIMEFRAME
input MVNAME1 OPERATE1 =BREAK1;                   //OPERATE ON?

input string  __________movingaverage2_______________________ = "====== MOVING AVERAGE 2 ==================================================================================================";//=================================================================================";
input simnao MA2_Enabled= NAO ;     //MOVING AVERAGE#2
input int MA2_Period=40;                //PERIOD
input int MA2_Shift=0;                //SHIFT
input ENUM_MA_METHOD MA2_Method=MODE_SMA;                //METHOD   
input ENUM_APPLIED_PRICE MA2_Applied_Price= PRICE_CLOSE;       //PRICE
input ENUM_TIMEFRAMES  MA2_Timeframe=PERIOD_M1;  //TIMEFRAME
input MVNAME2 OPERATE2 =BREAK2;                   //OPERATE ON?

input string  __________movingaverage3_______________________ = "====== MOVING AVERAGE 3 ==================================================================================================";//=================================================================================";
input simnao MA3_Enabled= NAO ;     //MOVING AVERAGE#3
input int MA3_Period=80;                //PERIOD
input int MA3_Shift=0;                //SHIFT
input ENUM_MA_METHOD MA3_Method=MODE_SMA;                //METHOD   
input ENUM_APPLIED_PRICE MA3_Applied_Price= PRICE_CLOSE;       //PRICE
input ENUM_TIMEFRAMES  MA3_Timeframe=PERIOD_M1;  //TIMEFRAME
input MVNAME3 OPERATE3 =BREAK3;                   //OPERATE ON?

input string  __________movingaverage4_______________________ = "====== MOVING AVERAGE 4 ==================================================================================================";//=================================================================================";
input simnao MA4_Enabled= NAO ;     //MOVING AVERAGE#4
input int MA4_Period=140;                //PERIOD
input int MA4_Shift=0;                //SHIFT
input ENUM_MA_METHOD MA4_Method=MODE_SMA;                //METHOD   
input ENUM_APPLIED_PRICE MA4_Applied_Price= PRICE_CLOSE;       //PRICE
input ENUM_TIMEFRAMES  MA4_Timeframe=PERIOD_M1;  //TIMEFRAME
input MVNAME4 OPERATE4 =BREAK4;                   //OPERATE ON?

input string  _________OperationalEMA___________________ = "=====| EMA CROSS STRATEGY | ================================================================================";//=================================================================================";
input simnao AtivarCruzamento = false;    //EMA CROSS STRTEGY ?
input int FasterEMA = 1;                // RAPID EMA 
input int SlowerEMA = 5;                // SLOW EMA 

input string  _________MODOOPERACIONALVL___________________ = "========== VALUECHART CONF STRATEGY ==================================================================================================";//=================================================================================";
input simnao   HabilitarValueChart  = false;     // HABILITAR VALUE CHART 
input double value_chart_minima   =-5.0;             // SALES ZONES VALUE CHART
input double value_chart_maxima   = 5.0;             // VALUE CHART BUYING ZONES

input string _________CANDLE_CONFIRMATION_____________= "=======| CANDLE RESPECT |======================================================================"; //=================================================================================";
input simnao    GUNAEstrategia1               = false;  //CANDLE RESPECT(RSI+SR+CANDLE)
input int PeriodoRSI1 = 3;                             //PERIOD RSI
input int MaxRSI1 = 90;                                //MAXIMUM RSI
input int MinRSI1 = 10;                               //MINIMUM RSI

input string  _________OPERACIONAMACD___________________ = "========== MACD STRATEGY ==================================================================================================";//=================================================================================";
extern simnao MACD_Enabled = false; // MACD STRATEGY 
input int InpFastEMA=12;   // Fast EMA Period
input int InpSlowEMA=26;   // Slow EMA Period
input int InpSignalSMA=9;  // Signal SMA Period

input string  _________MODOOPERACIONALBB___________________ = "========== BANDS CONF STRATEGY ==================================================================================================";//=================================================================================";
input simnao   Bandas  = false;            // ACTIVE OPERATIONAL BANDS
input ENUM_TIMEFRAMES TimeFrame2  =  PERIOD_M1; // BANDS TIMEFRAME 
input int    BB_Period               = 20;      // BANDS PERIOD
input double BB_Dev                  = 1.5;     // BANDS DESVIATIONS
input int    BB_Shift                = 0;       // SAME CANDLE OR NEXT SIGNAL

input string  ________SeR___________________ = "======= SUPORTE E RESITENCIA ================================================================================";//=================================================================================";
input simnao  SeR                = false;  //  SUPORTE & RESISTENCIA
input int mediaMovel = 14; // MEDIA PERIOD
input int mediaMovel2 = 30; //SECOND  MEDIA PERIOD

input string  ________DONCHIAN___________________ = "======= DONCHIAN ================================================================================";//=================================================================================";
extern simnao AtivaDonchian = NAO; //ACTIVATE DONCHIAN
extern int       Periods=15; //PERIODS
extern int       Extremes=3; //EXTREMES
extern int       Margins=-2; //MARGINS
int       Advance=0; //Advance
extern int LarguraDonchian = 2; //LINE WIDTH
extern ENUM_LINE_STYLE EstiloDonChian = STYLE_SOLID; //LINE STYLE
extern color CorDonChianAcima = clrGreen; //TOP LINE COLOR
extern color CorDonChianAbaixo = clrRed; //BOTTOM LINE COLOR

input string  ________CCI___________________ = "======= CCI ================================================================================";//=================================================================================";
extern simnao Cci_Enabled  = NAO;// ACTIVATE CCI
input int                   CCI_Period               = 6;                     // PERIOD
input ENUM_APPLIED_PRICE    Apply_to                 = PRICE_TYPICAL;         // PRICE
input int                   CCI_Overbought_Level     = 160;                   // MAXIMUM LEVEL
input int                   CCI_Oversold_Level       = -160;                  //MINIMUM LEVEL

input string  ________ADX___________________ = "======= ADX ================================================================================";//=================================================================================";
extern simnao             Adx_Enabled  = NAO;                  // ACTIVATE ADX
extern int                period_adx   = 5;                  // PERIOD
extern double             level_adx    = 60.0;                 // LEVEL
extern ENUM_APPLIED_PRICE price_adx    = 0;                   // PRICE

input string  ________DON_FOREX___________________ = "======= DONFOREX ================================================================================";//=================================================================================";
input simnao ativar_donforex = false; //DONFOREX
input int min_size_donforex = 6; //MIN. AREA FOR DONFOREX SEGNAL

input string  ________FILTRO_DE_RETRACAO___________________ = "======= RETRACTION FILTER ================================================================================";//=================================================================================";
input simnao              FILT_RET_              = false;                             // Retraction FILTER
input int                ShadowRatio           =80;                               // BODY X WICK [%]

input string  __________FILTRO_DE_HORARIOS_______________________ = "====== SCHEDULE FILTER! ==================================================================================================";//=================================================================================";
input simnao           filtro_horario = false;                                //ACTIVATE TIME FILTER
input string         horario_inicio_sinais = "00:00";                     //START TIME
input string         horario_fim_sinais = "16:00";                        //END TIME
input string         horario_inicio_sinais3 = "21:00";                     //START TIME
input string         horario_fim_sinais3 = "23:59";                        //END TIME

input string  __________FILTRO_DE_NOTICIAS_______________________ = "====== NEWS_FILTER! ==================================================================================================";//=================================================================================";
input simnao           filtro_noticias = false; //ACTIVATE NEWS
input int            noticia_minutos_antes = 15;  // MIN AFTER
input int            noticia_minutos_depois = 15; // MIN AFTER
input int            noticia_impacto = 3; // IMPACT LEVEL
input simnao alerta_noticia_touros = SIM; //VIEW NEWS ALERT

input string  _________FILTRO_DE_ACERTIVIDADE___________________ = "====== ACCERTIVITY FILTER ================================================================================";//=================================================================================";
input simnao FixedHand            = false;    // APPLY FILTER NOT WINRATE
input double FixedHandFilter = 65;        // FILTER WINRATE
input simnao AplicaFiltroNoGale = false;    //APPLY FILTER NO WINRATE GALE 1
input double FiltroMartingale = 80;     // WINRATE GALE FILTER 1

input string ___________EXTERNAL_INDICATOR_1_____________= "============ COMBINER 1!  ======================================================================"; //=================================================================================";
input simnao COMBINER = false;         // ACTIVATE INDICATOR
input string IndicatorName = "";     // INDICATOR NAME 
input int IndiBufferCall = 0;        //  CALL 
input int IndiBufferPut = 1;         // PUT 
input signaltype SignalType = IntraBar;    //  ENTEY TYPE 

input string ___________EXTERNAL_INDICATOR_2_____________= "============ COMBINER 2!  ======================================================================"; //=================================================================================";
input simnao COMBINER2 = false;         // ACTIVATE INDICATOR
input string IndicatorName2 = "";     // INDICATOR NAME 
input int IndiBufferCall2= 0;        //  CALL
input int IndiBufferPut2 = 1;         //  PUT 
input signaltype SignalType2 = IntraBar;    //  ENTEY TYPE 

input string ___________EXTERNAL_INDICATOR_3_____________= "============ COMBINER 3!  ======================================================================"; //=================================================================================";
input simnao COMBINER3 = false;         // ACTIVATE INDICATOR
input string IndicatorName3 = "";     // INDICATOR NAME
input int IndiBufferCall3= 0;        //  CALL
input int IndiBufferPut3 = 1;         // PUT 
input signaltype SignalType3 = IntraBar;    //  ENTEY TYPE 

input string ___________EXTERNAL_INDICATOR_4_____________= "============ COMBINER 4!  ======================================================================"; //=================================================================================";
input simnao COMBINER4 = false;         // ACTIVATE INDICATOR
input string IndicatorName4 = "";     // INDICATOR NAME
input int IndiBufferCall4= 0;        //  CALL 
input int IndiBufferPut4 = 1;         //  PUT 
input signaltype SignalType4 = IntraBar;    //  ENTEY TYPE 

input string ___________EXTERNAL_INDICATOR_5_____________= "============ COMBINER 5!  ======================================================================"; //=================================================================================";
input simnao COMBINER5 = false;         // ACTIVATE INDICATOR
input string IndicatorName5 = "";     // INDICATOR NAME 
input int IndiBufferCall5= 0;        //  CALL 
input int IndiBufferPut5 = 1;         //  PUT 
input signaltype SignalType5 = IntraBar;    //  ENTEY TYPE

input string _________ANALYSIS___________________ = "=======ANALYSIS FILTERS! ================================================================================"; //=================================================================================

static simnao  noDellArrow_         = true; // Interval(on/off)
input int Intervalo                  = 5;  // Interval Between Orders?
input simnao   AtivarTamanhoVela    = NAO; // MINIMO PIPS
extern int MinPips                    = 400; // BLOQUEAR VELA MAIOR QUE "XX" PIPS
input simnao   AtivarTamanhoVela1   = NAO; // MAXIMO PIPS
extern int maxPips                    = 0; // BLOQUEAR VELA MENOR QUE "XX" PIPS
input simnao Bloquea                 = false; // BLOCK ENTRIES OF CANDLE OF THE SAME COLOR (gG2)
input int quantidade                  = 3; // NUMBER OF CANDLES
simnao    FiltroVelas                = false; // USE CANDLE FILTER
input simnao   AlertsMessage         = true; // SEND ALERT
antloss  Antiloss                     = true; // QUANTITY OF CANDLES TO ENTER

input string _____________ROBOS____________________      = "====== AUTOMATIZADORES ================================================================================="; //=================================================================================
bool  ModoOTC                                            = false;  // Enviar sinal em OTC?
input automtizadores UsarRobo                            = DesligarRobo; // Usar Robo Automatizador
input int    ExpiryMinute                                 = 0;      // Expiration Time (0 = AUTO)
input string SignalName_                                  = "GG_MASTER_V2"; // Nome do Sinal para os Robos (Opcional)

input string ____________MX2____________________         = "====== MX2 =================================================================================";
input tipo_expiracao TipoExpiracao                        = RETRACAO;   // Tipo De Entrada No MX2 TRADING ?

input string ____________B2IQ____________________        = "====== B2IQ =================================================================================";
input string vps                                          = ""; // IP:PORTA da VPS (caso utilize B2IQ)

input string ____________MT2____________________         = "====== MT2 =================================================================================";
input martintype MartingaleType                           = OnNextExpiry; // Martingale  (para MT2)?
input double MartingaleCoef                               = 2.3; // Coeficiente do Martingale MT2?
input int    MartingaleSteps                              = 1;  // MartinGales Pro MT2?
input double TradeAmount                                  = 2;  // Valor do Trade Pro MT2?

input string _____EXTENSAO_RETORNO____________________     = "==== RETURN FILE EXTENSION =================================================================================";
input extensaoROBO ExtensaoBot                            = csv; // Extension to write the RETURN

input string ______TELEGRAM_CONFIG____________________    = "====== SEND TELEGRAM SIGNAL PART =================================================================================";
input signaltel GLOBALINTERVAL =  multiplesignal; // GLOBAL INTERVEL 

input simnao enviar_telegram                              = false;       // SEND TELEGRAM SIGNAL
input simnao sendphoto                                    = false;       // SEND SIGNAL SCREENSHOT TO TG
input simnao sendphotor                                   = false;       // SEND RESULT SCREENSHOT TO TG
input simnao Clearimageon                                 = false;      // CLER SCREENSHOT 

string nome_sala                                          = "GG_MASTER_V2"; // NAME OF YOUR ROOM
input string apikey_                                      = "********************"; // API KEY
input string chatid                                       = "-**********"; // CHAT ID

input simnao ATpropaganda3_                               = true;       // ROOM NAME HEADER / FOOTER
input string progandaTexto3                               = "LIVE SIGNAL"; // SIGNAL HEADER / FOOTER

input simnao ATpropaganda_                                = true;       // TELEGRAM USER NAME
input string progandaTexto                                = "";        // ADVERTISING TEXT RESULT

input simnao ATpropaganda4_                               = true;       // TELEGRAM OWNER
input string progandaText4                                = "@MdShoaibkhann"; // TELEGRAM OWNER

input simnao ATpropaganda1_                               = true;       // TELEGRAM CONTACT INFORMATION
input string progandaTexto1                               = "";        // ADVERTISING TEXT SIGNAL

input simnao ATpropaganda2_                               = true;       // TELEGRAM CONTACT INFORMATION
input string progandaTexto2                               = "";        // ADVERTISING TEXT REGISTERED LINK

input string nome_contact                                 = "";         // CHECK CONTACT INFORMATION
input string msgWin                                       = "";         // MSG WIN
input string msgLoss                                      = "";         // MSG LOSS

input simnao mostrarResultadoFechamento                   = true;       // SHOW CHECKING RESULTS
input simnao resultados_parciais_ao_vivo                  = true;       // TOTAL WIN AND LOSS RESULTS
input int tempo_minutos_ao_vivo                           = 20;         // SEND RESULTS TIME

const string ______INDICATOR_OWNER____________________     = "OWNER = @MdShoaibkhann";

MqlDateTime timess;
string dirBot = "GG_MASTER_V2\\";
datetime temposs = TimeToStruct(TimeLocal(),timess);

string hoje = StringFormat("%d%02d%02d",timess.year,timess.mon,timess.day);
datetime dataExpiracao = int(D'09.09.2026'); // HERE YOU SELECT WHEN THE INDICATOR WILL EXPIRE

bool liberar_acesso = true;
#define READURL_BUFFER_SIZE   100
#define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000

string  arquivo_estatisticas = dirBot+hoje+"_results.txt";
bool assertividade_global = true;
#define CALL 1
#define PUT -1
datetime horario_expiracao[], horario_entrada[];
string horario_entrada_local[];
double entrada[];
double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
int tipo_entrada[];
datetime befTime_signal, befTime_check, befTime_telegram, befTime_alert;
datetime befTime_aovivo=TimeGMT()-10800+tempo_minutos_ao_vivo*60;

int ExpiryMinutes=ExpiryMinute == 0 ? _Period : ExpiryMinute;
string ExtensaoBots=ExtensaoBot == 0 ? "csv" : "txt";

string horario_inicio_sinais2;
string horario_fim_sinais2;

string horario_inicio_sinais4;
string horario_fim_sinais4;

int tempoIntervalo = 60;
sinal SinalEntradaMX2 = MESMA_VELA;            //Entrar na ?
corretora CorretoraMx2 = Todas;                //Corretora ?
string paridade = Symbol()=="CRYIDZbnm" ? "Crypto IDX" : Symbol();

string SignalName = SignalName_;

string apikey = apikey_;
bool noDellArrow = noDellArrow_;
bool FILT_RET = FILT_RET_;
bool ATpropaganda = ATpropaganda_;
string propagandaTexto = ATpropaganda==true ? progandaTexto : "";
bool ATpropaganda1 = ATpropaganda1_;
string propagandaTexto1 = ATpropaganda1==true ? "\n"+progandaTexto1 : "";
bool ATpropaganda2 = ATpropaganda2_;
string propagandaTexto2 = ATpropaganda2==true ? "\n"+progandaTexto2 : "";
bool ATpropaganda3 = ATpropaganda3_;
string propagandaTexto3 = ATpropaganda3==true ? "\n"+progandaTexto3 : "";
bool ATpropaganda4 = ATpropaganda4_;
string propagandaTexto4 = ATpropaganda4_==true ? "\n"+progandaText4 : "";

datetime desativar_sinais_horario;

double donforex = ativar_donforex==true ? iCustom(NULL,0,"DONFOREX",0,0) : 0;

double vcHigh[];
double vcLow[];
double vcOpen[];
double vcClose[];
int VC_NumBars =  5;
int VC_Period = 0;

int preAlerta = Entrada==ATIVAR_PRE_ALERTA ? clrWhite : clrNONE;

int mostrarSeR = MostrarLinha==true ? clrDarkOrange : clrNONE;

const bool   volumes = true;
const way    CalculationBy =BodyRatio;
const int    InpPeriod     =1;

const Pos    Position      =UpperLeft;
const int    X_Offset      =5;
const int    Y_Offset      =20;

double BullO[],BearO[],BullC[],BearC[],BullS[],BearS[],Bulli[],Beari[];
double Bull,Bear;

int PeriodoRSI_2 = 2;
int MaxiRSI_2 = 85;
int MiniRSI_2 = 15;
int PERIODOCCI_2 = 4;
int MAXCCI_2 = 100;
int MINCCI_2 = -100;

int PeriodRSI_2 = 3;
int MaxRSI_2 = 85;
int MinRSI_2 = 15;
int PeriodoRSI_3 = 5;
int MaxRSI_3 = 60;
int MinRSI_3 = 35;
int PeriodoRSI_4 = 2;
int MaxRSI_4 = 90;
int MinRSI_4 = 10;

int                   CCI3_Period               = 4;                     // Period
ENUM_APPLIED_PRICE    Apply_to3                 = PRICE_TYPICAL;         // Price
int                   CCI3_Overbought_Level     = 100;                   // Maximum Level
int                   CCI3_Oversold_Level       = -100;                  //Minimum Level
int PeriodoRSI_9 = 3;
int MaxRSI_9 = 85;
int MinRSI_9 = 15;

int PERIODOCCI0_3 = 3;
int MAXCCI_03 = 80;
int MINCCI_03 = -80;
int BB4_Period  = 20;
int BB4_Dev  = 2;
int BB4_Shift = 1;

int                RSI1_Period=2; // Period
ENUM_APPLIED_PRICE RSI1_Price=PRICE_CLOSE;
int                RSI1_MAX=90; // Maximum Level
int                RSI1_MIN=10; // Minimum Level
ENUM_TIMEFRAMES RSITimeFrame1 = PERIOD_CURRENT; //TimeFrame
int                RSI2_Period=5; // Period
ENUM_APPLIED_PRICE RSI2_Price=PRICE_CLOSE;
int                RSI2_MAX=60; // Maximum Level
int                RSI2_MIN=30; // Minimum Level
ENUM_TIMEFRAMES RSITimeFrame2 = PERIOD_CURRENT; //TimeFrame
int                RSI3_Period=3; // Period
ENUM_APPLIED_PRICE RSI3_Price=PRICE_CLOSE;
int                RSI3_MAX=85; // Maximum Level
int                RSI3_MIN=15; // Minimum Level
ENUM_TIMEFRAMES RSITimeFrame3 = PERIOD_CURRENT; //TimeFrame

bool  UseSMAFilter  = false; //Moving Average || Enable/Disable
int  MA_Shift = 0; // MA Shift
ENUM_MA_METHOD MA_Method = MODE_EMA; // Average Type
ENUM_APPLIED_PRICE    MA_Applied_Price  = PRICE_CLOSE; //Aplicar A
int FilterShift = 0; // MA Filtro Shift
int PeriodoRSI_6 = 3;
int MaxRSI_6 = 50;
int MinRSI_6 = 50;

int                   CCI5_Period               = 6;                     // Period
ENUM_APPLIED_PRICE    Apply_to5                 = PRICE_TYPICAL;         // Price
int                   CCI5_Overbought_Level     = 160;                   // Maximum Level
int                   CCI5_Oversold_Level       = -160;                  //Minimum Level
int PERIODOWPR4   = 7;
int MAXWPR4       = -10;
int MINWPR4       = -90;

int                   CCI2_Period               = 6;                     // Period
ENUM_APPLIED_PRICE    Apply_too2                 = PRICE_TYPICAL;         // Price
int                   CCI2_Overbought_Level     = 120;                   // Maximum Level
int                   CCI2_Oversold_Level       = -120;                  //Minimum Level
int PERIODORVI3   = 4; //Period
double MAXRVI3    = 0.2; //Maximum Level
double MINRVI3    = -0.2; //Minimum Level

int                   CCI6_Period               = 14;                     // Period
ENUM_APPLIED_PRICE    Apply_to6                 = PRICE_TYPICAL;         // Price
int                   CCI6_Overbought_Level     = 100;                   // Maximum Level
int                   CCI6_Oversold_Level       = -100;                  //Minimum Level
int    BB2_Period               = 15;//Period
double    BB2_Dev                  = 3;// Desvio
int    BB2_Shift                = 0;//Deslocar

string ____________BOTPRO________________ = "===== SIGNAL SETTINGS BOTPRO =================================================================================";//=================================================================================";
string NameOfSignal = SignalName;            // Nome do Sinal para BOTPRO ?
double TradeAmountBotPro = TradeAmount;
int MartingaleBotPro = MartingaleSteps;      //Coeficiente do Martingale ?
instrument Instrument = DoBotPro;            // Modalidade ?

string ___________PRICEPRO_____________= "=== SIGNAL SETTINGS PRICE PRO ================================================================================="; //=================================================================================";
corretora_price_pro PriceProCorretora = EmTodas;       //Corretora ?

string _____________B2IQ__________________ = "====== SIGNAL SETTINGS B2IQ =================================================================================";//=================================================================================";
sinal SinalEntrada = MESMA_VELA;           //Entrar na ?
modo Modalidade = MELHOR_PAYOUT;           //Modalidade ?

string ________MAGIC_TRADER______________ = "===== SIGNAL SETTINGS MAGIC  ================================================================================="; //=================================================================================";
string               NomeIndicador        = SignalName;  // Nome do Sinal ?

string _____________MT2_____________= "======= SIGNAL SETTINGS MT2 ================================================================================="; //=================================================================================";
broker Broker = Todos;    //Corretora ?

string _____________TOP_WIN__________ = "===== TOP WIN SETTINGS =============================================================================================="; //=================================================================================";
string Nome_Sinal = SignalName;             // Nome do Sinal (Opcional)
sinal Momento_Entrada = MESMA_VELA;         // Vela de entrada

double g_ibuf_96[], g_ibuf_100[], g_ibuf_104[], gda_112[], gda_116[], gda_120[], gda_124[], gda_128[], gda_132[], gd_136, gd_144, gd_152, gd_160, gd_168, gd_176, gd_184, gd_192, gd_200;
bool gi_80 = TRUE, gi_208 = FALSE, gi_212 = FALSE;

string diretorio = "History\\EURUSD.txt";
string diretorioBotCopy = dirBot+"Sinal.csv";
string diretorioFrankestain = hoje+"_retorno."+ExtensaoBots;
string terminal_data_path = TerminalInfoString(TERMINAL_DATA_PATH);

string ___________GENERAL_SETTINGS_____________= "===== GENERAL_SETTINGS ======================================================================"; //=================================================================================";
bool   AlertsSound = false;                     //Alerta Sonoro?
string  SoundFileUp          = "alert2.wav";    //Som do alerta CALL
string  SoundFileDown        = "alert2.wav";    //Som do alerta PUT
string  AlertEmailSubject    = "";              //Assunto do E-mail (vazio = desabilita).
bool    SendPushNotification = false;           //Push Notifications?

double up[];
double down[];
double CrossUp[];
double CrossDown[];
double AntilossUp[];
double AntilossDn[];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double bufferMediaMovel[];

int   Sig_UpCall0 = 0;
int   Sig_DnPut0 = 0;
int   Sig_DnPut1 = 0;
int   Sig_Up0 = 0;
int   Sig_Up1 = 0;
int   Sig_Dn0 = 0;
int   Sig_Dn1 = 0;
int   Sig_Up5 = 0;
int   Sig_Dn5 = 0;
datetime LastSignal;

int MAMode;
string strMAType;
double MA_Cur, MA_Prev;
datetime data;
int candlesup,candlesdn;

#import "mt2trading_library.ex4"   // Please use only library version 13.52 or higher !!!
bool mt2trading(string symbol, string direction, double amount, int expiryMinutes);
bool mt2trading(string symbol, string direction, double amount, int expiryMinutes, string signalname);
bool mt2trading(string symbol, string direction, double amount, int expiryMinutes, martintype martingaleType, int martingaleSteps, double martingaleCoef, broker myBroker, string signalName, string signalid);
int  traderesult(string signalid);
int getlbnum();
bool chartInit(int mid);
int updateGUI(bool initialized, int lbnum, string indicatorName, broker Broker, bool auto, double amount, int expiryMinutes);
int processEvent(const int id, const string& sparam, bool auto, int lbnum);
void showErrorText(int lbnum, broker Broker, string errorText);
void remove(const int reason, int lbnum, int mid);

#import "TopWinLib.ex4"
void TradeTopWin(string ativo, string direcao, int expiracao, int momento_entrada, string nomedosinal, datetime data_atual, int timeFrameGrafico);
#import

void cleanGUI();
#import

#import "Connector_Lib.ex4"
void put(const string ativo, const int periodo, const char modalidade, const int sinal_entrada, const string vps);
void call(const string ativo, const int periodo, const char modalidade, const int sinal_entrada, const string vps);
#import

#import "botpro_lib.ex4"
int botpro(string direction, int expiration, int martingale, string symbol, double value, string name, string bindig);
#import

#import "MX2Trading_library.ex4"
bool mx2trading(string par, string direcao, int expiracao, string SignalName, int Signaltipo, int TipoExpiracao, string TimeFrame, string mID, string Corretora);
#import

#import "Inter_Library.ex4"
int Magic(int time, double value, string active, string direction, double expiration_incandle, string signalname, int expiration_basic);
#import

#import "PriceProLib.ex4"
void TradePricePro(string ativo, string direcao, int expiracao, string nomedosinal, int martingales, int martingale_em, int data_atual, int corretora);
#import

#import "MambaLib.ex4"
void mambabot(string ativo, string sentidoseta, int timeframe, string NomedoSina);
#import

int lbnum = 0;
datetime sendOnce;
int  Posicao = 0;

string asset;
string signalID;
string nc_section2 = "============ ID CODE!  ======================================================================================================="; // =========================================================================================
int mID = 0;      // ID (do not change)

double win[],loss[],wg[],ht[],wg2[],ht2[],wg1,ht1,WinRate1,WinRateGale1,WinRateGale22,ht22,wg22,mb;
double Barcurrentopen,Barcurrentclose,Barcurrentopen1,Barcurrentclose1,Barcurrentopen2,Barcurrentclose2,m1,m2,lbk,wbk;
double M1stochK,M1stochD,M5stochK,M5stochD,M15stochK,M15stochD,M30stochK,M30stochD,H1stochK,H1stochD,H4stochK,H4stochD,D1stochK,D1stochD,StochK,StochD,StochKprev,StochDprev;
double MAM1,MAM5,MAM15,MAM30,MAH1,MAH4,MAD1,MAM1prev,MAM5prev,MAM15prev,MAM30prev,MAH1prev,MAH4prev,MAD1prev,MACurrent,MAPrevious;
double Spread,PSARCurrent,PSARPrev,MACDCurrent,MACDPrev,MACDSignal,MACDSignalPrev,MAXover1,MAXover2,VolumePercent,Vol,VolPrev,Bar1,Bar2,Bar3,Bar4,Bar5,Bar6,Bar7,Bar8,Bar9,Bar10;
double Bar1percent,Bar2percent,Bar3percent,Bar4percent,Bar5percent,BarsAverage1,BarsAverage2,BarsAverage3,BarsAverage4,BarsAverage5,BarsAllpercent;
int trendM1,trendM5,trendM15,trendM30,trendH1,trendH4,trendD1,PSAR,MAXoverSignal,VolValue;

string WinRate;
string WinRateGale;
string WinRateGale2;
datetime tvb1;
int tb,g;

string s[];
datetime TimeBarEntradaUp;
datetime TimeBarEntradaDn;
datetime TimeBarUp;
datetime TimeBarDn;
datetime tempoEnvioTelegram;
double Resistencia[];
double Suporte[];
string apiKey = apikey_ ;
string chatId=chatid ;
int x;
double m;
bool initgui = false;
datetime dfrom;

string terminalPath = TerminalInfoString(TERMINAL_DATA_PATH);
string filePaths = terminalPath + "\\MQL4\\Files\\" + Symbol() + "_" + IntegerToString(_Period) + "SIGNAL.png";
string filePathsResult = terminalPath + "\\MQL4\\Files\\" + Symbol() + "_" + IntegerToString(_Period) + "RESULT.png";

int OnInit()
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {
   Comment(" ");
   ObjectsDeleteAll(0,"Text*");
   ObjectsDeleteAll(0,"Texto_*");
   ObjectsDeleteAll(0,"Linha_*");
   ObjectsDeleteAll(0, "FrameLabel*");
   ObjectsDeleteAll(0, "label*");
   ObjectDelete(0,"zexa");
   ObjectDelete(0,"Sniper");
   ObjectDelete(0,"Sniper1");
   ObjectDelete(0,"Sniper2");
   ObjectDelete(0,"Sniper3");
   ObjectDelete(0,"zexa");
   ObjectDelete(0,"Sniper");
   ObjectDelete(0,"Sniper1");
   ObjectDelete(0,"Sniper2");
   ObjectDelete(0,"Sniper3");
   ObjectDelete(0,"expiracao");
   ObjectDelete(0,"expiracao1");
   ObjectDelete(0,"modootc");
   ObjectDelete(0,"Sniper4");
   ObjectDelete(0,"Time_Remaining");
   ObjectDelete(0,"carregando");
   ObjectDelete(0,"carregando1");
   ObjectDelete(0,"carregando2");
   ObjectDelete(0,"carregando3");
   ObjectDelete(0,"carregando4");
   ObjectDelete(0,"filtrotendencia");
   ObjectDelete(0,"filtroretracao");
   ObjectDelete(0,"bloqueavelas");
   ObjectDelete(0,"carregando5");
   ObjectDelete(0,"programador");
   ObjectDelete(0,"cop1");
   ObjectDelete(0,"pul");
   ObjectDelete(0,"pulo");
   ObjectDelete(0,"pulo1");
   ObjectDelete(0,"pulo2");
   ObjectDelete(0,"pulo3");
   ObjectDelete(0,"Win");
   ObjectDelete(0,"Loss");
   ObjectDelete(0,"WinRate");
   ObjectDelete(0,"WinGale1");
   ObjectDelete(0,"WinRateGale");
   ObjectDelete(0,"Hit");
   ObjectDelete(0,"nomeFundo");
   ObjectDelete(0,"nomeFundo2");
   ObjectDelete("VolBG1");
   ObjectDelete("Text1");
   ObjectDelete("Bulls1");
   ObjectDelete("Bullish1");
   ObjectDelete("UpPer1");
   ObjectDelete("Bears1");
   ObjectDelete("Bearish1");
   ObjectDelete("DnPer1");
   ObjectDelete("COP1");

   ObjectsDeleteAll(0, "WinNON_MTG*");
   ObjectsDeleteAll(0, "LossNON_MTG*");
   ObjectsDeleteAll(0, "WinRateNON_MTG*");   
   ObjectsDeleteAll(0, "WinMTG1*");
   ObjectsDeleteAll(0, "LossMTG1*");
   ObjectsDeleteAll(0, "WinRateMTG1*");
   ObjectsDeleteAll(0, "separator*");   
   ObjectsDeleteAll(0, "WinNON_MTG*");
   ObjectsDeleteAll(0, "LossNON_MTG*");
   ObjectsDeleteAll(0, "WinRateNON_MTG*");   
   ObjectsDeleteAll(0, "WinMTG2*");
   ObjectsDeleteAll(0, "LossMTG2*");
   ObjectsDeleteAll(0, "WinRateMTG2*");  

   FileDelete(UNIQUE_SIGNAL_FILE_NAME);
  }

double calctam()
  {
   if(Digits<=3)
     {return(0.001);}
   else
      if(Digits>=4)
        {return(0.00001);}
      else
        {
         return(0);
        }
  }

bool tamanhodevela(int i)
  {
   double tamanho = calctam()*MinPips;

   if((High[i+0]-Low[i+0])<=tamanho)
     {return(true);}
   else
     {
      return(false);
     }

  }

double calctam1()
  {
   if(Digits<=3)
     {return(0.001);}
   else
      if(Digits>=4)
        {return(0.00001);}
      else
        {
         return(0);
        }
  }

bool tamanhodevela1(int i)
  {
   double tamanho = calctam1()*maxPips;

   if((High[i+0]-Low[i+0])>=tamanho)
     {return(true);}
   else
     {
      return(false);
     }

  }

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[]
               )
  {
      // код доступен только после оплаты
   }

   if(TimeGMT()>dataExpiracao)
     {
      Alert("account not authorized Support Telegram @MdShoaibkhann");
      return(-1);
     }

   if(isNewBar())
     {
     }

   ResetLastError();

   if(MartingaleType == NoMartingale || MartingaleType == OnNextExpiry || MartingaleType == Anti_OnNextExpiry)
      signalID = IntegerToString(GetTickCount()) + IntegerToString(MathRand());   // For NoMartingale or OnNextExpiry martingale will be candle-wide unique id generated

   ArrayResize(Resistencia,0);
   ArrayResize(Suporte,0);
   ArrayResize(CrossUp,0);
   ArrayResize(CrossDown,0);

   ChartRedraw(ChartID());
   if(liberar_acesso == true)
     {

      bull_bear(rates_total,prev_calculated,time,open,high,low,close,tick_volume,volume,spread);
      filterRatio();
      for(int i=Velas; i>=0; i--)
        {
         dfrom = TimeCurrent() - 60 * 60 * 24*Velas;

         if(Time[i] > dfrom)
           {

            double up1, dn1, up2, dn2, up3, dn3, up4, dn4, up5, dn5;
            bool up_master, dn_master,up_master1, dn_master1,up_master2, dn_master2,up_master3, dn_master3,up_master4, up_hulk, dn_hulk, up_professor, dn_professor, up_ninja, dn_ninja, up_sniper, dn_sniper,
            dn_master4, fora_banda_up, up_KEN, dn_KEN, up_HUNTER, dn_HUNTER, fora_banda_dn, up_adx, alta = false, dn_adx, up_cci, dn_cci,up_MACD, dn_MACD, up_RVI, 
            dn_RVI,  up_MFI, dn_MFI, up_psar,up_sg, dn_sg,  dn_psar,  up_WPR, dn_WPR, up_Stochastic, dn_Stochastic, up_shadow_ok = false, dn_shadow_ok = false,
             up_filter_ratio = false, dn_filter_ratio = false, ser_up, ser_dn, upmv1=false,dnmv1=false,upmv2=false,dnmv2=false,upmv3=false,
             dnmv3=false,upmv4=false,dnmv4=false, up_KC = false, dn_KC = false;

         fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);
         fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_OPEN, i);
         fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_CLOSE, i);

         slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);
         slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_OPEN, i);
         slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_CLOSE, i);

            double ema1 = iMA(NULL, 0, mediaMovel, 0, MODE_LWMA, PRICE_HIGH,i);
            double ema2 = iMA(NULL, 0, mediaMovel, 0, MODE_LWMA, PRICE_LOW,i);
            double CCI_2 = iCCI(NULL,_Period,PERIODOCCI_2,PRICE_TYPICAL,i+1);
            double RSI_5 = iRSI(Symbol(),Period(),2,PRICE_CLOSE,i);
            double CCI_4 = iCCI(NULL,_Period,PERIODOCCI0_3,PRICE_TYPICAL,i);
            double RSI_2 = iRSI(Symbol(),Period(),2,PRICE_CLOSE,i);
            double RSI_3 = iRSI(Symbol(),Period(),2,PRICE_CLOSE,i);
            double RSI_4 = iRSI(Symbol(),Period(),2,PRICE_CLOSE,i);
            double RSI_6 = iRSI(Symbol(),Period(),2,PRICE_CLOSE,i);
            double MA_1 =iMA(NULL,0,20,0,MODE_SMMA,PRICE_CLOSE,i);
            double CCI_10   = iCCI(NULL,PERIOD_CURRENT,CCI5_Period,Apply_to5,i);
            double CCI_11   = iCCI(NULL,PERIOD_CURRENT,CCI6_Period,Apply_to6,i);
            double WPR_4 = iWPR(Symbol(),Period(),PERIODOWPR4,i);

           double PadraoVelas = (Open[i+1] + High[i+0] + Low[i+0] + Close[i+2]) / 4.0;
            double CCI_8   = iCCI(NULL,PERIOD_CURRENT,CCI3_Period,Apply_to3,i);
            double RSI_9 = iRSI(Symbol(),Period(),2,PRICE_CLOSE,i);

            double CCI_7   = iCCI(NULL,PERIOD_CURRENT,CCI2_Period,Apply_too2,i);
            double RVI_4 = iRVI(Symbol(),Period(),PERIODORVI3,0,i);

            double velas = (Open[i] + High[i] + Low[i] + Close[i]) / 4;

            double fractal1 = iFractals(NULL, 0, MODE_UPPER, i);
            if(fractal1 > 0 && velas > ema1)
               Resistencia[i] = High[i];
            else
               Resistencia[i] = Resistencia[i+1];

            double fractal2 = iFractals(NULL, 0, MODE_LOWER, i);
            if(fractal2 > 0 && velas < ema2)
               Suporte[i] = Low[i];
            else
               Suporte[i] = Suporte[i+1];

            ser_up = (!SeR || (SeR && (Low[i] <= Suporte[i] && Open[i] >= Close[i]) && (High[i+1]>= Suporte[i+1])));  //Suporte e Resistencia // LOW
            ser_dn = (!SeR || (SeR && (High[i]>= Resistencia[i] && Open[i] <= Close[i]) && (Low[i+1] <= Resistencia[i+1])));  //Suporte e Resistencia // HIGHT

            if(AtivaDonchian)
              {

               double smin=0, smax=0, SsMax=0, SsMin=0;

               if(Extremes ==1)
                 {
                  SsMax = High[Highest(NULL,0,MODE_HIGH,Periods,i)];
                  SsMin = Low[Lowest(NULL,0,MODE_LOW,Periods,i)];
                 }
               else
                  if(Extremes == 3)
                    {
                     SsMax = (Open[Highest(NULL,0,MODE_OPEN,Periods,i)]+High[Highest(NULL,0,MODE_HIGH,Periods,i)])/2;
                     SsMin = (Open[Lowest(NULL,0,MODE_OPEN,Periods,i)]+Low[Lowest(NULL,0,MODE_LOW,Periods,i)])/2;
                    }
                  else
                    {
                     SsMax = Open[Highest(NULL,0,MODE_OPEN,Periods,i)];
                     SsMin = Open[Lowest(NULL,0,MODE_OPEN,Periods,i)];
                    }

               smin = SsMin+(SsMax-SsMin)*Margins/100;
               smax = SsMax-(SsMax-SsMin)*Margins/100;
               ExtMapBuffer1[i-Advance]=smin;
               ExtMapBuffer2[i-Advance]=smax;

               if(Close[i] < smin && !alta)
                 {
                  alta = true;
                  fora_banda_up = true;
                 }
               else
                 {
                  fora_banda_up = false;
                 }

               if(Close[i] > smax && alta)
                 {
                  alta = false;
                  fora_banda_dn = true;
                 }
               else
                 {
                  fora_banda_dn = false;
                 }
              }
            else
              {
               fora_banda_up = true;
               fora_banda_dn = true;
              }

         double Maxima = (iOpen(NULL,0,iHighest(NULL,0,MODE_OPEN,AtivaDonchian,i))+iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,AtivaDonchian,i)))/2;
         double Minima = (iOpen(NULL,0,iLowest(NULL,0,MODE_OPEN,AtivaDonchian,i))+iLow(NULL,0,iLowest(NULL,0,MODE_LOW,AtivaDonchian,i)))/2;
         Maxima=Maxima-(Maxima-Minima)*-2/100;
         Minima=Minima+(Minima-Maxima)*-2/100;

         double maximaEma = iMA(NULL, 0, 14, 1, MODE_EMA, PRICE_HIGH,i);
         double minimaEma = iMA(NULL, 0, 14, 1, MODE_EMA, PRICE_LOW,i);

if (KeltnerChannel )
{
    double MiddleLine = iMA(NULL, 0, KeltnerPeriod, 0, MODE_EMA, PRICE_CLOSE, i);
    double ATR = iATR(NULL, 0, KCAtrPeriod, i);

    if (ATR > 0)
    {
        double UpperLine = MiddleLine + (ATRMultiplier * ATR);
        double LowerLine = MiddleLine - (ATRMultiplier * ATR);

        MiddleBuffer[i] = MiddleLine;
        UpperBuffer[i] = UpperLine;
        LowerBuffer[i] = LowerLine;

        up_KC = Close[i] < LowerLine;
        dn_KC = Close[i] > UpperLine;

        switch(KCMode)
        {
            case OUT_OF_LEVEL:
                up_KC = (Close[i] > UpperLine);
                dn_KC = (Close[i] < LowerLine);
                break;

            case TOUCH_LEVEL:
                up_KC = (High[i] >= UpperLine);
                dn_KC = (Low[i] <= LowerLine);
                break;

            case RESPECT_LEVEL:
                up_KC = (Low[i] >= UpperLine);
                dn_KC = (High[i] <= LowerLine);
                break;

            case ON_LEVEL_CLOSE:
                up_KC = (Close[i] > UpperLine && Close[i-1] <= UpperLine);
                dn_KC = (Close[i] < LowerLine && Close[i-1] >= LowerLine);
                break;

            case INSIDE_LEVEL:
                up_KC = (Close[i] < UpperLine && Close[i] > LowerLine);
                dn_KC = (Close[i] > UpperLine || Close[i] < LowerLine);
                break;

             case REVERSAL_SIGNAL:
                if (i > 1)
                {
                    up_KC = (Close[i] < UpperLine && Close[i-1] > UpperLine);
                    dn_KC = (Close[i] > LowerLine && Close[i-1] < LowerLine);
                }
                break;

                           case FAKE_BREAKOUT:
                if (i > 1)
                {
                    up_KC = (Close[i] < UpperLine && Close[i-1] > UpperLine);
                    dn_KC = (Close[i] > LowerLine && Close[i-1] < LowerLine);
                }
                break;   

        }
    }
}
else
{
    up_KC = true;
    dn_KC = true;
}   

         if(sniper_Enabled)
           {
            up_sniper  = CCI_10<CCI5_Oversold_Level && WPR_4<=MINWPR4;
            dn_sniper  = CCI_10>CCI5_Overbought_Level && WPR_4>=MINWPR4;
           }
         else
           {
            up_sniper = true;
            dn_sniper = true;
           }

         if(ninja_Enabled)
           {
            up_ninja = iRSI(NULL, RSITimeFrame1, RSI1_Period, RSI1_Price, i) < RSI1_MIN
                      && iRSI(NULL, RSITimeFrame2, RSI2_Period, RSI2_Price, i) < RSI2_MIN
                      && iRSI(NULL, RSITimeFrame3, RSI3_Period, RSI3_Price, i) < RSI3_MIN
                      ;
            dn_ninja = iRSI(NULL, RSITimeFrame1, RSI1_Period, RSI1_Price, i) > RSI1_MAX
                      && iRSI(NULL, RSITimeFrame2, RSI2_Period, RSI2_Price, i) > RSI2_MAX
                      && iRSI(NULL, RSITimeFrame3, RSI3_Period, RSI3_Price, i) > RSI3_MAX

                      ;
           }
         else
           {
            up_ninja = true;
            dn_ninja = true;
           }

         if(professor_Enabled)
           {
            up_professor = CCI_8<CCI3_Oversold_Level && RSI_9<=MinRSI_9 ;
            dn_professor =   CCI_8>CCI3_Overbought_Level && RSI_9>=MaxRSI_9 ;
           }
         else
           {
            up_professor = true;
            dn_professor = true;
           }

         double MA = iMA(NULL,PERIOD_CURRENT,MA_Period,MA_Shift,MA_Method,MA_Applied_Price,i+FilterShift);
         double RVI_2 = iRVI(Symbol(),Period(),PERIODORVI,0,i);//0 = Linha do RVI, 1 = Linha de sinal

         fasterEMAnow = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_TYPICAL, i);
         fasterEMAprevious = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_TYPICAL, i+1);
         fasterEMAafter = iMA(NULL, 0, FasterEMA, 0, MODE_EMA, PRICE_TYPICAL, i-1);

         slowerEMAnow = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_TYPICAL, i);
         slowerEMAprevious = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_TYPICAL, i+1);
         slowerEMAafter = iMA(NULL, 0, SlowerEMA, 0, MODE_EMA, PRICE_TYPICAL, i-1);

         if(hulk_Enabled)
           {
            up_hulk = CCI_7<CCI2_Oversold_Level && RVI_4<=MINRVI3 ;
            dn_hulk =   CCI_7>CCI2_Overbought_Level && RVI_4>=MAXRVI3 ;
           }
         else
           {
            up_hulk = true;
            dn_hulk = true;
           }

         if(HUNTER_Enabled)
           {
            up_HUNTER = Close[i+0]<iBands(NULL,PERIOD_CURRENT,BB4_Period,BB4_Dev,BB4_Shift,0,MODE_LOWER,i+0)
                      && Open[i+0]>iBands(NULL,PERIOD_CURRENT,BB4_Period,BB4_Dev,BB4_Shift,0,MODE_LOWER,i+0)
                      && Open[i+1]>iBands(NULL,PERIOD_CURRENT,BB4_Period,BB4_Dev,BB4_Shift,0,MODE_LOWER,i+1)
                      && Close[i+1]>iBands(NULL,PERIOD_CURRENT,BB4_Period,BB4_Dev,BB4_Shift,0,MODE_LOWER,i+1)
                      && (CCI_4<MAXCCI_03 && RSI_5<=MaxRSI_2);

            dn_HUNTER =  Close[i+0]>iBands(NULL,PERIOD_CURRENT,BB4_Period,BB4_Dev,BB4_Shift,0,MODE_UPPER,i+0)
                       && Open[i+0]<iBands(NULL,PERIOD_CURRENT,BB4_Period,BB4_Dev,BB4_Shift,0,MODE_UPPER,i+0)
                       && Open[i+1]<iBands(NULL,PERIOD_CURRENT,BB4_Period,BB4_Dev,BB4_Shift,0,MODE_UPPER,i+1)
                       && Close[i+1]<iBands(NULL,PERIOD_CURRENT,BB4_Period,BB4_Dev,BB4_Shift,0,MODE_UPPER,i+1)
                       && (CCI_4>MINCCI_03 && RSI_5>=MinRSI_2);

           }
         else
           {
            up_HUNTER = true;
            dn_HUNTER = true;
           }

            if(Cci_Enabled)
              {
               double CCI   = iCCI(NULL,PERIOD_CURRENT,CCI_Period,Apply_to,i);
               up_cci  = CCI<CCI_Oversold_Level;
               dn_cci  = CCI>CCI_Overbought_Level;
              }
            else
              {
               up_cci = true;
               dn_cci = true;
              }

         if(KEN_Enabled){
            up_KEN = (CCI_2>MINCCI_2 && RSI_2<=MinRSI );
            dn_KEN = (CCI_2<MAXCCI_2 && RSI_2>=MaxRSI);
            } else 
            { 
            up_KEN = true;
            dn_KEN = true;
            }

          if(Reversal_Enabled){
            up_sg =  RSI_2<=MinRSI_2 && RSI_3<=MinRSI_3 && RSI_4<=MinRSI_4 ;
            dn_sg =  RSI_2>=MaxRSI_2 && RSI_3>=MinRSI_3 && RSI_4>=MinRSI_4  ;
            } else 
            { 
            up_sg = true;
            dn_sg = true;
            }  

if (UsePSAR) 
   {
      up_psar = (Close[i] > iSAR(NULL, PERIOD_CURRENT, PSAR_Step, PSAR_Maximum, i) &&
                 Open[i] > iSAR(NULL, PERIOD_CURRENT, PSAR_Step, PSAR_Maximum, i) &&
                 Close[i + 1] > iSAR(NULL, PERIOD_CURRENT, PSAR_Step, PSAR_Maximum, i + 1) &&
                 Open[i + 1] > iSAR(NULL, PERIOD_CURRENT, PSAR_Step, PSAR_Maximum, i + 1));

      dn_psar = (Close[i] < iSAR(NULL, PERIOD_CURRENT, PSAR_Step, PSAR_Maximum, i) &&
                 Open[i] < iSAR(NULL, PERIOD_CURRENT, PSAR_Step, PSAR_Maximum, i) &&
                 Close[i + 1] < iSAR(NULL, PERIOD_CURRENT, PSAR_Step, PSAR_Maximum, i + 1) &&
                 Open[i + 1] < iSAR(NULL, PERIOD_CURRENT, PSAR_Step, PSAR_Maximum, i + 1));
   } 
   else 
   {
      up_psar = true;
      dn_psar = true;
   }

            if(Stochastic_Enabled)
              {
               double Stochastic = iStochastic(NULL, STCTimeFrame, SO_KPeriod, SO_DPeriod, SO_Slowing, SO_Mode, SO_Price, MODE_SIGNAL, i);

               up_Stochastic  = Stochastic<SO_MIN;
               dn_Stochastic  = Stochastic>SO_MAX;
              }
            else

              {
               up_Stochastic = true;
               dn_Stochastic = true;
              }    

            if(Stochastic_Enabled2)
              {
               double Stochastic = iStochastic(NULL, STCTimeFrame, SO_KPeriod, SO_DPeriod, SO_Slowing, SO_Mode, SO_Price, MODE_SIGNAL, i);

               up_Stochastic  = Stochastic<SO_MIN;
               dn_Stochastic  = Stochastic>SO_MAX;
              }
            else
              {
               up_Stochastic = true;
               dn_Stochastic = true;
              }    

               if(EnabledRVI)
               {
                 double RVI = iRVI(Symbol(),Period(),PERIODORVI*(TimeFrame4/_Period),Linha,i+1);
                 up_RVI  = RVI<MINRVI;
                 dn_RVI  = RVI>MAXRVI;
                }
                else
              {
               up_RVI = true;
               dn_RVI = true;
              }

               if(EnabledRVI)
                  {
                     double MFI = iMFI(Symbol(),Period(),PERIODOMFI*(TimeFrame5/_Period),i+mfiPrice);
                     up_MFI  = MFI<=MINMFI;
                     dn_MFI  = MFI>MAXMFI;
                    }
               else
              {
               up_MFI = true;
               dn_MFI = true;
              }

               if(EnabledWPR)
                   {
                     double WPR = iWPR(Symbol(),Period(),PERIODOWPR*(TimeFrame6/_Period),i+wprPrice);
                     up_WPR  = WPR>=MINWPR;
                     dn_WPR  = WPR<MAXWPR;
                    }
                  else
                     {
                      up_WPR = true;
                      dn_WPR = true;
                       }

            if(Adx_Enabled)
              {
               double ADX = iADX(NULL,0,period_adx,price_adx,MODE_MAIN, i);
               up_adx  = (ADX<=level_adx);
               dn_adx  = (ADX>=level_adx);
              }
            else
              {
               up_adx = true;
               dn_adx = true;
              }

            if(MasterEstrategia)
              {
               double RSI_1 = iRSI(Symbol(),Period(),PeriodoRSI,PRICE_OPEN,i);

               if(Low[i+0] <= Suporte[i+0] && Open[i] > Close[i]
                  && ser_up //Suporte e Resistencia
                  && (RSI_1<=MinRSI))

                  up_master = true;
               else
                  up_master = false;

               if(High[i+0]>= Resistencia[i+0] && Open[i] < Close[i]
                  && ser_dn  //Suporte e Resistencia
                  && (RSI_1>=MaxRSI))

                  dn_master = true;
               else
                  dn_master = false;

              }
            else
              {
               up_master = true;
               dn_master = true;
              }

            if(Filtro_Tendencia)
              {
               if(g_ibuf_100[i+1] !=EMPTY_VALUE)   //RED
                 {
                  up_filter_ratio = true;
                 }
               else
                  if(g_ibuf_104[i+1] !=EMPTY_VALUE)   //GREEN
                    {
                     dn_filter_ratio = true;
                    }
              }
            else
              {
               up_filter_ratio = true;
               dn_filter_ratio = true;
              }

                   if(HILL3)
              {
               double HILL_3 = iRSI(Symbol(),Period(),RSIPeriod,PriceRSI,i);

               if(Low[i+0] <= Suporte[i+0] && Open[i] > Close[i]
                  && ser_up //Suporte e Resistencia
                  && (HILL_3<=MinRSI))

                  up_master = true;
               else
                  up_master = false;

               if(High[i+0]>= Resistencia[i+0] && Open[i] < Close[i]
                  && ser_dn  //Suporte e Resistencia
                  && (HILL_3>=MaxRSI))

                  dn_master = true;
               else
                  dn_master = false;

              }
            else
              {
               up_master1 = true;
               dn_master1 = true;
              }

                   if(HILL)
              {
               double HILL_3 = iRSI(Symbol(),Period(),RSIPeriod,PriceRSI,i);

               if(Low[i+0] <= Suporte[i+0] && Open[i] > Close[i]
                  && ser_up //Suporte e Resistencia
                  && (HILL_3<=MinRSI))

                  up_master = true;
               else
                  up_master = false;

               if(High[i+0]>= Resistencia[i+0] && Open[i] < Close[i]
                  && ser_dn  //Suporte e Resistencia
                  && (HILL_3>=MaxRSI))

                  dn_master = true;
               else
                  dn_master = false;

              }
            else
              {
               up_master4 = true;
               dn_master4 = true;
              }

                   if(HILL1)
              {
               double HILL_3 = iRSI(Symbol(),Period(),RSIPeriod,PriceRSI,i);

               if(Low[i+0] <= Suporte[i+0] && Open[i] > Close[i]
                  && ser_up //Suporte e Resistencia
                  && (HILL_3<=MinRSI))

                  up_master = true;
               else
                  up_master = false;

               if(High[i+0]>= Resistencia[i+0] && Open[i] < Close[i]
                  && ser_dn  //Suporte e Resistencia
                  && (HILL_3>=MaxRSI))

                  dn_master = true;
               else
                  dn_master = false;

              }
            else
              {
               up_master2 = true;
               dn_master2 = true;
              }

                   if(HILL2)
              {
               double HILL_3 = iRSI(Symbol(),Period(),RSIPeriod,PriceRSI,i);

               if(Low[i+0] <= Suporte[i+0] && Open[i] > Close[i]
                  && ser_up //Suporte e Resistencia
                  && (HILL_3<=MinRSI))

                  up_master = true;
               else
                  up_master = false;

               if(High[i+0]>= Resistencia[i+0] && Open[i] < Close[i]
                  && ser_dn  //Suporte e Resistencia
                  && (HILL_3>=MaxRSI))

                  dn_master = true;
               else
                  dn_master = false;

              }
            else
              {
               up_master3 = true;
               dn_master3 = true;
              }

            if(FILT_RET)
              {
               if(Close[i] > Open[i])
                  dn_shadow_ok = (Close[i] - Open[i])/((High[i] - Open[i])+0.0000001) > ((double)ShadowRatio)/100;

               else
                  up_shadow_ok = (Open[i] - Close[i])/((Open[i] - Low[i])+0.0000001) > ((double)ShadowRatio)/100;
              }
            else
              {
               up_shadow_ok = true;
               dn_shadow_ok = true;
              }

       if( MACD_Enabled)
              {
               double  MACD  =iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
                                       iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

               up_MACD  =  MACD<CCI_Oversold_Level;
               dn_MACD  =  MACD>CCI_Overbought_Level;
              }
            else
              {
               up_MACD = true;
               dn_MACD = true;
              }

            if(MA1_Enabled){
            double EMA123 = iMA(_Symbol, MA1_Timeframe, MA1_Period, MA1_Shift, MA1_Method, MA1_Applied_Price,MA1_Shift+ i); // Check Shift logic

           if(OPERATE1==BREAK1){
           if(Close[i] > EMA123 && Open[i] < EMA123){
             upmv1 = true;
            }
           else{
            upmv1 = false;
              }

           if(Close[i] < EMA123 && Open[i] > EMA123){
             dnmv1 = true;
            }
         else{
           dnmv1 = false;
          }
         }
   else
    if(OPERATE1==TOUCH1){
      if(Close[i] > EMA123 && Open[i] > EMA123 && Low[i] < EMA123){
         upmv1 = true;
      }
      else{
         upmv1 = false;
      }

      if(Close[i] < EMA123 && Open[i] < EMA123&& High[i] > EMA123){  // Corrected condition
         dnmv1 = true;
      }
      else{
         dnmv1 = false;
      }
   }
}
else
{
upmv1=true;
dnmv1=true;
}

        if(MA2_Enabled){
        double EMA223= iMA(_Symbol, MA2_Timeframe, MA2_Period, MA2_Shift, MA2_Method, MA2_Applied_Price,MA2_Shift+ i); // Check Shift logic

       if(OPERATE2==BREAK2){
      if(Close[i] > EMA223 && Open[i] < EMA223){
         upmv2 = true;
      }
      else{
         upmv2= false;
      }

      if(Close[i] < EMA223 && Open[i] > EMA223){
         dnmv2 = true;
      }
      else{
         dnmv2 = false;
      }
   }
   else
    if(OPERATE2==TOUCH2){
      if(Close[i] > EMA223 && Open[i] > EMA223 && Low[i] < EMA223){
         upmv2 = true;
      }
      else{
         upmv2 = false;
      }

      if(Close[i] < EMA223 && Open[i] < EMA223 && High[i] > EMA223){  // Corrected condition
         dnmv2 = true;
      }
      else{
         dnmv2= false;
      }
   }
}
else
{
upmv2=true;
dnmv2=true;
}

              if(MA3_Enabled){
   double EMA323 = iMA(_Symbol, MA3_Timeframe, MA3_Period, MA3_Shift, MA3_Method, MA3_Applied_Price,MA3_Shift+ i); // Check Shift logic

   if(OPERATE3==BREAK3){
      if(Close[i] > EMA323 && Open[i] < EMA323){
         upmv3 = true;
      }
      else{
         upmv3 = false;
      }

      if(Close[i] < EMA323 && Open[i] > EMA323){
         dnmv3 = true;
      }
      else{
         dnmv3 = false;
      }
   }
   else
    if(OPERATE3==TOUCH3){
      if(Close[i] > EMA323 && Open[i] > EMA323 && Low[i] < EMA323){
         upmv3 = true;
      }
      else{
         upmv3 = false;
      }

      if(Close[i] < EMA323 && Open[i] < EMA323 && High[i] > EMA323){  // Corrected condition
         dnmv3 = true;
      }
      else{
         dnmv3 = false;
      }
   }
}
else
{
upmv3=true;
dnmv3=true;
}

              if(MA4_Enabled){
 double   EMA423 = iMA(_Symbol, MA4_Timeframe, MA4_Period, MA4_Shift, MA4_Method, MA4_Applied_Price,MA4_Shift+ i); // Check Shift logic

   if(OPERATE4==BREAK4){
      if(Close[i] > EMA423 && Open[i] < EMA423){
         upmv4 = true;
      }
      else{
         upmv4 = false;
      }

      if(Close[i] < EMA423 && Open[i] > EMA423){
         dnmv4 = true;
      }
      else{
         dnmv4 = false;
      }
   }
   else
    if(OPERATE4==TOUCH4){
      if(Close[i] > EMA423 && Open[i] > EMA423 && Low[i] < EMA423){
         upmv4 = true;
      }
      else{
         upmv4 = false;
      }

      if(Close[i] < EMA423 && Open[i] < EMA423 && High[i] > EMA423){  // Corrected condition
         dnmv4 = true;
      }
      else{
         dnmv4 = false;
      }
   }
}
else
{
upmv4=true;
dnmv4=true;
}

            if(COMBINER)
              {
               up1 = iCustom(NULL, 0, IndicatorName, IndiBufferCall, i+SignalType);
               dn1 = iCustom(NULL, 0, IndicatorName, IndiBufferPut, i+SignalType);
               up1 = sinal_buffer(up1);
               dn1 = sinal_buffer(dn1);
              }
            else
              {
               up1 = true;
               dn1 = true;
              }

            if(COMBINER2)
              {
               up2 = iCustom(NULL, 0, IndicatorName2, IndiBufferCall2, i+SignalType2);
               dn2 = iCustom(NULL, 0, IndicatorName2, IndiBufferPut2, i+SignalType2);
               up2 = sinal_buffer(up2);
               dn2 = sinal_buffer(dn2);
              }
            else
              {
               up2 = true;
               dn2 = true;
              }

            if(COMBINER3)
              {
               up3 = iCustom(NULL, 0, IndicatorName3, IndiBufferCall3, i+SignalType3);
               dn3 = iCustom(NULL, 0, IndicatorName3, IndiBufferPut3, i+SignalType3);
               up3 = sinal_buffer(up3);
               dn3 = sinal_buffer(dn3);
              }
            else
              {
               up3 = true;
               dn3 = true;
              }

            if(COMBINER4)
              {
               up4 = iCustom(NULL, 0, IndicatorName4, IndiBufferCall4, i+SignalType4);
               dn4 = iCustom(NULL, 0, IndicatorName4, IndiBufferPut4, i+SignalType4);
               up4 = sinal_buffer(up4);
               dn4 = sinal_buffer(dn4);
              }
            else
              {
               up4 = true;
               dn4 = true;
              }

            if(COMBINER5)
              {
               up5 = iCustom(NULL, 0, IndicatorName5, IndiBufferCall5, i+SignalType5);
               dn5 = iCustom(NULL, 0, IndicatorName5, IndiBufferPut5, i+SignalType5);
               up5 = sinal_buffer(up5);
               dn5 = sinal_buffer(dn5);
              }
            else
              {
               up5 = true;
               dn5 = true;
              }

            if(Bloquea)
              {
               candlesup=0;
               candlesdn=0;
               int j;
               for(j = i+quantidade+1 ; j>=i; j--)
                 {
                  if(close[j+1]>=open[j+1]) // && close[j+2] > open[j+2])
                     candlesup++;
                  else
                     candlesup=0;
                  if(close[j+1]<=open[j+1]) // && close[j+2] < open[j+2])
                     candlesdn++;
                  else
                     candlesdn = 0;
                 }
              }

            if(enviar_telegram){

            if( //CALL  ----  ACIMA

               up[i] == EMPTY_VALUE
               && up1  // Combiner
               && up2  // Combiner2
               && up3  // Combiner3
               && up4  // Combiner2
               && up5  // Combiner5
               && up_MFI //MFI
               && up_RVI //RVI
               && up_WPR //WPR
               && up_HUNTER //HUNTER

               && up_hulk //HULK

               && up_ninja //REAPER
               && up_sniper //CRUSHER

               && up_sg  //Reversal
               && up_MACD
               && up_KEN //KEN
               && upmv1
               && upmv2
               && upmv3
               && upmv4
               && up_Stochastic //Stochastic Strategy

               && (!shadow || (shadow && PadraoVelas < minimaEma && close[i]<open[i]))
               &&(!candlestrtegy || (Open [i+1] > Close [i+1])) &&(!candlestrtegy || (Open [i] < Close [i]))
               &&(!candlestrtegy || (Close[i+1] < Open [i])) &&(!candlestrtegy || (Open [i+1] > Close [i]))
               &&(!Bandas || Close[i+0]<iBands(NULL,PERIOD_CURRENT,BB_Period*(TimeFrame2/_Period),BB_Dev,BB_Shift,0,MODE_LOWER,i+0))
               &&(!Bandas || Open[i+0]>iBands(NULL,PERIOD_CURRENT,BB_Period*(TimeFrame2/_Period),BB_Dev,BB_Shift,0,MODE_LOWER,i+0))
               &&(!Bandas || Open[i+1]>iBands(NULL,PERIOD_CURRENT,BB_Period*(TimeFrame2/_Period),BB_Dev,BB_Shift,0,MODE_LOWER,i+1))
               &&(!Bandas || Close[i+1]>iBands(NULL,PERIOD_CURRENT,BB_Period*(TimeFrame2/_Period),BB_Dev,BB_Shift,0,MODE_LOWER,i+1))
               &&(!AtivarCruzamento || fasterEMAnow > slowerEMAnow) &&(!AtivarCruzamento || fasterEMAprevious < slowerEMAprevious) &&(!AtivarCruzamento || fasterEMAafter > slowerEMAafter)

               && up_master //MASTER ESTRATEGIA

               && fora_banda_up //DONCHIAN
               && up_cci //CCI
               && up_KC //kETLER
               && up_adx //ADX
      

Показано первые 50% кода (символов: 141325)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
14 132,50₽ ≈ $172.75