128 lines
14 KiB
MQL5
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 программы для идентификации в логе
|