301 lines
23 KiB
MQL5
301 lines
23 KiB
MQL5
//============================================================================================= MQL5 ===
|
|
// LibreCLOP Function2_5 v1.005 MQL5
|
|
// Основные технические расчеты
|
|
// Librecoin (c)2014-2017
|
|
//======================================================================================================
|
|
#property strict
|
|
//============================================================================================= MQL5 ===
|
|
// INCLUDE - подключаемые модули
|
|
//------------------------------------------------------------------------------------------------------
|
|
//----- Обратные ссылки на основной файл проекта
|
|
#include "LCL_Ref_5_v1.005.mqh"
|
|
//============================================================================================= MQL5 ===
|
|
// FUNCTIONS
|
|
//------------------------------------------------------------------------------------------------------
|
|
//
|
|
//============================================================================================= MQL5 ===
|
|
// FillSymSelect() - Заполнение массива образцов отбора
|
|
// Вход:
|
|
// iSelectArray - массив отбора образцов
|
|
//------------------------------------------------------------------------------------------------------
|
|
void FillSymSelect(string &iSelectArray[]){
|
|
//-----
|
|
string iSymSelect_00=SymSelect_00;
|
|
string iSymSelect_01=SymSelect_01;
|
|
string iSymSelect_02=SymSelect_02;
|
|
string iSymSelect_03=SymSelect_03;
|
|
string iSymSelect_04=SymSelect_04;
|
|
string iSymSelect_05=SymSelect_05;
|
|
string iSymSelect_06=SymSelect_06;
|
|
string iSymSelect_07=SymSelect_07;
|
|
string iSymSelect_08=SymSelect_08;
|
|
string iSymSelect_09=SymSelect_09;
|
|
StringTrimLeft(iSymSelect_00);StringTrimRight(iSymSelect_00);iSelectArray[0]=iSymSelect_00;
|
|
StringTrimLeft(iSymSelect_01);StringTrimRight(iSymSelect_01);iSelectArray[1]=iSymSelect_01;
|
|
StringTrimLeft(iSymSelect_02);StringTrimRight(iSymSelect_02);iSelectArray[2]=iSymSelect_02;
|
|
StringTrimLeft(iSymSelect_03);StringTrimRight(iSymSelect_03);iSelectArray[3]=iSymSelect_03;
|
|
StringTrimLeft(iSymSelect_04);StringTrimRight(iSymSelect_04);iSelectArray[4]=iSymSelect_04;
|
|
StringTrimLeft(iSymSelect_05);StringTrimRight(iSymSelect_05);iSelectArray[5]=iSymSelect_05;
|
|
StringTrimLeft(iSymSelect_06);StringTrimRight(iSymSelect_06);iSelectArray[6]=iSymSelect_06;
|
|
StringTrimLeft(iSymSelect_07);StringTrimRight(iSymSelect_07);iSelectArray[7]=iSymSelect_07;
|
|
StringTrimLeft(iSymSelect_08);StringTrimRight(iSymSelect_08);iSelectArray[8]=iSymSelect_08;
|
|
StringTrimLeft(iSymSelect_09);StringTrimRight(iSymSelect_09);iSelectArray[9]=iSymSelect_09;
|
|
//-----
|
|
return;
|
|
}//FillSymSelect()
|
|
//
|
|
//============================================================================================= MQL5 ===
|
|
// FillSymEliminat() - Заполнение массива образцов отсева
|
|
// Вход:
|
|
// iSelectArray - массив отсева образцов
|
|
//------------------------------------------------------------------------------------------------------
|
|
void FillSymEliminat(string &iSelectArray[]){
|
|
//-----
|
|
string iSymSelect_00=SymEliminat_00;
|
|
string iSymSelect_01=SymEliminat_01;
|
|
string iSymSelect_02=SymEliminat_02;
|
|
string iSymSelect_03=SymEliminat_03;
|
|
string iSymSelect_04=SymEliminat_04;
|
|
string iSymSelect_05=SymEliminat_05;
|
|
string iSymSelect_06=SymEliminat_06;
|
|
string iSymSelect_07=SymEliminat_07;
|
|
string iSymSelect_08=SymEliminat_08;
|
|
string iSymSelect_09=SymEliminat_09;
|
|
StringTrimLeft(iSymSelect_00);StringTrimRight(iSymSelect_00);iSelectArray[0]=iSymSelect_00;
|
|
StringTrimLeft(iSymSelect_01);StringTrimRight(iSymSelect_01);iSelectArray[1]=iSymSelect_01;
|
|
StringTrimLeft(iSymSelect_02);StringTrimRight(iSymSelect_02);iSelectArray[2]=iSymSelect_02;
|
|
StringTrimLeft(iSymSelect_03);StringTrimRight(iSymSelect_03);iSelectArray[3]=iSymSelect_03;
|
|
StringTrimLeft(iSymSelect_04);StringTrimRight(iSymSelect_04);iSelectArray[4]=iSymSelect_04;
|
|
StringTrimLeft(iSymSelect_05);StringTrimRight(iSymSelect_05);iSelectArray[5]=iSymSelect_05;
|
|
StringTrimLeft(iSymSelect_06);StringTrimRight(iSymSelect_06);iSelectArray[6]=iSymSelect_06;
|
|
StringTrimLeft(iSymSelect_07);StringTrimRight(iSymSelect_07);iSelectArray[7]=iSymSelect_07;
|
|
StringTrimLeft(iSymSelect_08);StringTrimRight(iSymSelect_08);iSelectArray[8]=iSymSelect_08;
|
|
StringTrimLeft(iSymSelect_09);StringTrimRight(iSymSelect_09);iSelectArray[9]=iSymSelect_09;
|
|
//-----
|
|
return;
|
|
}//FillTickEliminat()
|
|
//
|
|
//============================================================================================= MQL5 ===
|
|
// FillMagSelect() - Заполнение массива образцов отбора
|
|
// Вход:
|
|
// iSelectArray - массив отбора образцов
|
|
//------------------------------------------------------------------------------------------------------
|
|
void FillMagSelect(long &iSelectArray[]){
|
|
//-----
|
|
iSelectArray[0]=StringToInteger(MagSelect_00);
|
|
iSelectArray[1]=StringToInteger(MagSelect_01);
|
|
iSelectArray[2]=StringToInteger(MagSelect_02);
|
|
iSelectArray[3]=StringToInteger(MagSelect_03);
|
|
iSelectArray[4]=StringToInteger(MagSelect_04);
|
|
iSelectArray[5]=StringToInteger(MagSelect_05);
|
|
iSelectArray[6]=StringToInteger(MagSelect_06);
|
|
iSelectArray[7]=StringToInteger(MagSelect_07);
|
|
iSelectArray[8]=StringToInteger(MagSelect_08);
|
|
iSelectArray[9]=StringToInteger(MagSelect_09);
|
|
//-----
|
|
return;
|
|
}//FillMagSelect()
|
|
//
|
|
//============================================================================================= MQL5 ===
|
|
// FillMagEliminat() - Заполнение массива образцов отсева
|
|
// Вход:
|
|
// iSelectArray - массив отсева образцов
|
|
//------------------------------------------------------------------------------------------------------
|
|
void FillMagEliminat(long &iSelectArray[]){
|
|
//-----
|
|
iSelectArray[0]=StringToInteger(MagEliminat_00);
|
|
iSelectArray[1]=StringToInteger(MagEliminat_01);
|
|
iSelectArray[2]=StringToInteger(MagEliminat_02);
|
|
iSelectArray[3]=StringToInteger(MagEliminat_03);
|
|
iSelectArray[4]=StringToInteger(MagEliminat_04);
|
|
iSelectArray[5]=StringToInteger(MagEliminat_05);
|
|
iSelectArray[6]=StringToInteger(MagEliminat_06);
|
|
iSelectArray[7]=StringToInteger(MagEliminat_07);
|
|
iSelectArray[8]=StringToInteger(MagEliminat_08);
|
|
iSelectArray[9]=StringToInteger(MagEliminat_09);
|
|
//-----
|
|
return;
|
|
}//FillMagEliminat()
|
|
//
|
|
//============================================================================================= MQL5 ===
|
|
// FillTickSelect() - Заполнение массива образцов отбора
|
|
// Вход:
|
|
// iSelectArray - массив отбора образцов
|
|
//------------------------------------------------------------------------------------------------------
|
|
void FillTickSelect(long &iSelectArray[]){
|
|
//-----
|
|
iSelectArray[0]=StringToInteger(TickSelect_00);
|
|
iSelectArray[1]=StringToInteger(TickSelect_01);
|
|
iSelectArray[2]=StringToInteger(TickSelect_02);
|
|
iSelectArray[3]=StringToInteger(TickSelect_03);
|
|
iSelectArray[4]=StringToInteger(TickSelect_04);
|
|
iSelectArray[5]=StringToInteger(TickSelect_05);
|
|
iSelectArray[6]=StringToInteger(TickSelect_06);
|
|
iSelectArray[7]=StringToInteger(TickSelect_07);
|
|
iSelectArray[8]=StringToInteger(TickSelect_08);
|
|
iSelectArray[9]=StringToInteger(TickSelect_09);
|
|
//-----
|
|
return;
|
|
}//FillTickSelect()
|
|
//
|
|
//============================================================================================= MQL5 ===
|
|
// FillTickEliminat() - Заполнение массива образцов отсева
|
|
// Вход:
|
|
// iSelectArray - массив отсева образцов
|
|
//------------------------------------------------------------------------------------------------------
|
|
void FillTickEliminat(long &iSelectArray[]){
|
|
//-----
|
|
iSelectArray[0]=StringToInteger(TickEliminat_00);
|
|
iSelectArray[1]=StringToInteger(TickEliminat_01);
|
|
iSelectArray[2]=StringToInteger(TickEliminat_02);
|
|
iSelectArray[3]=StringToInteger(TickEliminat_03);
|
|
iSelectArray[4]=StringToInteger(TickEliminat_04);
|
|
iSelectArray[5]=StringToInteger(TickEliminat_05);
|
|
iSelectArray[6]=StringToInteger(TickEliminat_06);
|
|
iSelectArray[7]=StringToInteger(TickEliminat_07);
|
|
iSelectArray[8]=StringToInteger(TickEliminat_08);
|
|
iSelectArray[9]=StringToInteger(TickEliminat_09);
|
|
//-----
|
|
return;
|
|
}//FillTickEliminat()
|
|
//
|
|
bool GlobalSetDouble(string iName,datetime &iTimeSet,double iDateSet=0.0){
|
|
//-----
|
|
iTimeSet=GlobalVariableSet(iName,iDateSet);
|
|
{if(iTimeSet!=0)//Значение удалось установить
|
|
{
|
|
return(true);
|
|
}else{//Не удалось установить
|
|
return(false);
|
|
}}//if(iTimeSet!=0)
|
|
//-----
|
|
return(false);
|
|
}//GlobalSetDouble()
|
|
|
|
bool GlobalGetDouble(string iName,double &iDateGet){
|
|
//-----
|
|
iDateGet=0.0;
|
|
{if(GlobalVariableCheck(iName))//Переменная есть
|
|
{
|
|
{if(GlobalVariableGet(iName,iDateGet))//Значение удалось считать
|
|
{
|
|
return(true);
|
|
}else{//Не удалось считать
|
|
iDateGet=0.0;
|
|
return(false);
|
|
}}//if(GlobalVariableGet(iName,iDateGet))
|
|
}else{//Переменной нет
|
|
iDateGet=0.0;
|
|
return(false);
|
|
}}//if(GlobalVariableCheck(iName))
|
|
//-----
|
|
return(false);
|
|
}//GlobalGetDouble()
|
|
//
|
|
bool GlobalSetString(string iName,datetime &iTimeSet,string iStringSet=""){
|
|
//-----
|
|
union ulong_double
|
|
{
|
|
double iDateSet;
|
|
ulong iLongSet;
|
|
uchar iCharSet[8];
|
|
};
|
|
ulong_double ud;
|
|
ud.iLongSet=0;
|
|
//-----
|
|
StringToCharArray(iStringSet,ud.iCharSet,0,8);
|
|
//-----
|
|
iTimeSet=GlobalVariableSet(iName,ud.iDateSet);
|
|
{if(iTimeSet!=0)//Значение удалось установить
|
|
{
|
|
return(true);
|
|
}else{//Не удалось установить
|
|
return(false);
|
|
}}//if(iTimeSet!=0)
|
|
//-----
|
|
return(false);
|
|
}//GlobalSetString()
|
|
|
|
bool GlobalGetString(string iName,string &iStringGet){
|
|
//-----
|
|
iStringGet="";
|
|
//-----
|
|
union ulong_double
|
|
{
|
|
double iDateGet;
|
|
ulong iLongGet;
|
|
uchar iCharGet[8];
|
|
};
|
|
ulong_double ud;
|
|
ud.iLongGet=0;
|
|
//-----
|
|
{if(GlobalVariableCheck(iName))//Переменная есть
|
|
{
|
|
{if(GlobalVariableGet(iName,ud.iDateGet))//Значение удалось считать
|
|
{
|
|
iStringGet=CharArrayToString(ud.iCharGet,0,8);
|
|
return(true);
|
|
}else{//Не удалось считать
|
|
iStringGet="";
|
|
return(false);
|
|
}}//if(GlobalVariableGet(iName,ud.iDateGet))
|
|
}else{//Переменной нет
|
|
iStringGet="";
|
|
return(false);
|
|
}}//if(GlobalVariableCheck(iName))
|
|
//-----
|
|
iStringGet="";
|
|
return(false);
|
|
}//GlobalGetString()
|
|
//
|
|
bool GlobalSetUlong(string iName,datetime &iTimeSet,ulong iUlongSet=0){
|
|
//-----
|
|
union ulong_double
|
|
{
|
|
double iDateSet;
|
|
ulong iLongSet;
|
|
};
|
|
ulong_double ud;
|
|
ud.iLongSet=iUlongSet;
|
|
//-----
|
|
iTimeSet=GlobalVariableSet(iName,ud.iDateSet);
|
|
{if(iTimeSet!=0)//Значение удалось установить
|
|
{
|
|
return(true);
|
|
}else{//Не удалось установить
|
|
return(false);
|
|
}}//if(GlobalVariableGet(iName,iDate))
|
|
//-----
|
|
return(false);
|
|
}//GlobalSetDouble()
|
|
|
|
bool GlobalGetUlong(string iName,ulong &iUlongGet){
|
|
//-----
|
|
iUlongGet=0;
|
|
//-----
|
|
union ulong_double
|
|
{
|
|
double iDateGet;
|
|
ulong iLongGet;
|
|
};
|
|
ulong_double ud;
|
|
ud.iLongGet=0;
|
|
//-----
|
|
{if(GlobalVariableCheck(iName))//Переменная есть
|
|
{
|
|
{if(GlobalVariableGet(iName,ud.iDateGet))//Значение удалось считать
|
|
{
|
|
iUlongGet=ud.iLongGet;
|
|
return(true);
|
|
}else{//Не удалось считать
|
|
iUlongGet=0;
|
|
return(false);
|
|
}}//if(GlobalVariableGet(iName,iDate))
|
|
}else{//Переменной нет
|
|
iUlongGet=0;
|
|
return(false);
|
|
}}//if(GlobalVariableCheck(iName))
|
|
//-----
|
|
iUlongGet=0;
|
|
return(false);
|
|
}//GlobalGetDouble()
|