all prepared ...

This commit is contained in:
2025-09-18 00:02:12 +03:30
parent 4c9fe89fad
commit 59b34922c4
4 changed files with 60 additions and 60 deletions
-2
View File
@@ -605,7 +605,6 @@ class XCBaseExpert : public XCBase
* @return ( bool ) * @return ( bool )
*/ */
bool HandleCanAnalyseEventTriggered( bool HandleCanAnalyseEventTriggered(
string name,
string symbol, string symbol,
ENUM_TIMEFRAMES period, ENUM_TIMEFRAMES period,
datetime time // datetime time //
@@ -613,7 +612,6 @@ class XCBaseExpert : public XCBase
{ {
// //
return eaTradeManager.CanAnalyse( return eaTradeManager.CanAnalyse(
name,
symbol, symbol,
period, period,
time // time //
+29 -24
View File
@@ -752,7 +752,6 @@ class XCTradeManager : public XCBase
* @return ( bool ) * @return ( bool )
*/ */
bool CanAnalyse( bool CanAnalyse(
string name,
string symbol, string symbol,
ENUM_TIMEFRAMES period, ENUM_TIMEFRAMES period,
datetime time // datetime time //
@@ -765,8 +764,7 @@ class XCTradeManager : public XCBase
// Finding Symbol Configuration Index ... // Finding Symbol Configuration Index ...
int idx = FindSymbolConfigurationIndex( int idx = FindSymbolConfigurationIndex(
symbol, symbol,
period, period //
name //
); );
// //
@@ -857,7 +855,6 @@ class XCTradeManager : public XCBase
// //
// Check Sessions and Restrictions ... // Check Sessions and Restrictions ...
result = CanAnalyse( result = CanAnalyse(
signal.provider,
signal.symbol, signal.symbol,
signal.period, signal.period,
signal.time // signal.time //
@@ -875,8 +872,7 @@ class XCTradeManager : public XCBase
// Check Signal Spread ... // Check Signal Spread ...
int idx = FindSymbolConfigurationIndex( int idx = FindSymbolConfigurationIndex(
signal.symbol, signal.symbol,
signal.period, signal.period //
signal.provider //
); );
if (IsValidIndex(idx)) if (IsValidIndex(idx))
{ {
@@ -897,19 +893,30 @@ class XCTradeManager : public XCBase
// //
// Checking Max Allowed Positions ... // Checking Max Allowed Positions ...
XPosition positions[]; if (symbolTradeConfigs[idx].maxAllowedPositions > 0)
ENUM_X_POSITION_TYPES mType = IsLong(signal.type) {
? X_POSITION_TYPE_LONG //
: X_POSITION_TYPE_SHORT; XPosition positions[];
int positionsCount = trader.GetPositions( ENUM_X_POSITION_TYPES mType = IsLong(signal.type)
positions, ? X_POSITION_TYPE_LONG
symbolTradeConfigs[idx].symbol, : X_POSITION_TYPE_SHORT;
signal.provider, int positionsCount = trader.GetPositions(
symbolTradeConfigs[idx].period, positions,
mType, symbolTradeConfigs[idx].symbol,
true, // Filter By Magic ... NULL, // All Providers ...
true // Force Clean ... symbolTradeConfigs[idx].period,
); mType,
true, // Filter By Magic ...
true // Force Clean ...
);
result = !IsValidSize(positionsCount) ||
(IsValidSize(positionsCount) &&
positionsCount < symbolTradeConfigs[idx].maxAllowedPositions);
//
// Cleanup Resources ...
SpecifiedClean(positions);
}
} }
// //
@@ -2151,6 +2158,7 @@ class XCTradeManager : public XCBase
// //
// Check Initialization ... // Check Initialization ...
bool has = iConfig.Init( bool has = iConfig.Init(
"Default",
_Symbol, _Symbol,
_Period // _Period //
); );
@@ -2264,8 +2272,7 @@ class XCTradeManager : public XCBase
// //
int FindSymbolConfigurationIndex( int FindSymbolConfigurationIndex(
string symbol, string symbol,
ENUM_TIMEFRAMES period, ENUM_TIMEFRAMES period //
string name //
) )
{ {
// //
@@ -2274,7 +2281,6 @@ class XCTradeManager : public XCBase
// //
// Validate Args ... // Validate Args ...
if ( if (
!IsSpecifiedValid(name) ||
!IsSpecifiedValid(symbol) || !IsSpecifiedValid(symbol) ||
!IsSpecifiedValid(period) || !IsSpecifiedValid(period) ||
!HasChild(symbolTradeConfigs)) !HasChild(symbolTradeConfigs))
@@ -2287,8 +2293,7 @@ class XCTradeManager : public XCBase
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
// //
if (symbolTradeConfigs[i].name == name && if (symbolTradeConfigs[i].symbol == symbol &&
symbolTradeConfigs[i].symbol == symbol &&
symbolTradeConfigs[i].period == period) symbolTradeConfigs[i].period == period)
{ {
// //
+1 -2
View File
@@ -3023,7 +3023,7 @@ struct XSymbolTradeConfig
_period = NormalizePeriod(_period); _period = NormalizePeriod(_period);
// //
name = name; name = _name;
symbol = _symbol; symbol = _symbol;
period = _period; period = _period;
maxAllowedSpread = _maxAllowedSpread; maxAllowedSpread = _maxAllowedSpread;
@@ -3772,7 +3772,6 @@ typedef void (*TOnSignal)(XSignal &signal);
// //
typedef bool (*TCanAnalyse)( typedef bool (*TCanAnalyse)(
string name,
string _symbol, string _symbol,
ENUM_TIMEFRAMES _period, ENUM_TIMEFRAMES _period,
datetime _time // datetime _time //
+30 -32
View File
@@ -56,42 +56,40 @@ class XCXFIMAExpret : public XCBaseExpert
// //
// Instantiate Signaller ... // Instantiate Signaller ...
if (symbolConfig.name == "XFIMA1")
//
// XFIMA Inputs ...
//
XFIMAInputs fimaInputs;
fimaInputs.Default();
fimaInputs.Hide();
//
// Instantiate Signaller Class ...
XCXFIMAStrategy1Signaller *fima1Signaller = new XCXFIMAStrategy1Signaller(
symbolConfig.symbol,
symbolConfig.period,
fimaInputs,
false // Process All Ticks ...
);
if (!fima1Signaller.IsValid())
{ {
// //
// XFIMA Inputs ... fima1Signaller.Destroy();
delete fima1Signaller;
//
XFIMAInputs fimaInputs;
fimaInputs.Default();
fimaInputs.Hide();
//
// Instantiate Signaller Class ...
XCXFIMAStrategy1Signaller *fima1Signaller = new XCXFIMAStrategy1Signaller(
symbolConfig.symbol,
symbolConfig.period,
fimaInputs,
false // Process All Ticks ...
);
if (!fima1Signaller.IsValid())
{
//
fima1Signaller.Destroy();
delete fima1Signaller;
ZeroMemory(fima1Signaller);
return;
}
//
// Register Signaller ...
RegisterSignaller((XCBaseSignaller *)fima1Signaller);
//
// Cleanup Resources ...
fimaInputs.Clean();
ZeroMemory(fima1Signaller); ZeroMemory(fima1Signaller);
return;
} }
//
// Register Signaller ...
RegisterSignaller((XCBaseSignaller *)fima1Signaller);
//
// Cleanup Resources ...
fimaInputs.Clean();
ZeroMemory(fima1Signaller);
} }
/** /**