all prepared ...
This commit is contained in:
@@ -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 //
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -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 //
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user