last ...
This commit is contained in:
@@ -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 ...
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user