last ...
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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 ...
|
// Imports ...
|
||||||
#include "../../../Strategies/x-saherelm.xch.strategy.mq5"
|
#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 ...
|
// Conditions Parser ...
|
||||||
struct XCHStartegyAMarketsAUDUSDLongConditionsParser
|
struct XCHStartegyAMarketsAUDUSDLongConditionsParser
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
|
//
|
||||||
|
XCHStartegyAMarketsAUDUSDOldsLongConditionsParser _oldsParser;
|
||||||
|
XCHStartegyAMarketsAUDUSD2019LongConditionsParser _2019Parser;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XSignal &signal,
|
||||||
|
XCHStrategyConditions &conditions,
|
||||||
|
bool force = true //
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
result =
|
if (!force)
|
||||||
|
{
|
||||||
|
result = _2019Parser.IsFiltered(conditions);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
//
|
//
|
||||||
false
|
result =
|
||||||
//
|
//
|
||||||
;
|
_2019Parser.IsFiltered(conditions)
|
||||||
|
//
|
||||||
|
||
|
||||||
|
//
|
||||||
|
_oldsParser.IsFiltered(conditions)
|
||||||
|
//
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -24,26 +24,49 @@
|
|||||||
// Imports ...
|
// Imports ...
|
||||||
#include "../../../Strategies/x-saherelm.xch.strategy.mq5"
|
#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 ...
|
// Conditions Parser ...
|
||||||
struct XCHStartegyAMarketsAUDUSDShortConditionsParser
|
struct XCHStartegyAMarketsAUDUSDShortConditionsParser
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
|
//
|
||||||
|
XCHStartegyAMarketsAUDUSDOldsShortConditionsParser _oldsParser;
|
||||||
|
XCHStartegyAMarketsAUDUSD2019ShortConditionsParser _2019Parser;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XSignal &signal,
|
||||||
|
XCHStrategyConditions &conditions,
|
||||||
|
bool force = true //
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
//
|
//
|
||||||
result =
|
if (!force)
|
||||||
|
{
|
||||||
|
result = _2019Parser.IsFiltered(conditions);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
//
|
//
|
||||||
false
|
result =
|
||||||
//
|
//
|
||||||
;
|
_2019Parser.IsFiltered(conditions)
|
||||||
|
//
|
||||||
|
||
|
||||||
|
//
|
||||||
|
_oldsParser.IsFiltered(conditions)
|
||||||
|
//
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUS30LongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUS30ShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURCADLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURCADShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURCHFLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURCHFShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURGBPLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURGBPShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURJPYLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURJPYShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURUSDLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsEURUSDShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsGBPUSDLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsGBPUSDShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsNZDUSDLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsNZDUSDShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDCADLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDCADShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDCHFLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDCHFShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDJPYLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsUSDJPYShortConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
XCHStrategyConditions &conditions //
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ struct XCHStartegyAMarketsXAUUSDLongConditionsParser
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string _version;
|
string _version;
|
||||||
|
|
||||||
//
|
//
|
||||||
bool IsFiltered(
|
bool IsFiltered(
|
||||||
XCHStrategyConditions &conditions //
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
@@ -25,32 +25,7 @@
|
|||||||
#include "../Strategies/x-saherelm.xch.strategy.mq5"
|
#include "../Strategies/x-saherelm.xch.strategy.mq5"
|
||||||
|
|
||||||
//
|
//
|
||||||
#include "../Parsers/x-saherelm.xch.dowj.long.parser.mq5"
|
#include "./AMarkets/x-saherelm.xch.amarkets.parser.mq5"
|
||||||
#include "../Parsers/x-saherelm.xch.dowj.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurgbp.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurgbp.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurjpy.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurjpy.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurchf.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurchf.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.audusd.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.audusd.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.nzdusd.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.nzdusd.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.usdcad.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.usdcad.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurcad.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurcad.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurusd.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.eurusd.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.usdjpy.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.usdjpy.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.usdchf.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.usdchf.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.gbpusd.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.gbpusd.short.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.xauusd.long.parser.mq5"
|
|
||||||
#include "../Parsers/x-saherelm.xch.xauusd.short.parser.mq5"
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Conditions Parser ...
|
// Conditions Parser ...
|
||||||
@@ -64,73 +39,10 @@ struct XCHStartegyConditionsParser
|
|||||||
|
|
||||||
//
|
//
|
||||||
XSCAccount _account;
|
XSCAccount _account;
|
||||||
XSymbolParser _symbolParser;
|
|
||||||
XMarketParser _marketParser;
|
XMarketParser _marketParser;
|
||||||
|
|
||||||
//
|
//
|
||||||
// EURUSD ...
|
XCHStartegyAMarketsConditionsParser _amarketsParser;
|
||||||
XCHStartegyEURUSDLongConditionsParser _eurusdLongParser;
|
|
||||||
XCHStartegyEURUSDShortConditionsParser _eurusdShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// GBPUSD ...
|
|
||||||
XCHStartegyGBPUSDLongConditionsParser _gbpusdLongParser;
|
|
||||||
XCHStartegyGBPUSDShortConditionsParser _gbpusdShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// EURGBP ...
|
|
||||||
XCHStartegyEURGBPLongConditionsParser _eurgbpLongParser;
|
|
||||||
XCHStartegyEURGBPShortConditionsParser _eurgbpShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// USDJPY ...
|
|
||||||
XCHStartegyUSDJPYLongConditionsParser _usdjpyLongParser;
|
|
||||||
XCHStartegyUSDJPYShortConditionsParser _usdjpyShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// EURJPY ...
|
|
||||||
XCHStartegyEURJPYLongConditionsParser _eurjpyLongParser;
|
|
||||||
XCHStartegyEURJPYShortConditionsParser _eurjpyShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// USDCHF ...
|
|
||||||
XCHStartegyUSDCHFLongConditionsParser _usdchfLongParser;
|
|
||||||
XCHStartegyUSDCHFShortConditionsParser _usdchfShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// EURCHF ...
|
|
||||||
XCHStartegyEURCHFLongConditionsParser _eurchfLongParser;
|
|
||||||
XCHStartegyEURCHFShortConditionsParser _eurchfShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// XAUUSD ...
|
|
||||||
XCHStartegyXAUUSDLongConditionsParser _xauusdLongParser;
|
|
||||||
XCHStartegyXAUUSDShortConditionsParser _xauusdShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// DOWJONES ...
|
|
||||||
XCHStartegyDOWJONESLongConditionsParser _dowjonesLongParser;
|
|
||||||
XCHStartegyDOWJONESShortConditionsParser _dowjonesShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// AUDUSD ...
|
|
||||||
XCHStartegyAUDUSDLongConditionsParser _audusdLongParser;
|
|
||||||
XCHStartegyAUDUSDShortConditionsParser _audusdShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// NZDUSD ...
|
|
||||||
XCHStartegyNZDUSDLongConditionsParser _nzdusdLongParser;
|
|
||||||
XCHStartegyNZDUSDShortConditionsParser _nzdusdShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// USDCAD ...
|
|
||||||
XCHStartegyUSDCADLongConditionsParser _usdcadLongParser;
|
|
||||||
XCHStartegyUSDCADShortConditionsParser _usdcadShortParser;
|
|
||||||
|
|
||||||
//
|
|
||||||
// EURCAD ...
|
|
||||||
XCHStartegyEURCADLongConditionsParser _eurcadLongParser;
|
|
||||||
XCHStartegyEURCADShortConditionsParser _eurcadShortParser;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
string GenerateSignalConditions(
|
string GenerateSignalConditions(
|
||||||
@@ -857,372 +769,32 @@ struct XCHStartegyConditionsParser
|
|||||||
return result;
|
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);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
string market = _account.GetCompany();
|
string market = _account.GetCompany();
|
||||||
bool isAMarkets = _marketParser.IsAMarkets(market);
|
bool isAMarkets = _marketParser.IsAMarkets(market);
|
||||||
|
|
||||||
|
//
|
||||||
|
bool isAMarketFiltered = _amarketsParser.IsFiltered(
|
||||||
|
signal,
|
||||||
|
conditions,
|
||||||
|
force //
|
||||||
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
if (!force)
|
if (!force)
|
||||||
{
|
{
|
||||||
//
|
result = isAMarketFiltered;
|
||||||
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
|
else
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
result =
|
result =
|
||||||
//
|
//
|
||||||
_eurusdLongParser.IsFiltered(conditions)
|
isAMarketFiltered
|
||||||
//
|
//
|
||||||
||
|
||
|
||||||
//
|
//
|
||||||
_gbpusdLongParser.IsFiltered(conditions)
|
false
|
||||||
//
|
|
||||||
||
|
|
||||||
//
|
|
||||||
_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);
|
|
||||||
|
|
||||||
//
|
|
||||||
string market = _account.GetCompany();
|
|
||||||
bool isAMarkets = _marketParser.IsAMarkets(market);
|
|
||||||
|
|
||||||
//
|
|
||||||
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)
|
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user