diff --git a/Classes/x-saherelm.x121.setup.class.mq5 b/Classes/x-saherelm.x121.setup.class.mq5 index a4fcb7e9..b704aa34 100644 --- a/Classes/x-saherelm.x121.setup.class.mq5 +++ b/Classes/x-saherelm.x121.setup.class.mq5 @@ -75,6 +75,9 @@ enum ENUM_X121_SIGNAL_PROVIDER PROVIDER_XPVF = 18, PROVIDER_XPVSAR = 19, PROVIDER_XHTSRD = 20, + PROVIDER_XATSL = 21, + PROVIDER_XHTD = 22, + PROVIDER_XSLN = 23 }; // @@ -1118,7 +1121,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long1) @@ -1147,7 +1153,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long2) @@ -1175,7 +1184,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long3) @@ -1204,7 +1216,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long4) @@ -1233,7 +1248,13 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long5) @@ -1262,7 +1283,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long6) @@ -1293,7 +1317,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long7) @@ -1324,7 +1351,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long8) @@ -1355,7 +1385,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long9) @@ -1385,7 +1418,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long10) @@ -1414,7 +1450,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long11) @@ -1443,7 +1482,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long12) @@ -1472,7 +1514,10 @@ struct X121SignalGenerator conditions.hkConditions.isSMHKBullish && conditions.sslcConditions.isBullish && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long13) @@ -1501,7 +1546,10 @@ struct X121SignalGenerator conditions.hkConditions.isSMHKBullish && conditions.mrbConditions.isFastOverSlow && conditions.hullConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long14) @@ -1530,7 +1578,10 @@ struct X121SignalGenerator conditions.hkConditions.isSMHKBullish && conditions.mrbConditions.isFastOverSlow && conditions.sslcConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long15) @@ -1560,7 +1611,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.hullConditions.isBullish && conditions.sslcConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long16) @@ -1589,7 +1643,10 @@ struct X121SignalGenerator conditions.hkConditions.isSMHKBullish && conditions.mrbConditions.isFastOverSlow && conditions.hullConditions.isBullish && - conditions.sslcConditions.isBullish + conditions.sslcConditions.isBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long17) @@ -1619,7 +1676,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastOverSlow && conditions.hullConditions.isBullish && conditions.sslcConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long18) @@ -1637,7 +1697,10 @@ struct X121SignalGenerator conditions.mcConditions.isSARSwitchedToBullish && conditions.pvConditions.vales[zIndex] == conditions.mcConditions.psar[zIndex] && conditions.strConditions.isTrendBullish && - conditions.cheConditions.isStrongBullish + conditions.cheConditions.isStrongBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long19) @@ -1659,7 +1722,10 @@ struct X121SignalGenerator conditions.tdConditions.isBullish && conditions.adxtdConditions.isStrong && conditions.adxtdConditions.isBullish && - conditions.vlmConditions.isVolumeBullish + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish // ; if (long20) @@ -1669,6 +1735,102 @@ struct X121SignalGenerator provider = ToString(PROVIDER_XHTSRD); } + // + // XATSL ... + bool long21 = + // + // Starting Conditions ... + conditions.atslConditions.isSwitchedToBullish && + // + // Verifications ... + conditions.tdConditions.isBullish && + conditions.mcConditions.isBullish && + conditions.mcConditions.isSARBullish && + conditions.adxtdConditions.isStrong && + conditions.adxtdConditions.isBullish && + conditions.strConditions.isTrendBullish && + conditions.cheConditions.isStrongBullish && + conditions.hkConditions.isHKBullish && + conditions.hkConditions.isSMHKBullish && + conditions.mrbConditions.isFastOverSlow && + conditions.hullConditions.isBullish && + conditions.sslcConditions.isBullish && + conditions.vlmConditions.isVolumeBullish && + conditions.htdConditions.isBullish && + conditions.slnConditions.isBullish + // + ; + if (long21) + { + // + pusher++; + provider = ToString(PROVIDER_XATSL); + } + + // + // XHTD ... + bool long22 = + // + // Starting Conditions ... + conditions.htdConditions.isSwitchedToBullish && + // + // Verifications ... + conditions.tdConditions.isBullish && + conditions.mcConditions.isBullish && + conditions.mcConditions.isSARBullish && + conditions.adxtdConditions.isStrong && + conditions.adxtdConditions.isBullish && + conditions.strConditions.isTrendBullish && + conditions.cheConditions.isStrongBullish && + conditions.hkConditions.isHKBullish && + conditions.hkConditions.isSMHKBullish && + conditions.mrbConditions.isFastOverSlow && + conditions.hullConditions.isBullish && + conditions.sslcConditions.isBullish && + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.slnConditions.isBullish + // + ; + if (long22) + { + // + pusher++; + provider = ToString(PROVIDER_XHTD); + } + + // + // XSLN ... + bool long23 = + // + // Starting Conditions ... + conditions.slnConditions.isSwitchedToBullish && + // + // Verifications ... + conditions.tdConditions.isBullish && + conditions.mcConditions.isBullish && + conditions.mcConditions.isSARBullish && + conditions.adxtdConditions.isStrong && + conditions.adxtdConditions.isBullish && + conditions.strConditions.isTrendBullish && + conditions.cheConditions.isStrongBullish && + conditions.hkConditions.isHKBullish && + conditions.hkConditions.isSMHKBullish && + conditions.mrbConditions.isFastOverSlow && + conditions.hullConditions.isBullish && + conditions.sslcConditions.isBullish && + conditions.vlmConditions.isVolumeBullish && + conditions.atslConditions.isBullish && + conditions.htdConditions.isBullish + // + ; + if (long23) + { + // + pusher++; + provider = ToString(PROVIDER_XSLN); + } + // result = // @@ -1753,6 +1915,18 @@ struct X121SignalGenerator // long20 // + || + // + long21 + // + || + // + long22 + // + || + // + long23 + // ) // ; @@ -1814,7 +1988,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short1) @@ -1843,7 +2020,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short2) @@ -1871,7 +2051,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short3) @@ -1900,7 +2083,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short4) @@ -1929,7 +2115,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short5) @@ -1958,7 +2147,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short6) @@ -1989,7 +2181,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short7) @@ -2020,7 +2215,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short8) @@ -2051,7 +2249,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short9) @@ -2081,7 +2282,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short10) @@ -2110,7 +2314,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short11) @@ -2139,7 +2346,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short12) @@ -2168,7 +2378,10 @@ struct X121SignalGenerator conditions.hkConditions.isSMHKBearish && conditions.sslcConditions.isBearish && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short13) @@ -2197,7 +2410,10 @@ struct X121SignalGenerator conditions.hkConditions.isSMHKBearish && conditions.mrbConditions.isFastUnderSlow && conditions.hullConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short14) @@ -2226,7 +2442,10 @@ struct X121SignalGenerator conditions.hkConditions.isSMHKBearish && conditions.mrbConditions.isFastUnderSlow && conditions.sslcConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short15) @@ -2256,7 +2475,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.hullConditions.isBearish && conditions.sslcConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short16) @@ -2285,7 +2507,10 @@ struct X121SignalGenerator conditions.hkConditions.isSMHKBearish && conditions.mrbConditions.isFastUnderSlow && conditions.hullConditions.isBearish && - conditions.sslcConditions.isBearish + conditions.sslcConditions.isBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short17) @@ -2315,7 +2540,10 @@ struct X121SignalGenerator conditions.mrbConditions.isFastUnderSlow && conditions.hullConditions.isBearish && conditions.sslcConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short18) @@ -2333,7 +2561,10 @@ struct X121SignalGenerator conditions.mcConditions.isSARSwitchedToBearish && conditions.pvConditions.peaks[zIndex] == conditions.mcConditions.psar[zIndex] && conditions.strConditions.isTrendBearish && - conditions.cheConditions.isStrongBearish + conditions.cheConditions.isStrongBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short19) @@ -2355,7 +2586,10 @@ struct X121SignalGenerator conditions.tdConditions.isBearish && conditions.adxtdConditions.isStrong && conditions.adxtdConditions.isBearish && - conditions.vlmConditions.isVolumeBearish + conditions.vlmConditions.isVolumeBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish // ; if (short20) @@ -2365,6 +2599,104 @@ struct X121SignalGenerator provider = ToString(PROVIDER_XHTSRD); } + // + // XATSL ... + bool short21 = + // + // Starting Conditions ... + conditions.atslConditions.isSwitchedToBearish && + // + // Verifications ... + conditions.mcConditions.isSARBearish && + conditions.adxtdConditions.isStrong && + conditions.adxtdConditions.isBearish && + conditions.strConditions.isTrendBearish && + conditions.cheConditions.isStrongBearish && + conditions.tdConditions.isBearish && + conditions.hkConditions.isHKBearish && + conditions.hkConditions.isSMHKBearish && + conditions.mrbConditions.isFastUnderSlow && + conditions.sslcConditions.isBearish && + conditions.hullConditions.isBearish && + conditions.vlmConditions.isVolumeBearish && + conditions.mcConditions.isBearish && + conditions.htdConditions.isBearish && + conditions.slnConditions.isBearish + // + ; + if (short21) + { + // + pusher++; + provider = ToString(PROVIDER_XATSL); + } + + // + // XHTD ... + bool short22 = + // + // Starting Conditions ... + conditions.htdConditions.isSwitchedToBearish && + // + // Verifications ... + conditions.mcConditions.isSARBearish && + conditions.adxtdConditions.isStrong && + conditions.adxtdConditions.isBearish && + conditions.strConditions.isTrendBearish && + conditions.cheConditions.isStrongBearish && + conditions.tdConditions.isBearish && + conditions.hkConditions.isHKBearish && + conditions.hkConditions.isSMHKBearish && + conditions.mrbConditions.isFastUnderSlow && + conditions.sslcConditions.isBearish && + conditions.hullConditions.isBearish && + conditions.vlmConditions.isVolumeBearish && + conditions.mcConditions.isBearish && + conditions.atslConditions.isBearish && + conditions.atslConditions.isBearish && + conditions.slnConditions.isBearish + // + ; + if (short22) + { + // + pusher++; + provider = ToString(PROVIDER_XHTD); + } + + // + // XSLN ... + bool short23 = + // + // Starting Conditions ... + conditions.slnConditions.isSwitchedToBearish && + // + // Verifications ... + conditions.mcConditions.isSARBearish && + conditions.adxtdConditions.isStrong && + conditions.adxtdConditions.isBearish && + conditions.strConditions.isTrendBearish && + conditions.cheConditions.isStrongBearish && + conditions.tdConditions.isBearish && + conditions.hkConditions.isHKBearish && + conditions.hkConditions.isSMHKBearish && + conditions.mrbConditions.isFastUnderSlow && + conditions.sslcConditions.isBearish && + conditions.hullConditions.isBearish && + conditions.vlmConditions.isVolumeBearish && + conditions.mcConditions.isBearish && + conditions.atslConditions.isBearish && + conditions.atslConditions.isBearish && + conditions.htdConditions.isBearish + // + ; + if (short23) + { + // + pusher++; + provider = ToString(PROVIDER_XSLN); + } + // result = // @@ -2449,6 +2781,18 @@ struct X121SignalGenerator // short20 // + || + // + short21 + // + || + // + short22 + // + || + // + short23 + // ) // ; diff --git a/Classes/x-saherelm.x121.setup.xea.mq5 b/Classes/x-saherelm.x121.setup.xea.mq5 index fd32af76..e0413809 100644 --- a/Classes/x-saherelm.x121.setup.xea.mq5 +++ b/Classes/x-saherelm.x121.setup.xea.mq5 @@ -3498,13 +3498,13 @@ public: } // - double MinFreeMargingForHandleForce() + double MinFreeMargingForOpenTrades() { - return mMinFreeMargingForHandleForce; + return mMinFreeMargingForOpenTrades; } // - void MinFreeMargingForHandleForce(double value) + void MinFreeMargingForOpenTrades(double value) { // if (value < 0) @@ -3513,7 +3513,7 @@ public: } // - mMinFreeMargingForHandleForce = value; + mMinFreeMargingForOpenTrades = value; } // @@ -4691,7 +4691,7 @@ protected: { // double freeMargin = mTrader.mAccount.GetFreeMargin(); - double minFreeMargingForHandleForce = MinFreeMargingForHandleForce(); + double minFreeMargingForHandleForce = MinFreeMargingForOpenTrades(); // bool result = minFreeMargingForHandleForce <= 0 @@ -4774,11 +4774,11 @@ private: // - Increase Volume Size of in Profit Positions; // - etc ... // bool mForceState; // Determine in Force State or not - int mDelayBetweenTwoSignal; // Delay between two same signal - int mMaxPositionsForce; // Max Number of Positions For Guard Handling - double mMaxDrawdownForce; // Force Handling State on Drawdown for Guard - bool mAllowSymbolHedgeOnForce; // Allow Symbol Hedging on Force States - double mMinFreeMargingForHandleForce; // Min Free Margin for Force States + int mDelayBetweenTwoSignal; // Delay between two same signal + int mMaxPositionsForce; // Max Number of Positions For Guard Handling + double mMaxDrawdownForce; // Force Handling State on Drawdown for Guard + bool mAllowSymbolHedgeOnForce; // Allow Symbol Hedging on Force States + double mMinFreeMargingForOpenTrades; // Min Free Margin for Open Trades // XTradeHandler *mTradeHandler; // Handle all Event which related to Signals and Positions @@ -5042,7 +5042,7 @@ private: { // return; - + // XPosition positions[]; int positionsCount = mTrader.GetPositions(positions); diff --git a/Experts/x-saherelm.x121.ea.mq5 b/Experts/x-saherelm.x121.ea.mq5 index f6e80158..1c855b82 100644 --- a/Experts/x-saherelm.x121.ea.mq5 +++ b/Experts/x-saherelm.x121.ea.mq5 @@ -60,7 +60,8 @@ input group "Risk Management"; input double x121EAVolume = 0.01; // Static Volume input double x121EATPPoint = 1000; // TP Point input double x121EASLPoint = 1000; // SL Point -input int x121EAMaxAllowedTrades = 0; // Max Allowed Positions Per Symbol +input int x121EAMaxAllowedTrades = 4; // Max Allowed Positions Per Symbol +input int x121EAMinFreeMargingForOpenTrades = 500; // Min Margin For Opening Trades input bool x121EAUseMaxAllowedPerDirection = true; // Use Max Allowed Positions Per Direction input bool x121EAIgnoreSL = true; // Ignore Calculated SL input bool x121EAIgnoreTP = false; // Ignore Calculated TP @@ -75,7 +76,7 @@ input bool x121EACloseOnOpposit = false; // Close all Positions on Opposit // input group "Trailling"; -input bool x121EAAllowTrailStop = true; // Enable Trailling Stop Losses +input bool x121EAAllowTrailStop = false; // Enable Trailling Stop Losses input bool x121EADisableTrailingWhenOpposit = true; // Disable Trailling When has Opposite In Drawdown input double x121EAFirstTrailDistance = 100; // Start Trailling Distance input double x121EAFirstTrailPoint = 60; // First Stop Trail @@ -325,6 +326,7 @@ bool InitialEA() x121EA.IgnoreTP(x121EAIgnoreTP); x121EA.MaxAllowedTrades(x121EAMaxAllowedTrades); x121EA.UseMaxAllowedPerDirection(x121EAUseMaxAllowedPerDirection); + x121EA.MinFreeMargingForOpenTrades(x121EAMinFreeMargingForOpenTrades); // // Protection ...