test x5 provider reading Buffers correctly and also CanIgnoreProcess works properly ...
This commit is contained in:
@@ -968,7 +968,7 @@ public:
|
||||
|
||||
//
|
||||
// Check Spread is Ok for Executing Specific Signal ...
|
||||
bool CheckSpreadForSignalExecution(XSignal &signal)
|
||||
bool CheckSpreadForSignalExecution(XSignal &mSignal)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
@@ -983,7 +983,7 @@ public:
|
||||
{
|
||||
//
|
||||
// Retrieve Signal Spread ...
|
||||
double spread = signal.GetSpread();
|
||||
double spread = mSignal.GetSpread();
|
||||
result = spread <= mMaxAllowedSpread;
|
||||
}
|
||||
|
||||
@@ -994,7 +994,7 @@ public:
|
||||
//
|
||||
// Check Account Policy ...
|
||||
bool CheckAccountPolicy(
|
||||
XSignal &signal, // For Executing Signal
|
||||
XSignal &mSignal, // For Executing Signal
|
||||
ENUM_X_SIGNAL_EXECUTION_RESULT &state // State Holder
|
||||
)
|
||||
{
|
||||
@@ -1023,7 +1023,7 @@ public:
|
||||
|
||||
//
|
||||
// Check Spread for Trade ...
|
||||
result = CheckSpreadForSignalExecution(signal);
|
||||
result = CheckSpreadForSignalExecution(mSignal);
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
@@ -1078,7 +1078,7 @@ public:
|
||||
//
|
||||
// Execute a Signal ...
|
||||
bool ExecuteSignal(
|
||||
XSignal &signal, // Signal
|
||||
XSignal &mSignal, // Signal
|
||||
ENUM_X_SIGNAL_EXECUTION_RESULT &state, // Result
|
||||
ENUM_ORDER_TYPE_TIME lifetime = ORDER_TIME_GTC, // Order LifeTime
|
||||
datetime expiration = NULL, // order expiration time
|
||||
@@ -1091,25 +1091,25 @@ public:
|
||||
|
||||
//
|
||||
double currentEntry = GetEntry(
|
||||
signal.symbol,
|
||||
signal.type
|
||||
mSignal.symbol,
|
||||
mSignal.type
|
||||
//
|
||||
);
|
||||
bool isLong = IsLong(signal.type);
|
||||
bool isLong = IsLong(mSignal.type);
|
||||
|
||||
//
|
||||
// Select SL and TP ...
|
||||
|
||||
//
|
||||
double selectedSL = 0;
|
||||
signal.RegularSL(selectedSL);
|
||||
mSignal.RegularSL(selectedSL);
|
||||
|
||||
//
|
||||
double selectedTP = 0;
|
||||
signal.RegularTP(selectedTP);
|
||||
mSignal.RegularTP(selectedTP);
|
||||
|
||||
//
|
||||
if (!signal.IsValid())
|
||||
if (!mSignal.IsValid())
|
||||
{
|
||||
//
|
||||
state = X_SIGNAL_EXECUTION_FAILED_INVALID_PARAMS;
|
||||
@@ -1118,13 +1118,13 @@ public:
|
||||
|
||||
//
|
||||
// Handle Market Execution ...
|
||||
if (signal.mode == X_ORDER_MODE_MARKET)
|
||||
if (mSignal.mode == X_ORDER_MODE_MARKET)
|
||||
{
|
||||
//
|
||||
// Do Apply Policies here ...
|
||||
bool hasPolicy = !checkPolicies
|
||||
? true
|
||||
: CheckAccountPolicy(signal, state);
|
||||
: CheckAccountPolicy(mSignal, state);
|
||||
if (!hasPolicy)
|
||||
{
|
||||
result = false;
|
||||
@@ -1136,13 +1136,13 @@ public:
|
||||
{
|
||||
//
|
||||
result = Buy(
|
||||
signal.symbol,
|
||||
signal.period,
|
||||
signal.volume,
|
||||
signal.entry,
|
||||
mSignal.symbol,
|
||||
mSignal.period,
|
||||
mSignal.volume,
|
||||
mSignal.entry,
|
||||
selectedSL,
|
||||
selectedTP,
|
||||
signal.comment
|
||||
mSignal.comment
|
||||
//
|
||||
);
|
||||
}
|
||||
@@ -1150,13 +1150,13 @@ public:
|
||||
{
|
||||
//
|
||||
result = Sell(
|
||||
signal.symbol,
|
||||
signal.period,
|
||||
signal.volume,
|
||||
signal.entry,
|
||||
mSignal.symbol,
|
||||
mSignal.period,
|
||||
mSignal.volume,
|
||||
mSignal.entry,
|
||||
selectedSL,
|
||||
selectedTP,
|
||||
signal.comment
|
||||
mSignal.comment
|
||||
//
|
||||
);
|
||||
}
|
||||
@@ -1164,7 +1164,7 @@ public:
|
||||
}
|
||||
//
|
||||
// Handle Stop Execution ...
|
||||
else if (signal.mode == X_ORDER_MODE_STOP)
|
||||
else if (mSignal.mode == X_ORDER_MODE_STOP)
|
||||
{
|
||||
|
||||
//
|
||||
@@ -1173,8 +1173,8 @@ public:
|
||||
//
|
||||
// Check Price ...
|
||||
result = isLong
|
||||
? signal.entry > currentEntry
|
||||
: signal.entry < currentEntry;
|
||||
? mSignal.entry > currentEntry
|
||||
: mSignal.entry < currentEntry;
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
@@ -1188,15 +1188,15 @@ public:
|
||||
{
|
||||
//
|
||||
result = BuyStop(
|
||||
signal.symbol,
|
||||
signal.period,
|
||||
signal.volume,
|
||||
signal.entry,
|
||||
mSignal.symbol,
|
||||
mSignal.period,
|
||||
mSignal.volume,
|
||||
mSignal.entry,
|
||||
selectedSL,
|
||||
selectedTP,
|
||||
lifetime,
|
||||
expiration,
|
||||
signal.comment
|
||||
mSignal.comment
|
||||
//
|
||||
);
|
||||
}
|
||||
@@ -1204,22 +1204,22 @@ public:
|
||||
{
|
||||
//
|
||||
result = SellStop(
|
||||
signal.symbol,
|
||||
signal.period,
|
||||
signal.volume,
|
||||
signal.entry,
|
||||
mSignal.symbol,
|
||||
mSignal.period,
|
||||
mSignal.volume,
|
||||
mSignal.entry,
|
||||
selectedSL,
|
||||
selectedTP,
|
||||
lifetime,
|
||||
expiration,
|
||||
signal.comment
|
||||
mSignal.comment
|
||||
//
|
||||
);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Handle Limit Execution ...
|
||||
else if (signal.mode == X_ORDER_MODE_LIMIT)
|
||||
else if (mSignal.mode == X_ORDER_MODE_LIMIT)
|
||||
{
|
||||
//
|
||||
// Check Conditions ...
|
||||
@@ -1227,8 +1227,8 @@ public:
|
||||
//
|
||||
// Check Price ...
|
||||
result = isLong
|
||||
? signal.entry < currentEntry
|
||||
: signal.entry > currentEntry;
|
||||
? mSignal.entry < currentEntry
|
||||
: mSignal.entry > currentEntry;
|
||||
if (!result)
|
||||
{
|
||||
//
|
||||
@@ -1242,15 +1242,15 @@ public:
|
||||
{
|
||||
//
|
||||
result = BuyLimit(
|
||||
signal.symbol,
|
||||
signal.period,
|
||||
signal.volume,
|
||||
signal.entry,
|
||||
mSignal.symbol,
|
||||
mSignal.period,
|
||||
mSignal.volume,
|
||||
mSignal.entry,
|
||||
selectedSL,
|
||||
selectedTP,
|
||||
lifetime,
|
||||
expiration,
|
||||
signal.comment
|
||||
mSignal.comment
|
||||
//
|
||||
);
|
||||
}
|
||||
@@ -1258,15 +1258,15 @@ public:
|
||||
{
|
||||
//
|
||||
result = SellLimit(
|
||||
signal.symbol,
|
||||
signal.period,
|
||||
signal.volume,
|
||||
signal.entry,
|
||||
mSignal.symbol,
|
||||
mSignal.period,
|
||||
mSignal.volume,
|
||||
mSignal.entry,
|
||||
selectedSL,
|
||||
selectedTP,
|
||||
lifetime,
|
||||
expiration,
|
||||
signal.comment
|
||||
mSignal.comment
|
||||
//
|
||||
);
|
||||
}
|
||||
@@ -1281,7 +1281,7 @@ public:
|
||||
|
||||
//
|
||||
ulong ticket;
|
||||
if (signal.mode == X_ORDER_MODE_MARKET)
|
||||
if (mSignal.mode == X_ORDER_MODE_MARKET)
|
||||
{
|
||||
ticket = GetLastOpenPositionTicket();
|
||||
}
|
||||
@@ -1291,11 +1291,11 @@ public:
|
||||
}
|
||||
|
||||
//
|
||||
signal.positionId = ticket;
|
||||
mSignal.positionId = ticket;
|
||||
|
||||
//
|
||||
// Handle Store XPositionInfo ...
|
||||
if (signal.mode == X_ORDER_MODE_MARKET)
|
||||
if (mSignal.mode == X_ORDER_MODE_MARKET)
|
||||
{
|
||||
//
|
||||
// TODO: Implement this ...
|
||||
@@ -1303,7 +1303,7 @@ public:
|
||||
|
||||
//
|
||||
// Handle Executing Support Signals ...
|
||||
int supportsCount = ArraySize(signal.supports);
|
||||
int supportsCount = ArraySize(mSignal.supports);
|
||||
if (supportsCount > 0)
|
||||
{
|
||||
//
|
||||
@@ -1311,7 +1311,7 @@ public:
|
||||
for (int i = 0; i < supportsCount; i++)
|
||||
{
|
||||
//
|
||||
XSignal iSupport = signal.supports[i];
|
||||
XSignal iSupport = mSignal.supports[i];
|
||||
|
||||
//
|
||||
int supIndex = i + 1;
|
||||
|
||||
Reference in New Issue
Block a user