LIP/Arch/RU/LIP_v01.005/LibreInfoPDO v1.005.mq5
super.admin 291e846eab convert
2025-05-30 15:03:51 +02:00

224 lines
19 KiB
MQL5

//============================================================================================= 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()