LIP/Arch/RU/LIP_v01.005/Include/LCL_Def_5_v1.005.mqh
super.admin 291e846eab convert
2025-05-30 15:03:51 +02:00

128 lines
14 KiB
MQL5

//============================================================================================= MQL5 ===
// LibreCLOP Definition_5 v1.005 MQL5
// Определения переменных и структур
// LibreCoin (c)2014-2017
//======================================================================================================
#property strict
//============================================================================================= MQL5 ===
// INCLUDE - подключаемые модули
//------------------------------------------------------------------------------------------------------
//----- Обратные ссылки на основной файл проекта
#include "LCL_Ref_5_v1.005.mqh"
//============================================================================================= MQL5 ===
// ENUM
//------------------------------------------------------------------------------------------------------
enum enProfitCalcMode
{
ProfitCalc_currency = 0, //по уровню прибыли в деньгах
ProfitCalc_pips = 1, //по уровню прибыли в пипсах
};
enum enCloseAlgorithmMode
{
ProfitClose_sl = 0, //по фиксированному уровню
ProfitClose_trail = 1, //по тралу
};
enum enSelSymMode
{
SelSym_all = 0, //без отбора по символу
SelSym_curr = 1, //отбор по текущему символу графика
SelSym_user = 2, //отбор по указанному символу
SelSym_but = 3, //отсев по указанному символу
SelSym_list = 4, //по списку отбора
SelSym_butlist = 5, //по списку отсева
SelSym_listbutlist = 6, //по спискам отбора и отсева
};
enum enSelMagMode
{
SelMag_all = 0, //без отбора по магику
SelMag_user = 1, //отбор по указанному магику
SelMag_but = 2, //отсев по указанному магику
SelMag_list = 3, //по списку отбора
SelMag_butlist = 4, //по списку отсева
SelMag_listbutlist = 5, //по спискам отбора и отсева
};
enum enSelTickMode
{
SelTick_all = 0, //без отбора по тикету
SelTick_user = 1, //отбор по указанному тикету
SelTick_but = 2, //отсев по указанному тикету
SelTick_list = 3, //по списку отбора
SelTick_butlist = 4, //по списку отсева
SelTick_listbutlist = 5, //по спискам отбора и отсева
};
//============================================================================================= MQL5 ===
// Global variable definition
//------------------------------------------------------------------------------------------------------
string _n = "\n";
//----- Для событий времени и таймера
//ulong gTimer = 0; //Глобальный счетчик событий Timer
ulong gTick = 0; //Глобальный счетчик событий NewTick
datetime gTime[1] = {0}; //Массив (фактически просто переменная) для значений времени
int nFirstBar = 0; //Номер первого бара графика
bool gInTimer = false; //Флаг поступления тика из таймера
long IndHeigh = 1050; //Верт размер индикатора
string TheSymbol = "EURUSD"; //Инструмент текущего графика
int nSubWindow = 1; //Номер подокна индикатора
//----- Рабочие массивы селекторов
string inSelectSym[]; //Массив отбора инструментов
ulong inSelectMag[]; //Массив отбора магиков
long inSelectTick[]; //Массив отбора тикетов
string inEliminatSym[]; //Массив отсева инструментов
ulong inEliminatMag[]; //Массив отсева магиков
long inEliminatTick[]; //Массив отсева тикетов
//----- Информационные строки элементов
string DataStringPos = ""; //Строка вывода для позиции
string DataStringOrd = ""; //Строка вывода для ордера
string DataStringDeal = ""; //Строка вывода для сделки
string TypeStringPos = ""; //Строка для типа позиции
string TypeStringOrd = ""; //Строка для типа ордера
string TypeStringDeal = ""; //Строка для типа сделки
//-----
string IndicatorShortName = vers;
string ChartID_Str = "";
string ProgramName = "";
string CommentLine[2]; //Служебные комментарии
double kScale = 1.0; //Масштаб графика
string sTXW = ""; //Имя для текcтового объекта
int nRow = 0; //Счетчик строк вывода
int nColo = 0; //Счетчик колонок вывода
//-----
bool CommandAccepted = false;
bool CommandRun = false;
bool CommandExecuted = false;
//-----
int Positions_Total = 0; //Текущие позиции
int Orders_Total = 0; //Текущие лимитные ордера
int History_Orders_Total = 0; //Закрытые рыночные ордера
int History_Deals_Total = 0; //Совершенные сделки (выполненные ордера)
int Positions_Total_Old = 0; //Текущие позиции
int Orders_Total_Old = 0; //Текущие лимитные ордера
int History_Orders_Total_Old=0; //Закрытые рыночные ордера
int History_Deals_Total_Old=0; //Совершенные сделки (выполненные ордера)
int Sel_Positions_Total = 0; //Текущие позиции
int Sel_Orders_Total = 0; //Текущие лимитные ордера
int Sel_History_Orders_Total=0; //Закрытые рыночные ордера
int Sel_History_Deals_Total=0; //Совершенные сделки (выполненные ордера)
int Sel_Positions_Total_Old=0; //Текущие позиции
int Sel_Orders_Total_Old = 0; //Текущие лимитные ордера
int Sel_History_Orders_Total_Old=0; //Закрытые рыночные ордера
int Sel_History_Deals_Total_Old=0; //Совершенные сделки (выполненные ордера)
//----- Открытие - закрытие ордеров и обмен с индикатором
ulong ReadyExp[7] ={0}; //Флаг завершения задачи (внутренний)
bool RunCommand[7] ={0}; //Эмулятор выполнения команд
enum enCommandType
{
Command_None = 0,
Command_Open = 1,
Command_Close = 2,
Command_CloseLoss=3,
};
int lip_handle = 0; //Хендл индикатора LibreInfoPDO
int adxw_handle = 0; //Хендл индикатора ADXW
//-----
bool GraphUse=false; //Использование графики (false если тестирование и нет визуализации, или оптимизация)
string Chart_Ind_Name="";
int Chart_Ind_Window=0;
int Chart_Ind_N=0;
//-----
string ThisID = "LCL"; //ID программы для идентификации в логе