//+------------------------------------------------------------------+ //| TheChallenger.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #include #include //EA paramters #include //Trading hours checks #include //Trading conditions checks #include //Trading conditions checks #include //Lot size calculator #include //Lot size calculator #include //Emergency close of transaction //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ #include CiATR* atr; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { //--- atr = new CiATR(); atr.Create(gSymbol, InpTimeFrame, InpAtrPeriod); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- TimeCurrent(dt); SymbolInfoTick(_Symbol,last_tick); CheckOperationHours(); CheckPreChecks(); ScanPositions(); //Get ATR values atr.Refresh(-1); gAtr = atr.Main(1); if(!gIsPreChecksOk) return; if(InpActivateRiskWatcher) { drawdownWatcher(); CloseTransactions(); } ExecuteEntry(); } //+------------------------------------------------------------------+