LIP/Arch/RU/LIP_v01.005/LibreCLOP v1.005.mq5

192 Zeilen
18 KiB
MQL5

2025-05-30 15:03:51 +02:00
<EFBFBD><EFBFBD>//============================================================================================= MQL5 ===
// LibreCLOP v1.005 MQL5
// ;02=K9 <>4C;L >1@01>B:8 A>1KB89
// Librecoin(c)2014-2017
//============================================================================================= MQL5 ===
// REVIEWS
//------------------------------------------------------------------------------------------------------
// @>3@0<<=0O A8AB5<0 (B5AB>20O 4;O >4=>3> 8=AB@C<5=B0) A>25B=8:+8=48:0B>@K (8=D>@<0F8>==K9 8 A83=0;L=K9).
// 1. !>25B=8: LibreCLOP Closer-Opener:
// 1.1. 5=5@8@C5B E5=4; 8=48:0B>@0 LibreInfoPDO 8 @07<5I05B 8=48:0B>@ =0 G0@B5.
// 1.1. 5=5@8@C5B E5=4; 8=48:0B>@0 ADXWZ 8 @07<5I05B 8=48:0B>@ =0 G0@B5.
// 1.2. > A83=0;0< 8=D>@<0F8>==>3> 8=48:0B>@0 LibreInfoPDO >B:@K205B 8 70:@K205B A45;:8.
// 1.3. !83=0;K >B:@KB8O-70:@KB8O D>@<8@CNBAO G5@57 3;>10;L=K5 ?5@5<5=K5.
// 2. =48:0B>@ LibreInfoPDO:
// 2.1. >;CG05B E5=4; 8=48:0B>@0 ADXWZ.
// 2.2. A?>;L7C5B 8=48:0B>@ ADXWZ 4;O D>@<8@>20=8O A83=0;>2 =0 ?>:C?:C-?@>406C.
// 2.3. $>@<8@C5B A83=0;K =0 >B:@KB85-70:@KB85 A45;>: 4;O C?@02;ONI53> A>25B=8:0 LibreCLOP.
//  40;L=59H5< =0AB@>9:8 ADXWZ 4;O ?>:C?:8 8 ?@>4068 1C4CB @07=5A5=K 2 420 8=48:0B>@0 (8;8 1>;55).
//============================================================================================= MQL5 ===
// IDEAS
//------------------------------------------------------------------------------------------------------
// 12.11.2017 45O: 7=0G0;L=> 8A?>;L7>20BL =0AB@>9:8 8=48:0B>@>2 ?> C<>;G0=8N. - 2 @01>B5
//============================================================================================= 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 closer-opener v"+ver+" (MQL5)"
#property description " Close and Open expert for LibreInfoPDO binary system"
#property description " From Russia with Love! :-)"
#property description " https://www.mql5.com/ru/users/kirillovyv"
#property description "**************************************************"
#property version ver
const string vers = "LibreCLOP v"+ver; //Version
#property tester_indicator "Projects\\Indicatores\\LIP\\Main\\LIP_v01.005\\LibreInfoPDO v1.005.ex5"
#property tester_indicator "Projects\\Indicatores\\MQ5\\ADX\\adxw_zat.ex5"
//============================================================================================= MQL5 ===
// INCLUDE
//------------------------------------------------------------------------------------------------------
//----- ?@545;5=8O ?5@5<5==KE 8 AB@C:BC@
#include "Include\LCL_Def_5_v1.005.mqh" //?@545;5=8O ?5@5<5==KE 8 AB@C:BC@ MQL5
//----- =B5@D59A =0AB@>5:
#include "Include\LCL_Int_5_v1.005.mqh" //=B5@D59A =0AB@>5: MQL4/5
//----- ;02=K9 0;3>@8B<
#include "Include\LCL_Man_5_v1.005.mqh" //;02=K9 0;3>@8B< MQL5
//----- @>G55 (DC=:F88, @0AG5BK, 3@0D8:0)
#include "Include\LCL_Fun1_5_v1.005.mqh" //A=>2=K5 DC=:F88 0;3>@B<0 MQL5(Traling,Open-Close,MA,CalcSR)
#include "Include\LCL_Fun2_5_v1.005.mqh" //A=>2=K5 B5E=8G5A:85 @0AG5BK MQL5 (Calc...)
#include "Include\LCL_Fun3_5_v1.005.mqh" //@0D8:0, 2K2>4 =0 G0@B 8 ?@5>1@07>20=8O 2K2>40 MQL5
//
//============================================================================================= MQL5 ===
// OnInit()
//------------------------------------------------------------------------------------------------------
int OnInit(){
//-----
return((int)On_Init());
//return(INIT_SUCCEEDED);
}//OnInit()
//
//void OnInit(){
//}//OnInit()
//
//============================================================================================= MQL5 ===
// OnTick()
//------------------------------------------------------------------------------------------------------
void OnTick(){
//-----
On_Tick();
//-----
return;
}//OnTick()
//
////============================================================================================= 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){
//----- ?@545;O5< 8<O ?@>3@0<<K
string iProgramName=MQLInfoString(MQL_PROGRAM_NAME);
//----- ?@545;O5< B8? ?@>3@0<<K
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))
//----- =0;878@C5< 8 2K2>48< 8=D>@<0F8N > ?@8G8=5 7025@H5=8O @01>BK
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);
//----- #40;8BL 8=D> A M:@0=0
{if(GraphUse)
{
DeleteGraph();
Comment("");
}}//if(GraphUse)
//----- 0A8< 8=48:0B>@K
{if(!((MQLInfoInteger(MQL_TESTER))||(MQLInfoInteger(MQL_OPTIMIZATION))))
{
string Indicator_Name="";
Indicator_Delete_Handle(lip_handle,Indicator_Name);
Indicator_Delete_Handle(adxw_handle,Indicator_Name);
}}//if(!((MQLInfoInteger(MQL_TESTER))||(MQLInfoInteger(MQL_OPTIMIZATION))))
//----- 1=C;5=85 3;>10;L=KE ?5@5<5==KE
datetime TimeSet=0;
{for(int i=1;i<=3;i++)//5@51>@ B8?>2 ><0=4
{
{for(int j=0;j<=1;j++)//5@51>@ B8?>2 >78F89
{
ReadyExp[(int)CommandCode((enCommandType)i,(ENUM_POSITION_TYPE)j)]=0; //!1@0AK205< 2=CB@5==85 D;038 7025@H5=8O :><0=4K N: ReadyExp_N=0
RunCommand[(int)CommandCode((enCommandType)i,(ENUM_POSITION_TYPE)j)]=false; //!1@0AK205< D;038 70?CA:0 :><0=4
GlobalSetUlong("LIP_"+TheSymbol+"_Command_"+IntegerToString(CommandCode((enCommandType)i,(ENUM_POSITION_TYPE)j)),TimeSet,0); //!1@0AK205< :><0=4K Command_N=0
GlobalSetUlong("LIP_"+TheSymbol+"_Ready_"+IntegerToString(CommandCode((enCommandType)i,(ENUM_POSITION_TYPE)j)),TimeSet,1); //#AB0=02;8205< D;038 7025@H5=8O Ready_N=1
}}//for(int j=0;i<=1;i++)
}}//for(int i=1;i<=2;i++)
//----- 0A8< B09<5@
EventKillTimer();
//-----
return;
}//OnDeinit()