This commit is contained in:
2025-03-21 03:04:33 +03:30
parent f59ec0c65f
commit 419d697eb8
4 changed files with 209 additions and 33 deletions
+25 -25
View File
@@ -44,43 +44,43 @@ input string eaSymbols = "EURUSDb,GBPUSDb,USDCHFb,USDJPYb"; // Trading Symbols
// //
// Signalling ... // Signalling ...
input group "Signalling"; input group "Signalling";
input bool eaAllowLong = true; // Allow Long Signals input bool eaAllowLong = true; // Allow Long Signals
input bool eaAllowShort = true; // Allow Short Signals input bool eaAllowShort = true; // Allow Short Signals
input int eaMaxAllowedLongs = 5; // Max Allowed Long Signals input int eaMaxAllowedLongs = 5; // Max Allowed Long Signals
input int eaMaxAllowedShorts = 5; // Max Allowed Short Signals input int eaMaxAllowedShorts = 5; // Max Allowed Short Signals
input bool eaUseMaxAllowedSignalsPerSymbol = true; // Use Max Allowed Signal Types Per Symbol input bool eaUseMaxAllowedSignalsPerSymbol = true; // Use Max Allowed Signal Types Per Symbol
input double eaLastPositionProfitForAcceptNextInPoint = 30; // Last Position Profit In Points for Accept new Signal input double eaLastPositionProfitForAcceptNextInPoint = 0; // Last Position Profit In Points for Accept new Signal
input int eaDelaysBetweenTwoSignalsInBar = 12; // Delay between two Signals in Bars input int eaDelaysBetweenTwoSignalsInBar = 0; // Delay between two Signals in Bars
input double eaMaxAllowedSpread = 25; // Max Allowed Spread for Signalling input double eaMaxAllowedSpread = 0; // Max Allowed Spread for Signalling
// //
// Trade ... // Trade ...
input group "Trade"; input group "Trade";
input bool eaAllowTrade = true; // Allow Open Trade On Signals input bool eaAllowTrade = true; // Allow Open Trade On Signals
input string eaStartTradeAt = "02:30"; // Enable Trade on Signals on Time input string eaStartTradeAt = ""; // Enable Trade on Signals on Time
input string eaStopTradeAt = "23:30"; // Enable Trade on Signals on Time input string eaStopTradeAt = ""; // Enable Trade on Signals on Time
input string eaCloseAllTradesAt = ""; // Enable Close All Trades on Signals on Time input string eaCloseAllTradesAt = ""; // Enable Close All Trades on Signals on Time
// //
// Risk Management ... // Risk Management ...
input group "Risk Management"; input group "Risk Management";
input double eaR2R = 6; // Signallers Risk to Reward Ratio input double eaR2R = 6; // Signallers Risk to Reward Ratio
input double eaVolume = 0; // Static Volume input double eaVolume = 0; // Static Volume
input double eaStaticBalance = 1000; // Static Balance input double eaStaticBalance = 1000; // Static Balance
input double eaBalancePerTrade = 10; // Balance Used in Each Trade input double eaBalancePerTrade = 5; // Balance Used in Each Trade
input double eaRiskPercentPerBalance = 0; // Risk Percent Per Balance in Each Trade input double eaRiskPercentPerBalance = 0; // Risk Percent Per Balance in Each Trade
input bool eaDynamicRiskManagement = false; // Dynamic Risk Management input bool eaDynamicRiskManagement = false; // Dynamic Risk Management
input bool eaUseDynamicVolume = false; // Use Dynamic Volume input bool eaUseDynamicVolume = false; // Use Dynamic Volume
input double eaDynamicVolumeStep = 0.01; // Increase Volume Step input double eaDynamicVolumeStep = 0.01; // Increase Volume Step
input double eaDynamicVolumeBalanceFactor = 200; // Balance Factor for Generate Dynamic Volume input double eaDynamicVolumeBalanceFactor = 200; // Balance Factor for Generate Dynamic Volume
input double eaMaxAllowedDrawdownToOpenTrades = 3; // Max Allowed Drawdown for Open Trades input double eaMaxAllowedDrawdownToOpenTrades = 3; // Max Allowed Drawdown for Open Trades
input int eaMaxAllowedSLToPauseSignallingPerSymbol = 2; // Max Allowed SL for Pause Signalling Per Symbol input int eaMaxAllowedSLToPauseSignallingPerSymbol = 0; // Max Allowed SL for Pause Signalling Per Symbol
input int eaPauseSignallingAfterReachesMaxAllowedSLInSecconds = 86400; // Pause Signalling Per Symbol afte Max Allowed SL Reached In Seconds input int eaPauseSignallingAfterReachesMaxAllowedSLInSecconds = 0; // Pause Signalling Per Symbol afte Max Allowed SL Reached In Seconds
// //
// Protection ... // Protection ...
input group "Protection"; input group "Protection";
input bool eaAllowHedging = true; // Allow Hedge Positions input bool eaAllowHedging = false; // Allow Hedge Positions
input int eaMinOpenTradesFroHedging = 4; // Minimum Open Positions for Hedging input int eaMinOpenTradesFroHedging = 4; // Minimum Open Positions for Hedging
input double eaHedgingMinVolumeStep = 0.01; // Minimum Volume Step for Hedging input double eaHedgingMinVolumeStep = 0.01; // Minimum Volume Step for Hedging
input double eaHedgeingMinRequiredProfitPerVolumeStep = 1.0; // Minimum Required Profit Per Volume Step for Hedging input double eaHedgeingMinRequiredProfitPerVolumeStep = 1.0; // Minimum Required Profit Per Volume Step for Hedging
@@ -2981,6 +2981,32 @@ struct X121SMCStrategyConditionParser
tmpBoxes // tmpBoxes //
); );
Clean(tmp); Clean(tmp);
//
// Fair Value Gaps ...
ToBox(
cState.bullishFairValueGaps,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
//
// Support Zones ...
ToBox(
cState.supportZones,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
} }
else else
{ {
@@ -2996,6 +3022,32 @@ struct X121SMCStrategyConditionParser
tmpBoxes // tmpBoxes //
); );
Clean(tmp); Clean(tmp);
//
// Fair Value Gaps ...
ToBox(
cState.bearishFairValueGaps,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
//
// Resistance Zones ...
ToBox(
cState.resistanceZones,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
} }
// //
@@ -3445,6 +3497,32 @@ struct X121SMCStrategyConditionParser
tmpBoxes // tmpBoxes //
); );
Clean(tmp); Clean(tmp);
//
// Fair Value Gaps ...
ToBox(
cState.bullishFairValueGaps,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
//
// Support Zones ...
ToBox(
cState.supportZones,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
} }
else else
{ {
@@ -3460,6 +3538,32 @@ struct X121SMCStrategyConditionParser
tmpBoxes // tmpBoxes //
); );
Clean(tmp); Clean(tmp);
//
// Fair Value Gaps ...
ToBox(
cState.bearishFairValueGaps,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
//
// Resistance Zones ...
ToBox(
cState.resistanceZones,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
} }
// //
@@ -3875,6 +3979,32 @@ struct X121SMCStrategyConditionParser
tmpBoxes // tmpBoxes //
); );
Clean(tmp); Clean(tmp);
//
// Fair Value Gaps ...
ToBox(
cState.bullishFairValueGaps,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
//
// Support Zones ...
ToBox(
cState.supportZones,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
} }
else else
{ {
@@ -3890,6 +4020,32 @@ struct X121SMCStrategyConditionParser
tmpBoxes // tmpBoxes //
); );
Clean(tmp); Clean(tmp);
//
// Fair Value Gaps ...
ToBox(
cState.bearishFairValueGaps,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
//
// Resistance Zones ...
ToBox(
cState.resistanceZones,
tmp //
);
Copy(
tmp,
tmpBoxes,
false // Ignore Clean ...
);
Clean(tmp);
} }
// //
@@ -491,7 +491,7 @@ class XCX121SMCXWZSignalDetector : public XCBase
// //
// Fix rf Reward ... // Fix rf Reward ...
rfRewar = 2; rfRewar = 1;
} }
else if (signalProvider == X121SMC_XWZ_PROVIDER_XACTIVATED_BOX) else if (signalProvider == X121SMC_XWZ_PROVIDER_XACTIVATED_BOX)
{ {
@@ -512,7 +512,7 @@ class XCX121SMCXWZSignalDetector : public XCBase
// //
// Fix rf Reward ... // Fix rf Reward ...
rfRewar = 2; rfRewar = 1;
} }
else if (signalProvider == X121SMC_XWZ_PROVIDER_XBREAKED_BOX) else if (signalProvider == X121SMC_XWZ_PROVIDER_XBREAKED_BOX)
{ {
@@ -533,9 +533,12 @@ class XCX121SMCXWZSignalDetector : public XCBase
// //
// Fix rf Reward ... // Fix rf Reward ...
rfRewar = 2; rfRewar = 1;
} }
//
Print("XWZ ", ToString(signalBoxDir), " Signal Provided: ", EnumToString(signalProvider));
// //
// Select Condition SL ... // Select Condition SL ...
+22 -5
View File
@@ -609,7 +609,6 @@ struct X121SMCStrategyXWZWorkingZone
iOB // iOB //
); );
// //
has = iOBBox.IsValid(); has = iOBBox.IsValid();
if (has) if (has)
@@ -1161,7 +1160,8 @@ struct X121SMCStrategyXWZWorkingZone
bool isSenario2Happend = false; bool isSenario2Happend = false;
bool isSenario2Bullish = false; bool isSenario2Bullish = false;
bool isSenario2Bearish = false; bool isSenario2Bearish = false;
if (useSenario2) if (!isSenario1Happend &&
useSenario2)
{ {
// //
isSenario2Happend = cParser.HasSenario2Conditions( isSenario2Happend = cParser.HasSenario2Conditions(
@@ -1200,7 +1200,9 @@ struct X121SMCStrategyXWZWorkingZone
bool isSenario3Happend = false; bool isSenario3Happend = false;
bool isSenario3Bullish = false; bool isSenario3Bullish = false;
bool isSenario3Bearish = false; bool isSenario3Bearish = false;
if (useSenario3) if (!isSenario1Happend &&
!isSenario2Happend &&
useSenario3)
{ {
// //
isSenario3Happend = cParser.HasSenario3Conditions( isSenario3Happend = cParser.HasSenario3Conditions(
@@ -1239,6 +1241,12 @@ struct X121SMCStrategyXWZWorkingZone
bool isSenario4Happend = false; bool isSenario4Happend = false;
bool isSenario4Bullish = false; bool isSenario4Bullish = false;
bool isSenario4Bearish = false; bool isSenario4Bearish = false;
if (!isSenario1Happend &&
!isSenario2Happend &&
!isSenario3Happend &&
useSenario4)
{
}
// //
// Senario 5: // Senario 5:
@@ -1248,6 +1256,13 @@ struct X121SMCStrategyXWZWorkingZone
bool isSenario5Happend = false; bool isSenario5Happend = false;
bool isSenario5Bullish = false; bool isSenario5Bullish = false;
bool isSenario5Bearish = false; bool isSenario5Bearish = false;
if (!isSenario1Happend &&
!isSenario2Happend &&
!isSenario3Happend &&
!isSenario4Happend &&
useSenario5)
{
}
// //
// Summarize All Senario(s) Conditions ... // Summarize All Senario(s) Conditions ...
@@ -1258,7 +1273,8 @@ struct X121SMCStrategyXWZWorkingZone
isSenario1Bullish || isSenario1Bullish ||
isSenario2Bullish || isSenario2Bullish ||
isSenario3Bullish || isSenario3Bullish ||
isSenario4Bullish isSenario4Bullish ||
isSenario5Bullish
// //
; ;
@@ -1268,7 +1284,8 @@ struct X121SMCStrategyXWZWorkingZone
isSenario1Bearish || isSenario1Bearish ||
isSenario2Bearish || isSenario2Bearish ||
isSenario3Bearish || isSenario3Bearish ||
isSenario4Bearish isSenario4Bearish ||
isSenario5Bearish
// //
; ;