//============================================================================================= MQL5 === // LibreInfoPDO v1.005 MQL5 // Главный модуль обработки событий // Librecoin(c)2014-2017 //============================================================================================= MQL5 === // REVIEWS //------------------------------------------------------------------------------------------------------ // Вывод инфо об активных и исторических позициях, сделках, ордерах. //=========================================================================================== MQL4/5 === // IDEAS //------------------------------------------------------------------------------------------------------ // Планируется: // 17.10.2017 Идея: Ограничить графику в тестировании без визуализации // В работе: // 17.10.2017 Идея: Ограничить графику в тестировании без визуализации // Выполнено: // 17.10.2017 Идея: Ограничить графику в тестировании без визуализации //============================================================================================= MQL5 === // PROPERTY //------------------------------------------------------------------------------------------------------ #define ver "1.005" #property copyright "Librecoin(c)2014-2017" #property link "https://www.mql5.com/ru/users/kirillovyv" #property strict #property description "**************************************************" #property description " Positions info v"+ver+" (MQL5)" #property description " Positions, deals, orders info" #property description " From Russia with Love! :-)" #property description " https://www.mql5.com/ru/users/kirillovyv" #property description "**************************************************" #property version ver const string vers = "LiBREiNFOPDO v"+ver; //Version #property tester_indicator "Projects\\Indicatores\\MQ5\\ADX\\adxw_zat_117.ex5" //============================================================================================= MQL5 === // INDICATOR PROPERTY //------------------------------------------------------------------------------------------------------ #property indicator_separate_window #property indicator_buffers 0 #property indicator_plots 0 //============================================================================================= MQL5 === // INCLUDE //------------------------------------------------------------------------------------------------------ //----- Определения переменных и структур #include "Include\LIP_Def_5_v1.005.mqh" //Определения переменных и структур MQL5 //----- Интерфейс настроек #include "Include\LIP_Int_5_v1.005.mqh" //Интерфейс настроек MQL4/5 //----- Главный алгоритм #include "Include\LIP_Man_5_v1.005.mqh" //Главный алгоритм MQL5 //----- Прочее (функции, расчеты, графика) #include "Include\LIP_Fun1_5_v1.005.mqh" //Основные функции алгортма MQL5(Traling,Open-Close,MA,CalcSR) #include "Include\LIP_Fun2_5_v1.005.mqh" //Основные технические расчеты MQL5 (Calc...) #include "Include\LIP_Fun3_5_v1.005.mqh" //Графика, вывод на чарт и преобразования вывода MQL5 // //============================================================================================= MQL5 === // MAIN EVENT HANDLERS //------------------------------------------------------------------------------------------------------ // //============================================================================================= MQL5 === // OnInit() //------------------------------------------------------------------------------------------------------ int OnInit(){ //----- return(On_Init()); }//OnInit() //// ////============================================================================================= MQL5 === //// OnTick() ////------------------------------------------------------------------------------------------------------ //void OnTick(){ ////----- // On_Tick(); ////----- // return; //}//OnCalculate() // //============================================================================================= MQL5 === // OnCalculate() //------------------------------------------------------------------------------------------------------ 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[]){ //----- On_Tick(); //----- return(rates_total); }//OnCalculate() // //============================================================================================= MQL5 === // OnTimer() //------------------------------------------------------------------------------------------------------ void OnTimer(){ //----- On_Timer(); //----- return; }//OnTimer() // //============================================================================================= MQL5 === // OnDeinit() //------------------------------------------------------------------------------------------------------ void OnDeinit(const int reason){ //----- Определяем имя программы string iProgramName=MQLInfoString(MQL_PROGRAM_NAME); //----- Определяем тип программы string ProgramType="Expert"; {switch(MQLInfoInteger(MQL_PROGRAM_TYPE)) { case PROGRAM_SCRIPT: { ProgramType="Script"; break; } case PROGRAM_EXPERT: { ProgramType="Expert"; break; } case PROGRAM_INDICATOR: { ProgramType="Indicator"; break; } default: { ProgramType="Expert"; } }}//switch(MQLInfoInteger(MQL_PROGRAM_TYPE)) //----- Анализируем и выводим информацию о причине завершения работы string ReasonTxt="REASON"; {switch(reason) { case REASON_PROGRAM: ReasonTxt="[REASON_PROGRAM] "+ProgramType+" terminated its operation by calling the ExpertRemove() function.";break; case REASON_REMOVE: ReasonTxt="[REASON_REMOVE] "+ProgramType+" has been removed from chart.";break; case REASON_RECOMPILE: ReasonTxt="[REASON_RECOMPILE] "+ProgramType+" has been recompiled.";break; case REASON_CHARTCHANGE: ReasonTxt="[REASON_CHARTCHANGE] Symbol or chart period has been changed.";break; case REASON_CHARTCLOSE: ReasonTxt="[REASON_CHARTCLOSE] Chart has been closed.";break; case REASON_PARAMETERS: ReasonTxt="[REASON_PARAMETERS] Input parameters have been changed by a user.";break; case REASON_ACCOUNT: ReasonTxt="[REASON_ACCOUNT] Another account has been activated or reconnection to the trade server has occurred due to changes in the account settings.";break; case REASON_TEMPLATE: ReasonTxt="[REASON_TEMPLATE] New template was applied to chart.";break; case REASON_INITFAILED: ReasonTxt="[REASON_INITFAILED] "+ProgramType+" initialisation failed.";break; case REASON_CLOSE: ReasonTxt="[REASON_CLOSE] Terminal has been closed.";break; default:ReasonTxt="Another reason"; }}//switch(reason) Print("Terminal Build>>",TerminalInfoInteger(TERMINAL_BUILD)," ",ProgramType,":\"",iProgramName,"\" Deinit reason [",reason,"] >> "+ReasonTxt); //----- Удалить инфо с экрана {if(GraphUse) { DeleteGraph(); Comment(""); }}//if(GraphUse) //----- Гасим таймер EventKillTimer(); //----- Гасим индикаторы {if(!((MQLInfoInteger(MQL_TESTER))||(MQLInfoInteger(MQL_OPTIMIZATION)))) { string Indicator_Name=""; {switch(OpenMethod) { case(Open_ADXW): { Indicator_Delete_Handle(adxw_handle,Indicator_Name); break; }//case(Open_ADXW) default: { break; } }}//switch(OpenMetod) {switch(CloseProfitMethod) { case(CloseProfit_ADXW): { Indicator_Delete_Handle(adxw_handle,Indicator_Name); break; }//case(CloseProfit_ADXW) default: { break; } }}//switch(CloseProfitMethod) {switch(CloseLossMethod) { case(CloseLoss_ADXW): { Indicator_Delete_Handle(adxw_handle,Indicator_Name); break; }//case(CloseLoss_ADXW) default: { break; } }}//switch(CloseLossMethod) }}//if(!((MQLInfoInteger(MQL_TESTER))||(MQLInfoInteger(MQL_OPTIMIZATION)))) //----- Обнуление глобальных переменных datetime TimeSet=0; {for(int i=1;i<=3;i++)//Перебор типов Команд { {for(int j=0;j<=1;j++)//Перебор типов Позиций { BuseInd[(int)CommandCode((enCommandType)i,(ENUM_POSITION_TYPE)j)]=0; //Освобождаем канал BuseInd_N=0 по данным типам команд и позиций GlobalSetUlong("LIP_"+TheSymbol+"_Command_"+IntegerToString(CommandCode((enCommandType)i,(ENUM_POSITION_TYPE)j)),TimeSet,0);//Сбрасываем команды Command_N=0 GlobalSetUlong("LIP_"+TheSymbol+"_Ready_"+IntegerToString(CommandCode((enCommandType)i,(ENUM_POSITION_TYPE)j)),TimeSet,1); //Устанавливаем флаги завершения Ready_N=1 }}//for(int j=0;i<=1;i++) }}//for(int i=1;i<=2;i++) //----- return; }//OnDeinit()