Resolve XUSCHF5 XCHMACC Longs All Critical Guard Attacks in AMarkets-Real ...

This commit is contained in:
2024-02-24 09:15:05 +03:30
parent f8139920bc
commit b62667c7a0
40 changed files with 69980 additions and 84 deletions
@@ -63,12 +63,12 @@ input bool xUSCHF5XTSFIAllowShortSignals = true; // Enable Short Signals
// input bool xUSCHF5XOBDLHAllowLongSignals = true; // Enable Long Signals
// input bool xUSCHF5XOBDLHAllowShortSignals = true; // Enable Short Signals
// //
// // XCHMACC ...
// input group "XUSCHF5 XCHMACC Signaller";
// input bool xUSCHF5XCHMACCEnableSignaller = true; // Enable Signaller
// input bool xUSCHF5XCHMACCAllowLongSignals = true; // Enable Long Signals
// input bool xUSCHF5XCHMACCAllowShortSignals = true; // Enable Short Signals
//
// XCHMACC ...
input group "XUSCHF5 XCHMACC Signaller";
input bool xUSCHF5XCHMACCEnableSignaller = true; // Enable Signaller
input bool xUSCHF5XCHMACCAllowLongSignals = true; // Enable Long Signals
input bool xUSCHF5XCHMACCAllowShortSignals = true; // Enable Short Signals
// //
// // XCHMAMX ...
@@ -128,26 +128,26 @@ bool xUSCHF5MXTSFIAllowShortSignals = xUSCHF5XTSFIAllowShortSignals;
//
// XOBDLH ...
bool xUSCHF5MXOBDLHEnableSignaller = false; // xUSCHF5XOBDLHEnableSignaller;
bool xUSCHF5MXOBDLHAllowLongSignals = false; // xUSCHF5XOBDLHAllowLongSignals;
bool xUSCHF5MXOBDLHEnableSignaller = false; // xUSCHF5XOBDLHEnableSignaller;
bool xUSCHF5MXOBDLHAllowLongSignals = false; // xUSCHF5XOBDLHAllowLongSignals;
bool xUSCHF5MXOBDLHAllowShortSignals = false; // xUSCHF5XOBDLHAllowShortSignals;
//
// XCHMACC ...
bool xUSCHF5MXCHMACCEnableSignaller = false; // xUSCHF5XCHMACCEnableSignaller;
bool xUSCHF5MXCHMACCAllowLongSignals = false; // xUSCHF5XCHMACCAllowLongSignals;
bool xUSCHF5MXCHMACCAllowShortSignals = false; // xUSCHF5XCHMACCAllowShortSignals;
bool xUSCHF5MXCHMACCEnableSignaller = xUSCHF5XCHMACCEnableSignaller;
bool xUSCHF5MXCHMACCAllowLongSignals = xUSCHF5XCHMACCAllowLongSignals;
bool xUSCHF5MXCHMACCAllowShortSignals = xUSCHF5XCHMACCAllowShortSignals;
//
// XCHMAMX ...
bool xUSCHF5MXCHMAMXEnableSignaller = false; // xUSCHF5XCHMAMXEnableSignaller;
bool xUSCHF5MXCHMAMXAllowLongSignals = false; // xUSCHF5XCHMAMXAllowLongSignals;
bool xUSCHF5MXCHMAMXEnableSignaller = false; // xUSCHF5XCHMAMXEnableSignaller;
bool xUSCHF5MXCHMAMXAllowLongSignals = false; // xUSCHF5XCHMAMXAllowLongSignals;
bool xUSCHF5MXCHMAMXAllowShortSignals = false; // xUSCHF5XCHMAMXAllowShortSignals;
//
// XCHMAMN ...
bool xUSCHF5MXCHMAMNEnableSignaller = false; // xUSCHF5XCHMAMNEnableSignaller;
bool xUSCHF5MXCHMAMNAllowLongSignals = false; // xUSCHF5XCHMAMNAllowLongSignals;
bool xUSCHF5MXCHMAMNEnableSignaller = false; // xUSCHF5XCHMAMNEnableSignaller;
bool xUSCHF5MXCHMAMNAllowLongSignals = false; // xUSCHF5XCHMAMNAllowLongSignals;
bool xUSCHF5MXCHMAMNAllowShortSignals = false; // xUSCHF5XCHMAMNAllowShortSignals;
//
@@ -437,30 +437,30 @@ bool XUSCHF5InitIndicators()
//
// XOBDLH ...
bool isXOBDLHEnable = false;
// xUSCHF5XOBDLHEnableSignaller &&
// (xUSCHF5XOBDLHAllowLongSignals ||
// xUSCHF5XOBDLHAllowShortSignals);
// xUSCHF5XOBDLHEnableSignaller &&
// (xUSCHF5XOBDLHAllowLongSignals ||
// xUSCHF5XOBDLHAllowShortSignals);
//
// XCHMACC ...
bool isXCHMACCEnable = false;
// xUSCHF5XCHMACCEnableSignaller &&
// (xUSCHF5XCHMACCAllowLongSignals ||
// xUSCHF5XCHMACCAllowShortSignals);
bool isXCHMACCEnable =
xUSCHF5XCHMACCEnableSignaller &&
(xUSCHF5XCHMACCAllowLongSignals ||
xUSCHF5XCHMACCAllowShortSignals);
//
// XCHMAMX ...
bool isXCHMAMXEnable = false;
// xUSCHF5XCHMAMXEnableSignaller &&
// (xUSCHF5XCHMAMXAllowLongSignals ||
// xUSCHF5XCHMAMXAllowShortSignals);
// xUSCHF5XCHMAMXEnableSignaller &&
// (xUSCHF5XCHMAMXAllowLongSignals ||
// xUSCHF5XCHMAMXAllowShortSignals);
//
// XCHMAMN ...
bool isXCHMAMNEnable = false;
// xUSCHF5XCHMAMNEnableSignaller &&
// (xUSCHF5XCHMAMNAllowLongSignals ||
// xUSCHF5XCHMAMNAllowShortSignals);
// xUSCHF5XCHMAMNEnableSignaller &&
// (xUSCHF5XCHMAMNAllowLongSignals ||
// xUSCHF5XCHMAMNAllowShortSignals);
//
bool hasSignaller =
@@ -1112,12 +1112,12 @@ void XUSCHF5DisableLongSignallers()
//
// XCHMACC ...
// if (xUSCHF5MXCHMACCEnableSignaller)
// {
// //
// xUSCHF5Provider.DisbaleXCHMACCLongs();
// xUSCHF5MXCHMACCAllowLongSignals = false;
// }
if (xUSCHF5MXCHMACCEnableSignaller)
{
//
xUSCHF5Provider.DisbaleXCHMACCLongs();
xUSCHF5MXCHMACCAllowLongSignals = false;
}
//
// XCHMAMX ...
@@ -1230,20 +1230,20 @@ void XUSCHF5EnableLongSignallers()
//
// XCHMACC ...
// if (xUSCHF5MXCHMACCEnableSignaller)
// {
// //
// xUSCHF5MXCHMACCAllowLongSignals =
// xUSCHF5XCHMACCAllowLongSignals
// ? true
// : xUSCHF5MXCHMACCAllowLongSignals;
if (xUSCHF5MXCHMACCEnableSignaller)
{
//
xUSCHF5MXCHMACCAllowLongSignals =
xUSCHF5XCHMACCAllowLongSignals
? true
: xUSCHF5MXCHMACCAllowLongSignals;
// //
// if (xUSCHF5MXCHMACCAllowLongSignals)
// {
// xUSCHF5Provider.EnableXCHMACCLongs();
// }
// }
//
if (xUSCHF5MXCHMACCAllowLongSignals)
{
xUSCHF5Provider.EnableXCHMACCLongs();
}
}
//
// XCHMAMX ...
@@ -1331,12 +1331,12 @@ void XUSCHF5DisableShortSignallers()
//
// XCHMACC ...
// if (xUSCHF5MXCHMACCEnableSignaller)
// {
// //
// xUSCHF5Provider.DisableXCHMACCShorts();
// xUSCHF5MXCHMACCAllowShortSignals = false;
// }
if (xUSCHF5MXCHMACCEnableSignaller)
{
//
xUSCHF5Provider.DisableXCHMACCShorts();
xUSCHF5MXCHMACCAllowShortSignals = false;
}
//
// XCHMAMX ...
@@ -1449,20 +1449,20 @@ void XUSCHF5EnableShortSignallers()
//
// XCHMACC ...
// if (xUSCHF5MXCHMACCEnableSignaller)
// {
// //
// xUSCHF5MXCHMACCAllowShortSignals =
// xUSCHF5XCHMACCAllowShortSignals
// ? true
// : xUSCHF5MXCHMACCAllowShortSignals;
if (xUSCHF5MXCHMACCEnableSignaller)
{
//
xUSCHF5MXCHMACCAllowShortSignals =
xUSCHF5XCHMACCAllowShortSignals
? true
: xUSCHF5MXCHMACCAllowShortSignals;
// //
// if (xUSCHF5MXCHMACCAllowShortSignals)
// {
// xUSCHF5Provider.EnableXCHMACCShorts();
// }
// }
//
if (xUSCHF5MXCHMACCAllowShortSignals)
{
xUSCHF5Provider.EnableXCHMACCShorts();
}
}
//
// XCHMAMX ...
@@ -13344,6 +13344,69 @@ bool XUSCHF5XCHMACCHasLongSignal()
//
)
//
// Guard Attacks Resolves ...
||
//
(
//
(mConditions.isXTSCurrentUnderNearest &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
mConditions.isXTSCurrentCrossedUnderNearest
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDBullUnderBear &&
(
//
(mConditions.isXTDSignalUnderBear &&
(
//
(mConditions.isXCHMASCTrendsDown &&
mConditions.isXCHMASCFastOverSlow)
//
)
//
)
//
)
//
)
//
||
//
(mConditions.isXTDSignalUnderBear &&
(
//
((mConditions.isXCHMALCTrendsDown &&
mConditions.isXCHMALCFastOverSlow) &&
(
//
(mConditions.isXCHMASCOverMax &&
mConditions.isXCHLHMCLCHHSame &&
mConditions.isXCHLHMCLCLLSame)
//
)
//
)
//
)
//
)
//
)
//
)
//
;
@@ -40,12 +40,12 @@ input bool xUSCHF5EnableAlerts = true; // Enable Events Alert
input bool xUSCHF5EnableHourlyAlerts = false; // Send Alert on each new Hour
input bool xUSCHF5EnableDailyAlerts = false; // Send Alert on each new Day
input bool xUSCHF5EnableWeeklyAlerts = false; // Send Alert on each new Week
input bool xUSCHF5EnableMonthlyAlerts = true; // Send Alert on each new Month
input bool xUSCHF5EnableMonthlyAlerts = false; // Send Alert on each new Month
//
// Reports ...
input bool xUSCHF5EnableDailyReports = false; // Send Report on each new Day
input bool xUSCHF5EnableWeeklyReports = false; // Send Report on each new Week
input bool xUSCHF5EnableMonthlyReports = true; // Send Report on each new Month
input bool xUSCHF5EnableDailyReports = false; // Send Report on each new Day
input bool xUSCHF5EnableWeeklyReports = false; // Send Report on each new Week
input bool xUSCHF5EnableMonthlyReports = false; // Send Report on each new Month
//
// Trader and Expert Specific Configurations ...
@@ -80,16 +80,16 @@ input double xUSCHF5MaxSupportedVolumePerTradeFactor = 0;
input double xUSCHF5IncreasedMaxSupportedVolumeRate = 0; // Increase Max Supported Volume based on Balance
//
// Trade Profits ...
input double xUSCHF5MinRewardInPips = 6; // Minimum Reward Per Trade in Pips
input double xUSCHF5MinRewardInPips = 6; // Minimum Reward Per Trade in Pips
input double xUSCHF5RiskFreeStepInPips = 0; // Make Trades Risk Free Steps in Pips
input double xUSCHF5RiskFreeRate = 0; // Volume Multiplier for Risk Free Trades
input double xUSCHF5RiskFreeRate = 0; // Volume Multiplier for Risk Free Trades
//
// Guard Riskable Money and Profits ...
input double xUSCHF5CriticalDrawDownFactor = 0.15; // Critical Allowed Drawdown Factor based on Balance
input ENUM_X_GUARD_ACTIONS xUSCHF5CriticalGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_5; // Specify Guard Action on Critical Drawdown
input double xUSCHF5MaxAllowedDrawDownFactor = 0.20; // Max Allowed Drawdown Factor based on Balance
input ENUM_X_GUARD_ACTIONS xUSCHF5MaxAllowedGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_10; // Specify Guard Action on Max Allowed Drawdown
input int xUSCHF5GuardStopoutFiredAfterTouches = 5; // Guard Stopout all Trades if Max Allowed Drawdown touched
input double xUSCHF5CriticalDrawDownFactor = 0.15; // Critical Allowed Drawdown Factor based on Balance
input ENUM_X_GUARD_ACTIONS xUSCHF5CriticalGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_1; // Specify Guard Action on Critical Drawdown
input double xUSCHF5MaxAllowedDrawDownFactor = 0.20; // Max Allowed Drawdown Factor based on Balance
input ENUM_X_GUARD_ACTIONS xUSCHF5MaxAllowedGuardAction = X_GUARD_PARTIAL_CLOSE_MAX_IN_DD_5; // Specify Guard Action on Max Allowed Drawdown
input int xUSCHF5GuardStopoutFiredAfterTouches = 5; // Guard Stopout all Trades if Max Allowed Drawdown touched
//
// Account Conditions for Trading ...
@@ -212,7 +212,7 @@ bool XUSCHF5ValidateInputs()
//
result =
xUSCHF5CriticalDrawDownFactor == 0 || (xUSCHF5CriticalDrawDownFactor > 0 &&
xUSCHF5CriticalDrawDownFactor < 1);
xUSCHF5CriticalDrawDownFactor < 1);
if (!result)
{
//
@@ -225,7 +225,7 @@ bool XUSCHF5ValidateInputs()
//
result =
xUSCHF5MaxAllowedDrawDownFactor == 0 || (xUSCHF5MaxAllowedDrawDownFactor > 0 &&
xUSCHF5MaxAllowedDrawDownFactor < 1);
xUSCHF5MaxAllowedDrawDownFactor < 1);
if (!result)
{
//