From 4362260abec050b3b9341e755300745f2b45cdf9 Mon Sep 17 00:00:00 2001 From: Hadi Khazaee Asl Date: Mon, 26 Aug 2024 17:14:08 +0330 Subject: [PATCH] implement all market parsers into base parsers ... --- Libraries/x-saherelm.common.lib.mq5 | 57 +++++++++++++++++- Parsers/x-saherelm.xch.che.parser.mq5 | 84 +++++++++++++++++++++++++- Parsers/x-saherelm.xch.parser.mq5 | 87 +++++++++++++++++++++++++-- 3 files changed, 219 insertions(+), 9 deletions(-) diff --git a/Libraries/x-saherelm.common.lib.mq5 b/Libraries/x-saherelm.common.lib.mq5 index 14222a6e..ed1c736f 100644 --- a/Libraries/x-saherelm.common.lib.mq5 +++ b/Libraries/x-saherelm.common.lib.mq5 @@ -5695,8 +5695,33 @@ struct XMarketParser string _version; // Temp ... // - bool IsAMarkets(string market) - { + bool IsIngot(string market) { + // + bool result = false; + + // + // result = IsValid(market) && + // market == ""; + + // + return result; + } + + // + bool IsErrante(string market) { + // + bool result = false; + + // + // result = IsValid(market) && + // market == ""; + + // + return result; + } + + // + bool IsAMarkets(string market) { // bool result = false; @@ -5707,6 +5732,34 @@ struct XMarketParser // return result; } + + // + bool IsIFCMarkets(string market) { + // + bool result = false; + + // + // result = IsValid(market) && + // market == ""; + + // + return result; + } + + // + bool IsOtetMarkets(string market) { + // + bool result = false; + + // + // result = IsValid(market) && + // market == ""; + + // + return result; + } + + // }; // diff --git a/Parsers/x-saherelm.xch.che.parser.mq5 b/Parsers/x-saherelm.xch.che.parser.mq5 index 39d58eb9..740d85b7 100644 --- a/Parsers/x-saherelm.xch.che.parser.mq5 +++ b/Parsers/x-saherelm.xch.che.parser.mq5 @@ -25,7 +25,12 @@ #include "../Strategies/x-saherelm.xch.che.strategy.mq5" // +#include "./Ingot/x-saherelm.xch.che.ingot.parser.mq5" +#include "./Alpari/x-saherelm.xch.che.alpari.parser.mq5" +#include "./Errante/x-saherelm.xch.che.errante.parser.mq5" #include "./AMarkets/x-saherelm.xch.che.amarkets.parser.mq5" +#include "./IFCMarkets/x-saherelm.xch.che.ifcmarkets.parser.mq5" +#include "./OtetMarkets/x-saherelm.xch.che.otetmarkets.parser.mq5" // // Conditions Parser ... @@ -42,7 +47,12 @@ struct XCHCHEStartegyConditionsParser XMarketParser _marketParser; // + XCHCHEStartegyIngotConditionsParser _ingotParser; + XCHCHEStartegyAlpariConditionsParser _alpariParser; + XCHCHEStartegyErranteConditionsParser _erranteParser; XCHCHEStartegyAMarketsConditionsParser _amarketsParser; + XCHCHEStartegyIFCMarketsConditionsParser _ifcmarketsParser; + XCHCHEStartegyOtetMarketsConditionsParser _otetmarketsParser; // string GenerateSignalConditions( @@ -995,10 +1005,47 @@ struct XCHCHEStartegyConditionsParser // string market = _account.GetCompany(); + bool isIngot = _marketParser.IsIngot(market); + bool isErrante = _marketParser.IsErrante(market); bool isAMarkets = _marketParser.IsAMarkets(market); + bool isIFCMarkets = _marketParser.IsIFCMarkets(market); + bool isOtetMarkets = _marketParser.IsOtetMarkets(market); // - bool isAMarketFiltered = _amarketsParser.IsFiltered( + // Ingot ... + bool isIngotFiltered = _ingotParser.IsFiltered( + signal, + conditions, + force // + ); + + // + // Errante ... + bool isErranteFiltered = _erranteParser.IsFiltered( + signal, + conditions, + force // + ); + + // + // AMarkets ... + bool isAMarketsFiltered = _amarketsParser.IsFiltered( + signal, + conditions, + force // + ); + + // + // IFCMarkets ... + bool isIFCMarketsFiltered = _ifcmarketsParser.IsFiltered( + signal, + conditions, + force // + ); + + // + // OtetMarkets ... + bool isOtetMarketsFiltered = _otetmarketsParser.IsFiltered( signal, conditions, force // @@ -1007,14 +1054,45 @@ struct XCHCHEStartegyConditionsParser // if (!force) { - result = isAMarketFiltered; + // +if (isIngot) { + result= isIngotFiltered; +} else +if (isErrante) { + result= isErranteFiltered; +} else +if (isAMarkets) { + result= isAMarketsFiltered; +} else +if (isIFCMarkets) { + result= isIFCMarketsFiltered; +} else +if (isOtetMarkets) { + result= isOtetMarketsFiltered; +} } else { // result = // - isAMarketFiltered +isIngotFiltered +// +|| +// +isErranteFiltered +// +|| +// +isAMarketsFiltered +// +|| +// +isIFCMarketsFiltered +// +|| +// +isOtetMarketsFiltered // ; } diff --git a/Parsers/x-saherelm.xch.parser.mq5 b/Parsers/x-saherelm.xch.parser.mq5 index 75440fe8..f7e2105d 100644 --- a/Parsers/x-saherelm.xch.parser.mq5 +++ b/Parsers/x-saherelm.xch.parser.mq5 @@ -25,7 +25,12 @@ #include "../Strategies/x-saherelm.xch.strategy.mq5" // +#include "./Alpari/x-saherelm.xch.alpari.parser.mq5" +#include "./Ingot/x-saherelm.xch.ingot.parser.mq5" +#include "./Errante/x-saherelm.xch.errante.parser.mq5" #include "./AMarkets/x-saherelm.xch.amarkets.parser.mq5" +#include "./IFCMarkets/x-saherelm.xch.ifcmarkets.parser.mq5" +#include "./OtetMarkets/x-saherelm.xch.otetmarkets.parser.mq5" // // Conditions Parser ... @@ -42,7 +47,12 @@ struct XCHStartegyConditionsParser XMarketParser _marketParser; // + XCHStartegyIngotConditionsParser _ingotParser; + XCHStartegyAlpariConditionsParser _alpariParser; + XCHStartegyErranteConditionsParser _erranteParser; XCHStartegyAMarketsConditionsParser _amarketsParser; + XCHStartegyIFCMarketsConditionsParser _ifcmarketsParser; + XCHStartegyOtetMarketsConditionsParser _otetmarketsParser; // string GenerateSignalConditions( @@ -771,10 +781,47 @@ struct XCHStartegyConditionsParser // string market = _account.GetCompany(); + bool isIngot = _marketParser.IsIngot(market); + bool isErrante = _marketParser.IsErrante(market); bool isAMarkets = _marketParser.IsAMarkets(market); + bool isIFCMarkets = _marketParser.IsIFCMarkets(market); + bool isOtetMarkets = _marketParser.IsOtetMarkets(market); // - bool isAMarketFiltered = _amarketsParser.IsFiltered( + // Ingot ... + bool isIngotFiltered = _ingotParser.IsFiltered( + signal, + conditions, + force // + ); + + // + // Errante ... + bool isErranteFiltered = _erranteParser.IsFiltered( + signal, + conditions, + force // + ); + + // + // AMarkets ... + bool isAMarketsFiltered = _amarketsParser.IsFiltered( + signal, + conditions, + force // + ); + + // + // IFCMarkets ... + bool isIFCMarketsFiltered = _ifcmarketsParser.IsFiltered( + signal, + conditions, + force // + ); + + // + // OtetMarkets ... + bool isOtetMarketsFiltered = _otetmarketsParser.IsFiltered( signal, conditions, force // @@ -783,18 +830,50 @@ struct XCHStartegyConditionsParser // if (!force) { - result = isAMarketFiltered; + // + if (isIngot) + { + result = isIngotFiltered; + } + else if (isErrante) + { + result = isErranteFiltered; + } + else if (isAMarkets) + { + result = isAMarketsFiltered; + } + else if (isIFCMarkets) + { + result = isIFCMarketsFiltered; + } + else if (isOtetMarkets) + { + result = isOtetMarketsFiltered; + } } else { // result = // - isAMarketFiltered + isIngotFiltered // || // - false + isErranteFiltered + // + || + // + isAMarketsFiltered + // + || + // + isIFCMarketsFiltered + // + || + // + isOtetMarketsFiltered // ; }