#property copyright " GRIPP3R_MindStorms_v1.01  - rodolfo.leonardo@gmail.com"
#property link "https://goo.gl/6mXoPZ"
#property version "1.01"
#property description "GRIPP3R_MindStorms_v1"
#property description " THIS EA IS 100 % FREE, WHICH MEANS THAT IT'S NOT A COMMERCIAL PRODUCT. Donation Link for Donation : Link for Donation : https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=NQKQCG78XT8BW  "
#property description "Coder: rodolfo.leonardo@gmail.com "
#property strict

extern string Version__ = "-----------------------------------------------------------------";
extern string vg_versao_ = "        GRIPP3R_MindStorms_v1.01 2018-03-21  DEVELOPER EDITION             ";
extern string Version____ = "-----------------------------------------------------------------";

#include "SDK/EAframework.mqh"

extern double lotsinitGRIPP3R = 0.01; //Lote Inicial
extern string ENGINE1__ = "-----------------------------------------------------------------";
#include "Engines/Dipx.mqh"

//#include "SDK/BreakEven.mqh"

//#include "Sinal/SinalHILO.mqh"
//#include "Sinal/SinalRegression.mqh"
//#include "Sinal/SinalNONLANG.mqh"

//#include "Filter/FFCallNews.mqh"
//#include "Filter/FilterTime.mqh"
//#include "Filter/FilterVolatility.mqh"
//#include "Filter/FilterMarginLevel.mqh"
//#include "Filter/FilterStopOut.mqh"

#include "Visor/Visor1.mqh"
//#include "Visor/Visor2.mqh"
#include "Visor/Visor3.mqh"


double vg_Spread = 0;
string vg_filters_on = "";
string vg_initpainel = false;
//+------------------------------------------------------------------+
//|  input parameters                                                |
//+------------------------------------------------------------------+

extern string Filter_Spread__ = "----------------------------Filter Max Spread----------------";
input int InpMaxvg_Spread = 24; // Max Spread

datetime expiry;
bool bExpiryAlertDelivered;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{

    if (!IsTradeAllowed())
        Alert("Not TradeAllowed");
        
    initDipx();

    expiry = (D'2018.06.29 00:00');
    bExpiryAlertDelivered = false;

    vg_Spread = MarketInfo(Symbol(), MODE_SPREAD) * Point;

    vg_filters_on = "";
    vg_initpainel = true;

    printf(vg_versao + " - INIT");

    return (INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//Visor3Handling();
 //   Visor1Handling();
    // Visor2Handling();
    //FILTER DATETIME

    // int Sinal = GetSinalVisor2();
    //  int Sinal = GetSinalHILO();

    Comment(vg_filters_on);
    vg_filters_on = "";
    //Comment(DebugFilterVolatility());

    RefreshRates();

    if (TimeCurrent() > expiry)
    {
        PainelUPER("Expired " + vg_versao);

        if (bExpiryAlertDelivered == false)
        {
            Alert("The EA has expired... contact rodolfo.leonardo@gmail.com");
            bExpiryAlertDelivered = true;
        }

        return;
    }

    
    
        PainelUPER(vg_versao);

    Dipx(lotsinitGRIPP3R);

    /* if (Sinal == 1)
    {
        // if(R3XFX2_vCountSells > 0 )Rex(1, R3XFX2_vLastSellLot/2);
        // else
        Rex(1, lotsinitGRIPP3R);
        Rex2(0, lotsinitGRIPP3R);
    }

    if (Sinal == -1)
    {
        // if(R3XFX_vCountBuy > 0 )Rex2(-1, R3XFX_vLastBuyLot/2);
        // else
        Rex2(-1, lotsinitGRIPP3R);
        Rex(0, lotsinitGRIPP3R);
    }

    if (Sinal == 0)
    {
        Rex(0, lotsinitGRIPP3R);
        Rex2(0, lotsinitGRIPP3R);
    } */

    /*   // SE InpUseBreakEven  ENABLE
    if (InpUseBreakEven)
        BreakEvenAlls(InpBreakEvenStart, InpBreakEvenStep, R3XFX_mediaprice, R3XFX_MAGIC_NUMBER);

         if (InpUseBreakEven)
        BreakEvenAlls(InpBreakEvenStart, InpBreakEvenStep, R3XFX2_mediaprice, R3XFX2_MAGIC_NUMBER); */
}