This commit is contained in:
2024-08-23 03:24:33 +03:30
parent 6ede00b304
commit c3eeb005f1
62 changed files with 5257 additions and 450 deletions
@@ -0,0 +1,54 @@
///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Strategy Parser Library
// ------------------------------------------------
// Name: XCHStartegyConditionsParser
// Description: provide all conditions parsing
// for XCH Strategy ...
//
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// Imports ...
#include "../../../../Strategies/x-saherelm.xch.strategy.mq5"
//
// Conditions Parser ...
struct XCHStartegyAMarketsAUDUSD2019LongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
)
{
//
bool result = false;
//
result =
//
false
//
;
//
return result;
}
};
//
@@ -0,0 +1,54 @@
///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Strategy Parser Library
// ------------------------------------------------
// Name: XCHStartegyConditionsParser
// Description: provide all conditions parsing
// for XCH Strategy ...
//
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// Imports ...
#include "../../../../Strategies/x-saherelm.xch.strategy.mq5"
//
// Conditions Parser ...
struct XCHStartegyAMarketsAUDUSD2019ShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
)
{
//
bool result = false;
//
result =
//
false
//
;
//
return result;
}
};
//
@@ -0,0 +1,54 @@
///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Strategy Parser Library
// ------------------------------------------------
// Name: XCHStartegyConditionsParser
// Description: provide all conditions parsing
// for XCH Strategy ...
//
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// Imports ...
#include "../../../../Strategies/x-saherelm.xch.strategy.mq5"
//
// Conditions Parser ...
struct XCHStartegyAMarketsAUDUSDOldsLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
)
{
//
bool result = false;
//
result =
//
false
//
;
//
return result;
}
};
//
@@ -0,0 +1,54 @@
///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Strategy Parser Library
// ------------------------------------------------
// Name: XCHStartegyConditionsParser
// Description: provide all conditions parsing
// for XCH Strategy ...
//
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// Imports ...
#include "../../../../Strategies/x-saherelm.xch.strategy.mq5"
//
// Conditions Parser ...
struct XCHStartegyAMarketsAUDUSDOldsShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
)
{
//
bool result = false;
//
result =
//
false
//
;
//
return result;
}
};
//
@@ -24,26 +24,49 @@
// Imports ...
#include "../../../Strategies/x-saherelm.xch.strategy.mq5"
//
#include "./Olds/x-saherelm.xch.amarkets.audusd.olds.long.parser.mq5"
#include "./2019/x-saherelm.xch.amarkets.audusd.2019.long.parser.mq5"
//
// Conditions Parser ...
struct XCHStartegyAMarketsAUDUSDLongConditionsParser
{
//
string _version;
//
XCHStartegyAMarketsAUDUSDOldsLongConditionsParser _oldsParser;
XCHStartegyAMarketsAUDUSD2019LongConditionsParser _2019Parser;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
XSignal &signal,
XCHStrategyConditions &conditions,
bool force = true //
)
{
//
bool result = false;
//
result =
if (!force)
{
result = _2019Parser.IsFiltered(conditions);
}
else
{
//
false
//
;
result =
//
_2019Parser.IsFiltered(conditions)
//
||
//
_oldsParser.IsFiltered(conditions)
//
;
}
//
return result;
@@ -24,26 +24,49 @@
// Imports ...
#include "../../../Strategies/x-saherelm.xch.strategy.mq5"
//
#include "./Olds/x-saherelm.xch.amarkets.audusd.olds.short.parser.mq5"
#include "./2019/x-saherelm.xch.amarkets.audusd.2019.short.parser.mq5"
//
// Conditions Parser ...
struct XCHStartegyAMarketsAUDUSDShortConditionsParser
{
//
string _version;
//
XCHStartegyAMarketsAUDUSDOldsShortConditionsParser _oldsParser;
XCHStartegyAMarketsAUDUSD2019ShortConditionsParser _2019Parser;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
XSignal &signal,
XCHStrategyConditions &conditions,
bool force = true //
)
{
//
bool result = false;
//
result =
if (!force)
{
result = _2019Parser.IsFiltered(conditions);
}
else
{
//
false
//
;
result =
//
_2019Parser.IsFiltered(conditions)
//
||
//
_oldsParser.IsFiltered(conditions)
//
;
}
//
return result;
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUS30LongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUS30ShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURCADLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURCADShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURCHFLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURCHFShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURGBPLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURGBPShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURJPYLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURJPYShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURUSDLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURUSDShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsGBPUSDLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsGBPUSDShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsNZDUSDLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsNZDUSDShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDCADLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDCADShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDCHFLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDCHFShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDJPYLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDJPYShortConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsXAUUSDLongConditionsParser
{
//
string _version;
//
bool IsFiltered(
XCHStrategyConditions &conditions //
@@ -0,0 +1,518 @@
///////////////////////////////////////////////////////
//
// SaherElm IT Center MQL5 Strategy Parser Library
// ------------------------------------------------
// Name: XCHStartegyConditionsParser
// Description: provide all conditions parsing
// for XCH Strategy ...
//
//
// Maintainer:
// ------------
// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com)
//
//////////////////////////////////////////////////////
//
// Global Properties ...
#property library
#property copyright "Copyright 2023, SaherElm IT Center"
#property link "https://www.saherelm.ir"
#property version "1.00"
#property strict
//
// Imports ...
#include "../../Strategies/x-saherelm.xch.strategy.mq5"
//
#include "./DowJones/x-saherelm.xch.amarkets.us30.long.parser.mq5"
#include "./DowJones/x-saherelm.xch.amarkets.us30.short.parser.mq5"
#include "./EURGBP/x-saherelm.xch.amarkets.eurgbp.long.parser.mq5"
#include "./EURGBP/x-saherelm.xch.amarkets.eurgbp.short.parser.mq5"
#include "./EURJPY/x-saherelm.xch.amarkets.eurjpy.long.parser.mq5"
#include "./EURJPY/x-saherelm.xch.amarkets.eurjpy.short.parser.mq5"
#include "./EURCHF/x-saherelm.xch.amarkets.eurchf.long.parser.mq5"
#include "./EURCHF/x-saherelm.xch.amarkets.eurchf.short.parser.mq5"
#include "./AUDUSD/x-saherelm.xch.amarkets.audusd.long.parser.mq5"
#include "./AUDUSD/x-saherelm.xch.amarkets.audusd.short.parser.mq5"
#include "./NZDUSD/x-saherelm.xch.amarkets.nzdusd.long.parser.mq5"
#include "./NZDUSD/x-saherelm.xch.amarkets.nzdusd.short.parser.mq5"
#include "./USDCAD/x-saherelm.xch.amarkets.usdcad.long.parser.mq5"
#include "./USDCAD/x-saherelm.xch.amarkets.usdcad.short.parser.mq5"
#include "./EURCAD/x-saherelm.xch.amarkets.eurcad.long.parser.mq5"
#include "./EURCAD/x-saherelm.xch.amarkets.eurcad.short.parser.mq5"
#include "./EURUSD/x-saherelm.xch.amarkets.eurusd.long.parser.mq5"
#include "./EURUSD/x-saherelm.xch.amarkets.eurusd.short.parser.mq5"
#include "./USDJPY/x-saherelm.xch.amarkets.usdjpy.long.parser.mq5"
#include "./USDJPY/x-saherelm.xch.amarkets.usdjpy.short.parser.mq5"
#include "./USDCHF/x-saherelm.xch.amarkets.usdchf.long.parser.mq5"
#include "./USDCHF/x-saherelm.xch.amarkets.usdchf.short.parser.mq5"
#include "./GBPUSD/x-saherelm.xch.amarkets.gbpusd.long.parser.mq5"
#include "./GBPUSD/x-saherelm.xch.amarkets.gbpusd.short.parser.mq5"
#include "./XAUUSD/x-saherelm.xch.amarkets.xauusd.long.parser.mq5"
#include "./XAUUSD/x-saherelm.xch.amarkets.xauusd.short.parser.mq5"
//
// Conditions Parser ...
struct XCHStartegyAMarketsConditionsParser
{
//
string _version;
//
// Parsers ...
XSymbolParser _symbolParser;
//
// EURUSD ...
XCHStartegyAMarketsEURUSDLongConditionsParser _eurusdLongParser;
XCHStartegyAMarketsEURUSDShortConditionsParser _eurusdShortParser;
//
// GBPUSD ...
XCHStartegyAMarketsGBPUSDLongConditionsParser _gbpusdLongParser;
XCHStartegyAMarketsGBPUSDShortConditionsParser _gbpusdShortParser;
//
// EURGBP ...
XCHStartegyAMarketsEURGBPLongConditionsParser _eurgbpLongParser;
XCHStartegyAMarketsEURGBPShortConditionsParser _eurgbpShortParser;
//
// USDJPY ...
XCHStartegyAMarketsUSDJPYLongConditionsParser _usdjpyLongParser;
XCHStartegyAMarketsUSDJPYShortConditionsParser _usdjpyShortParser;
//
// EURJPY ...
XCHStartegyAMarketsEURJPYLongConditionsParser _eurjpyLongParser;
XCHStartegyAMarketsEURJPYShortConditionsParser _eurjpyShortParser;
//
// USDCHF ...
XCHStartegyAMarketsUSDCHFLongConditionsParser _usdchfLongParser;
XCHStartegyAMarketsUSDCHFShortConditionsParser _usdchfShortParser;
//
// EURCHF ...
XCHStartegyAMarketsEURCHFLongConditionsParser _eurchfLongParser;
XCHStartegyAMarketsEURCHFShortConditionsParser _eurchfShortParser;
//
// XAUUSD ...
XCHStartegyAMarketsXAUUSDLongConditionsParser _xauusdLongParser;
XCHStartegyAMarketsXAUUSDShortConditionsParser _xauusdShortParser;
//
// DOWJONES ...
XCHStartegyAMarketsUS30LongConditionsParser _dowjonesLongParser;
XCHStartegyAMarketsUS30ShortConditionsParser _dowjonesShortParser;
//
// AUDUSD ...
XCHStartegyAMarketsAUDUSDLongConditionsParser _audusdLongParser;
XCHStartegyAMarketsAUDUSDShortConditionsParser _audusdShortParser;
//
// NZDUSD ...
XCHStartegyAMarketsNZDUSDLongConditionsParser _nzdusdLongParser;
XCHStartegyAMarketsNZDUSDShortConditionsParser _nzdusdShortParser;
//
// USDCAD ...
XCHStartegyAMarketsUSDCADLongConditionsParser _usdcadLongParser;
XCHStartegyAMarketsUSDCADShortConditionsParser _usdcadShortParser;
//
// EURCAD ...
XCHStartegyAMarketsEURCADLongConditionsParser _eurcadLongParser;
XCHStartegyAMarketsEURCADShortConditionsParser _eurcadShortParser;
//
bool IsFiltered(
XSignal &signal, // Provided Signal
XCHStrategyConditions &conditions, // Market Conditions
bool force = false //
)
{
//
bool result = false;
//
// Validate Args ...
if (!signal.IsValid() || !conditions.IsValid())
{
//
result = true;
return result;
}
//
bool isLong = IsLong(signal.type);
//
result =
//
isLong
? IsLongFiltered(
signal,
conditions,
force //
)
: IsShortFiltered(
signal,
conditions,
force //
)
//
;
//
return result;
}
//
// Filter Long Signals ...
bool IsLongFiltered(
XSignal &signal,
XCHStrategyConditions &conditions,
bool force = false //
)
{
//
bool result = false;
//
bool isEURUSD = _symbolParser.IsEURUSD(signal.symbol);
bool isGBPUSD = _symbolParser.IsGBPUSD(signal.symbol);
bool isEURGBP = _symbolParser.IsEURGBP(signal.symbol);
bool isXAUUSD = _symbolParser.IsXAUUSD(signal.symbol);
bool isUSDJPY = _symbolParser.IsUSDJPY(signal.symbol);
bool isEURJPY = _symbolParser.IsEURJPY(signal.symbol);
bool isUSDCHF = _symbolParser.IsUSDCHF(signal.symbol);
bool isEURCHF = _symbolParser.IsEURCHF(signal.symbol);
bool isAUDUSD = _symbolParser.IsAUDUSD(signal.symbol);
bool isNZDUSD = _symbolParser.IsNZDUSD(signal.symbol);
bool isUSDCAD = _symbolParser.IsUSDCAD(signal.symbol);
bool isEURCAD = _symbolParser.IsEURCAD(signal.symbol);
bool isDowJones = _symbolParser.IsDowJones(signal.symbol);
//
if (!force)
{
//
if (isEURUSD)
{
//
result =
_eurusdLongParser.IsFiltered(conditions);
}
else if (isGBPUSD)
{
//
result =
_gbpusdLongParser.IsFiltered(conditions);
}
else if (isEURGBP)
{
//
result =
_eurgbpLongParser.IsFiltered(conditions);
}
else if (isUSDJPY)
{
//
result =
_usdjpyLongParser.IsFiltered(conditions);
}
else if (isEURJPY)
{
//
result =
_eurjpyLongParser.IsFiltered(conditions);
}
else if (isUSDCHF)
{
//
result =
_usdchfLongParser.IsFiltered(conditions);
}
else if (isEURCHF)
{
//
result =
_eurchfLongParser.IsFiltered(conditions);
}
else if (isXAUUSD)
{
//
result =
_xauusdLongParser.IsFiltered(conditions);
}
else if (isAUDUSD)
{
//
result =
_audusdLongParser.IsFiltered(conditions);
}
else if (isNZDUSD)
{
//
result =
_nzdusdLongParser.IsFiltered(conditions);
}
else if (isUSDCAD)
{
//
result =
_usdcadLongParser.IsFiltered(conditions);
}
else if (isEURCAD)
{
//
result =
_eurcadLongParser.IsFiltered(conditions);
}
else if (isDowJones)
{
//
result =
_dowjonesLongParser.IsFiltered(conditions);
}
}
else
{
//
result =
//
_eurusdLongParser.IsFiltered(conditions)
//
||
//
_gbpusdLongParser.IsFiltered(conditions)
//
||
//
_eurgbpLongParser.IsFiltered(conditions)
//
||
//
_usdjpyLongParser.IsFiltered(conditions)
//
||
//
_eurjpyLongParser.IsFiltered(conditions)
//
||
//
_usdchfLongParser.IsFiltered(conditions)
//
||
//
_eurchfLongParser.IsFiltered(conditions)
//
||
//
_xauusdLongParser.IsFiltered(conditions)
//
||
//
_audusdLongParser.IsFiltered(conditions)
//
||
//
_nzdusdLongParser.IsFiltered(conditions)
//
||
//
_usdcadLongParser.IsFiltered(conditions)
//
||
//
_eurcadLongParser.IsFiltered(conditions)
//
||
//
_dowjonesLongParser.IsFiltered(conditions)
//
;
}
//
return result;
}
//
// Filter Short Signals ...
bool IsShortFiltered(
XSignal &signal,
XCHStrategyConditions &conditions,
bool force = false //
)
{
//
bool result = false;
//
bool isEURUSD = _symbolParser.IsEURUSD(signal.symbol);
bool isGBPUSD = _symbolParser.IsGBPUSD(signal.symbol);
bool isEURGBP = _symbolParser.IsEURGBP(signal.symbol);
bool isXAUUSD = _symbolParser.IsXAUUSD(signal.symbol);
bool isUSDJPY = _symbolParser.IsUSDJPY(signal.symbol);
bool isEURJPY = _symbolParser.IsEURJPY(signal.symbol);
bool isUSDCHF = _symbolParser.IsUSDCHF(signal.symbol);
bool isEURCHF = _symbolParser.IsEURCHF(signal.symbol);
bool isAUDUSD = _symbolParser.IsAUDUSD(signal.symbol);
bool isNZDUSD = _symbolParser.IsNZDUSD(signal.symbol);
bool isUSDCAD = _symbolParser.IsUSDCAD(signal.symbol);
bool isEURCAD = _symbolParser.IsEURCAD(signal.symbol);
bool isDowJones = _symbolParser.IsDowJones(signal.symbol);
//
if (!force)
{
//
if (isEURUSD)
{
//
result =
_eurusdShortParser.IsFiltered(conditions);
}
else if (isGBPUSD)
{
//
result =
_gbpusdShortParser.IsFiltered(conditions);
}
else if (isEURGBP)
{
//
result =
_eurgbpShortParser.IsFiltered(conditions);
}
else if (isUSDJPY)
{
//
result =
_usdjpyShortParser.IsFiltered(conditions);
}
else if (isEURJPY)
{
//
result =
_eurjpyShortParser.IsFiltered(conditions);
}
else if (isUSDCHF)
{
//
result =
_usdchfShortParser.IsFiltered(conditions);
}
else if (isEURCHF)
{
//
result =
_eurchfShortParser.IsFiltered(conditions);
}
else if (isXAUUSD)
{
//
result =
_xauusdShortParser.IsFiltered(conditions);
}
else if (isAUDUSD)
{
//
result =
_audusdShortParser.IsFiltered(conditions);
}
else if (isNZDUSD)
{
//
result =
_nzdusdShortParser.IsFiltered(conditions);
}
else if (isUSDCAD)
{
//
result =
_usdcadShortParser.IsFiltered(conditions);
}
else if (isEURCAD)
{
//
result =
_eurcadShortParser.IsFiltered(conditions);
}
else if (isDowJones)
{
//
result =
_dowjonesShortParser.IsFiltered(conditions);
}
}
else
{
//
result =
//
_eurusdShortParser.IsFiltered(conditions)
//
||
//
_gbpusdShortParser.IsFiltered(conditions)
//
||
//
_eurgbpShortParser.IsFiltered(conditions)
//
||
//
_usdjpyShortParser.IsFiltered(conditions)
//
||
//
_eurjpyShortParser.IsFiltered(conditions)
//
||
//
_usdchfShortParser.IsFiltered(conditions)
//
||
//
_eurchfShortParser.IsFiltered(conditions)
//
||
//
_xauusdShortParser.IsFiltered(conditions)
//
||
//
_audusdShortParser.IsFiltered(conditions)
//
||
//
_nzdusdShortParser.IsFiltered(conditions)
//
||
//
_usdcadShortParser.IsFiltered(conditions)
//
||
//
_eurcadShortParser.IsFiltered(conditions)
//
||
//
_dowjonesShortParser.IsFiltered(conditions)
//
;
}
//
return result;
}
};
//