last works ...
This commit is contained in:
@@ -2781,8 +2781,12 @@ public:
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
string mConditionsStr = mConditions.GenerateSummary(true);
|
string mConditionsStr = mConditions.GenerateSummary(true);
|
||||||
|
|
||||||
|
//
|
||||||
|
string providerTypeStr = provider + "(" + (hasLong ? "Long" : "Short") + ")" + "\n";
|
||||||
|
mConditionsStr = providerTypeStr + "\n" + mConditionsStr;
|
||||||
mConditionsCollector.Add(mConditionsStr);
|
mConditionsCollector.Add(mConditionsStr);
|
||||||
Print("Conditions: " + "\n" + mConditionsStr);
|
Print(mConditionsStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -94956,6 +94960,59 @@ private:
|
|||||||
//
|
//
|
||||||
// Tools ...
|
// Tools ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Model Provider Descriptor ...
|
||||||
|
struct X5ProvierDescriptor
|
||||||
|
{
|
||||||
|
//
|
||||||
|
X5ProviderInputs inputs;
|
||||||
|
XSCX5Provider *provider;
|
||||||
|
|
||||||
|
//
|
||||||
|
XSignal signal;
|
||||||
|
X5MarketConditions conditions;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Tools ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cleanup ...
|
||||||
|
void Clean()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
signal.Clean();
|
||||||
|
conditions.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check Signal ...
|
||||||
|
bool HasSignal(int barIndex = 0)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = inputs.IsValid();
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Clear Signal and Conditions ...
|
||||||
|
Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
result = provider.HasSignal(
|
||||||
|
barIndex,
|
||||||
|
signal,
|
||||||
|
conditions);
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
void GetAllX5SignalProviders(ENUM_X5_SIGNAL_PROVIDERS &result[])
|
void GetAllX5SignalProviders(ENUM_X5_SIGNAL_PROVIDERS &result[])
|
||||||
{
|
{
|
||||||
@@ -94975,6 +95032,12 @@ void GetAllX5SignalProviders(ENUM_X5_SIGNAL_PROVIDERS &result[])
|
|||||||
Add(XCHMAMX, result);
|
Add(XCHMAMX, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
string ToString(ENUM_X5_SIGNAL_PROVIDERS value)
|
||||||
|
{
|
||||||
|
return EnumToString(value);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
ENUM_X5_SIGNAL_PROVIDERS ToX5SignalProvider(string content)
|
ENUM_X5_SIGNAL_PROVIDERS ToX5SignalProvider(string content)
|
||||||
{
|
{
|
||||||
|
|||||||
+156
-39
@@ -24,15 +24,13 @@
|
|||||||
|
|
||||||
//
|
//
|
||||||
#include "../Libraries/x-saherelm.log.lib.mq5"
|
#include "../Libraries/x-saherelm.log.lib.mq5"
|
||||||
#include "../Libraries/x-saherelm.draw.lib.mq5"
|
|
||||||
#include "../Libraries/x-saherelm.common.lib.mq5"
|
|
||||||
#include "../Classes/x-saherelm.xtrade.class.mq5"
|
|
||||||
#include "../Classes/x-saherelm.x5.provider.class.mq5"
|
#include "../Classes/x-saherelm.x5.provider.class.mq5"
|
||||||
|
|
||||||
//
|
//
|
||||||
// Inputs ...
|
// Inputs ...
|
||||||
long x5EAMagicNumber = 78692110; // Magic Number
|
long x5EAMagicNumber = 78692110; // Magic Number
|
||||||
int x5EASlippage = 10; // Slippgae
|
int x5EASlippage = 10; // Slippgae
|
||||||
|
string x5EASymbols = "EURUSDb,USDCHFb,USDJPYb,XAUUSDb";
|
||||||
|
|
||||||
//
|
//
|
||||||
double x5EAVolume = 0.01;
|
double x5EAVolume = 0.01;
|
||||||
@@ -48,12 +46,13 @@ MqlTick x5EATick;
|
|||||||
//
|
//
|
||||||
// X5Provider ...
|
// X5Provider ...
|
||||||
XSignal signal;
|
XSignal signal;
|
||||||
X5ProviderInputs x5Inputs;
|
|
||||||
XSCX5Provider *x5Provider;
|
//
|
||||||
X5MarketConditions conditions;
|
X5ProvierDescriptor mProviderDescriptors[];
|
||||||
|
|
||||||
//
|
//
|
||||||
// Event Handlers ...
|
// Event Handlers ...
|
||||||
|
|
||||||
//
|
//
|
||||||
// Initialization ...
|
// Initialization ...
|
||||||
int OnInit()
|
int OnInit()
|
||||||
@@ -79,42 +78,14 @@ int OnInit()
|
|||||||
|
|
||||||
//
|
//
|
||||||
logTag = ShortName;
|
logTag = ShortName;
|
||||||
drawPrefix = ShortName;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Set Default and Validate X5Provider Inputs ...
|
// Initial Providers ...
|
||||||
x5Inputs.Default();
|
if (!InitialProviders())
|
||||||
if (!x5Inputs.IsValid())
|
|
||||||
{
|
{
|
||||||
return INIT_PARAMETERS_INCORRECT;
|
return INIT_PARAMETERS_INCORRECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Init X5Provider Class ...
|
|
||||||
x5Provider = new XSCX5Provider(
|
|
||||||
x5EASymbol,
|
|
||||||
x5EAPeriod
|
|
||||||
//
|
|
||||||
);
|
|
||||||
if (!x5Provider.Init(x5Inputs))
|
|
||||||
{
|
|
||||||
return INIT_PARAMETERS_INCORRECT;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Enable Required Signallers and Types ...
|
|
||||||
x5Provider.SetSignalTypeState(
|
|
||||||
POSITION_TYPE_BUY,
|
|
||||||
true);
|
|
||||||
x5Provider.SetSignalTypeState(
|
|
||||||
POSITION_TYPE_SELL,
|
|
||||||
true);
|
|
||||||
|
|
||||||
//
|
|
||||||
ENUM_X5_SIGNAL_PROVIDERS providers[];
|
|
||||||
GetAllX5SignalProviders(providers);
|
|
||||||
x5Provider.SetSignalProviderStates(providers, true);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Init Succeed ...
|
// Init Succeed ...
|
||||||
return INIT_SUCCEEDED;
|
return INIT_SUCCEEDED;
|
||||||
@@ -152,9 +123,7 @@ void OnTick()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
signal.Clean();
|
ProcessProvidersTick();
|
||||||
conditions.Clear();
|
|
||||||
x5Provider.HasSignal(1, signal, conditions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -178,3 +147,151 @@ bool X5EAValidateInputs()
|
|||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Initialize Specific Providers ...
|
||||||
|
bool InitialProviders()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Here We Have to Initial 4 instance of X5Provider ...
|
||||||
|
// - EURUSD/M5;
|
||||||
|
// - USDCHF/M5;
|
||||||
|
// - USDJPY/M5;
|
||||||
|
// - XAUUSD/M5;
|
||||||
|
|
||||||
|
//
|
||||||
|
result = IsValid(x5EASymbols);
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
string symbols[];
|
||||||
|
int symbolsCount = SplitContent(
|
||||||
|
symbols,
|
||||||
|
x5EASymbols);
|
||||||
|
result = symbolsCount > 0;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Define Signallers ...
|
||||||
|
ENUM_X5_SIGNAL_PROVIDERS signallers[];
|
||||||
|
GetAllX5SignalProviders(signallers);
|
||||||
|
|
||||||
|
//
|
||||||
|
for (int i = 0; i < symbolsCount; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Define Structure ...
|
||||||
|
X5ProvierDescriptor iDescriptor;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Set Inputs to Default ...
|
||||||
|
iDescriptor.inputs.Default();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Validate Inputs ...
|
||||||
|
bool isInputsValid = iDescriptor.inputs.IsValid();
|
||||||
|
if (!isInputsValid)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Initialize Provider Class ...
|
||||||
|
iDescriptor.provider = new XSCX5Provider(
|
||||||
|
symbols[i],
|
||||||
|
PERIOD_M5 //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Enable Required Signallers and Types ...
|
||||||
|
// TODO: add Support for TYPE Specifications ...
|
||||||
|
iDescriptor.provider
|
||||||
|
.SetSignalTypeState(
|
||||||
|
POSITION_TYPE_BUY,
|
||||||
|
true //
|
||||||
|
);
|
||||||
|
iDescriptor.provider
|
||||||
|
.SetSignalTypeState(
|
||||||
|
POSITION_TYPE_SELL,
|
||||||
|
true //
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Enable Required Signallers ...
|
||||||
|
iDescriptor.provider
|
||||||
|
.SetSignalProviderStates(signallers, true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Try to Initialize Provider Instance ...
|
||||||
|
bool isInitialized = iDescriptor.provider
|
||||||
|
.Init(iDescriptor.inputs);
|
||||||
|
if (!isInitialized)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Add Prepared Descriptor to Collection ...
|
||||||
|
AddRef(
|
||||||
|
iDescriptor,
|
||||||
|
mProviderDescriptors
|
||||||
|
//
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Validate Result ...
|
||||||
|
result = ArraySize(mProviderDescriptors) == symbolsCount;
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check Providers Signals ...
|
||||||
|
void ProcessProvidersTick()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Here We Have to Check 4 instance of X5Provider for Signals ...
|
||||||
|
// - EURUSD/M5;
|
||||||
|
// - USDCHF/M5;
|
||||||
|
// - USDJPY/M5;
|
||||||
|
// - XAUUSD/M5;
|
||||||
|
|
||||||
|
//
|
||||||
|
int descriptorsCount = ArraySize(mProviderDescriptors);
|
||||||
|
if (descriptorsCount <= 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
int signalsCount = 0;
|
||||||
|
for (int i = 0; i < descriptorsCount; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
X5ProvierDescriptor iDescriptor = mProviderDescriptors[i];
|
||||||
|
|
||||||
|
//
|
||||||
|
bool iHasSignal = iDescriptor.HasSignal(0);
|
||||||
|
|
||||||
|
//
|
||||||
|
if (iHasSignal)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
signalsCount++;
|
||||||
|
Print("Signal: " + iDescriptor.provider.GetSymbol() + ", " + ToString(iDescriptor.provider.GetPeriod()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
@@ -36,12 +36,13 @@ struct XCCInputs
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Chart Style ...
|
// Chart Style ...
|
||||||
color upColor; // Up Color
|
ENUM_CHART_MODE mode; // Mode
|
||||||
color downColor; // Down Color
|
color upColor; // Up Color
|
||||||
color lineColor; // Line mode and Doji candlestick Color
|
color downColor; // Down Color
|
||||||
color bearishColor; // Bullish Color
|
color lineColor; // Line mode and Doji candlestick Color
|
||||||
color bullishColor; // Bearish Color
|
color bearishColor; // Bullish Color
|
||||||
color volumesColor; // Volumes Color
|
color bullishColor; // Bearish Color
|
||||||
|
color volumesColor; // Volumes Color
|
||||||
|
|
||||||
//
|
//
|
||||||
// Presentation ...
|
// Presentation ...
|
||||||
@@ -62,6 +63,9 @@ struct XCCInputs
|
|||||||
// Clean ...
|
// Clean ...
|
||||||
void Clean()
|
void Clean()
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
mode = CHART_CANDLES;
|
||||||
|
|
||||||
//
|
//
|
||||||
upColor = CLR_NONE;
|
upColor = CLR_NONE;
|
||||||
downColor = CLR_NONE;
|
downColor = CLR_NONE;
|
||||||
@@ -78,6 +82,9 @@ struct XCCInputs
|
|||||||
// Default ...
|
// Default ...
|
||||||
void Default()
|
void Default()
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
mode = CHART_CANDLES;
|
||||||
|
|
||||||
//
|
//
|
||||||
upColor = clrLime;
|
upColor = clrLime;
|
||||||
downColor = clrRed;
|
downColor = clrRed;
|
||||||
@@ -147,7 +154,7 @@ public:
|
|||||||
bool Init(
|
bool Init(
|
||||||
string symbol, // Trading Symbol
|
string symbol, // Trading Symbol
|
||||||
ENUM_TIMEFRAMES period, // Trading Period
|
ENUM_TIMEFRAMES period, // Trading Period
|
||||||
XCCInputs &inputs // Inputs
|
XCCInputs &inputs // Inputs
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -177,6 +184,7 @@ public:
|
|||||||
//
|
//
|
||||||
// Chart Style ...
|
// Chart Style ...
|
||||||
"",
|
"",
|
||||||
|
mInputs.mode, // Mode
|
||||||
mInputs.upColor, // Up Color
|
mInputs.upColor, // Up Color
|
||||||
mInputs.downColor, // Down Color
|
mInputs.downColor, // Down Color
|
||||||
mInputs.lineColor, // Line mode and Doji candlestick Color
|
mInputs.lineColor, // Line mode and Doji candlestick Color
|
||||||
|
|||||||
@@ -106,12 +106,13 @@ struct XChartStyle
|
|||||||
|
|
||||||
//
|
//
|
||||||
input group "Chart Style";
|
input group "Chart Style";
|
||||||
input color upColor = clrLime; // Up Color
|
input ENUM_CHART_MODE mode = CHART_CANDLES; // Mode
|
||||||
input color downColor = clrRed; // Down Color
|
input color upColor = clrLime; // Up Color
|
||||||
input color lineColor = clrLime; // Line mode and Doji candlestick Color
|
input color downColor = clrRed; // Down Color
|
||||||
input color bearishColor = clrRed; // Bullish Color
|
input color lineColor = clrLime; // Line mode and Doji candlestick Color
|
||||||
input color bullishColor = clrLime; // Bearish Color
|
input color bearishColor = clrRed; // Bullish Color
|
||||||
input color volumesColor = clrGreen; // Volumes Color
|
input color bullishColor = clrLime; // Bearish Color
|
||||||
|
input color volumesColor = clrGreen; // Volumes Color
|
||||||
|
|
||||||
//
|
//
|
||||||
input group "Presentation";
|
input group "Presentation";
|
||||||
@@ -412,6 +413,7 @@ void ReadChartStyle()
|
|||||||
chartStyle.volumesColor = (color)ChartGetInteger(chartId, CHART_COLOR_VOLUME);
|
chartStyle.volumesColor = (color)ChartGetInteger(chartId, CHART_COLOR_VOLUME);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
chartStyle.mode = mode;
|
||||||
chartStyle.upColor = upColor;
|
chartStyle.upColor = upColor;
|
||||||
chartStyle.downColor = downColor;
|
chartStyle.downColor = downColor;
|
||||||
chartStyle.lineColor = lineColor;
|
chartStyle.lineColor = lineColor;
|
||||||
|
|||||||
@@ -1022,7 +1022,7 @@ struct XOHCL
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
ENUM_SERIESMODE mode = swing == X_SWING_HIGH
|
ENUM_SERIESMODE mMode = swing == X_SWING_HIGH
|
||||||
? MODE_HIGH
|
? MODE_HIGH
|
||||||
: MODE_LOW;
|
: MODE_LOW;
|
||||||
|
|
||||||
@@ -1031,13 +1031,13 @@ struct XOHCL
|
|||||||
? iHighest(
|
? iHighest(
|
||||||
symbol,
|
symbol,
|
||||||
period,
|
period,
|
||||||
mode,
|
mMode,
|
||||||
mLength,
|
mLength,
|
||||||
from)
|
from)
|
||||||
: iLowest(
|
: iLowest(
|
||||||
symbol,
|
symbol,
|
||||||
period,
|
period,
|
||||||
mode,
|
mMode,
|
||||||
mLength,
|
mLength,
|
||||||
from);
|
from);
|
||||||
|
|
||||||
@@ -1049,7 +1049,7 @@ struct XOHCL
|
|||||||
// Find Lowest Bar Index ...
|
// Find Lowest Bar Index ...
|
||||||
int FindHighestIndex(
|
int FindHighestIndex(
|
||||||
int mLength, // Loopback ...
|
int mLength, // Loopback ...
|
||||||
ENUM_SERIESMODE mode // Calculation mode
|
ENUM_SERIESMODE mMode // Calculation mode
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -1071,7 +1071,7 @@ struct XOHCL
|
|||||||
result = iHighest(
|
result = iHighest(
|
||||||
symbol,
|
symbol,
|
||||||
period,
|
period,
|
||||||
mode,
|
mMode,
|
||||||
mLength,
|
mLength,
|
||||||
Index());
|
Index());
|
||||||
|
|
||||||
@@ -1083,7 +1083,7 @@ struct XOHCL
|
|||||||
// Find Lowest ...
|
// Find Lowest ...
|
||||||
double FindHighest(
|
double FindHighest(
|
||||||
int mLength, // Loopback ...
|
int mLength, // Loopback ...
|
||||||
ENUM_SERIESMODE mode // Calculation mode
|
ENUM_SERIESMODE mMode // Calculation mode
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -1098,7 +1098,7 @@ struct XOHCL
|
|||||||
//
|
//
|
||||||
int idx = FindHighestIndex(
|
int idx = FindHighestIndex(
|
||||||
mLength,
|
mLength,
|
||||||
mode);
|
mMode);
|
||||||
if (idx <= -1)
|
if (idx <= -1)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
@@ -1118,7 +1118,7 @@ struct XOHCL
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
result = iH.GetPrice(mode);
|
result = iH.GetPrice(mMode);
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
@@ -1128,7 +1128,7 @@ struct XOHCL
|
|||||||
// Find Lowest Bar Index ...
|
// Find Lowest Bar Index ...
|
||||||
int FindLowestIndex(
|
int FindLowestIndex(
|
||||||
int mLength, // Loopback ...
|
int mLength, // Loopback ...
|
||||||
ENUM_SERIESMODE mode // Calculation mode
|
ENUM_SERIESMODE mMode // Calculation mode
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -1150,7 +1150,7 @@ struct XOHCL
|
|||||||
result = iLowest(
|
result = iLowest(
|
||||||
symbol,
|
symbol,
|
||||||
period,
|
period,
|
||||||
mode,
|
mMode,
|
||||||
mLength,
|
mLength,
|
||||||
Index());
|
Index());
|
||||||
|
|
||||||
@@ -1162,7 +1162,7 @@ struct XOHCL
|
|||||||
// Find Lowest ...
|
// Find Lowest ...
|
||||||
double FindLowest(
|
double FindLowest(
|
||||||
int mLength, // Loopback ...
|
int mLength, // Loopback ...
|
||||||
ENUM_SERIESMODE mode // Calculation mode
|
ENUM_SERIESMODE mMode // Calculation mode
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@@ -1177,7 +1177,7 @@ struct XOHCL
|
|||||||
//
|
//
|
||||||
int idx = FindLowestIndex(
|
int idx = FindLowestIndex(
|
||||||
mLength,
|
mLength,
|
||||||
mode);
|
mMode);
|
||||||
if (idx <= -1)
|
if (idx <= -1)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
@@ -1197,7 +1197,7 @@ struct XOHCL
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
result = iL.GetPrice(mode);
|
result = iL.GetPrice(mMode);
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
@@ -3069,14 +3069,14 @@ double PointToPrice(
|
|||||||
//
|
//
|
||||||
// Converts Series Mode to XPRICE ...
|
// Converts Series Mode to XPRICE ...
|
||||||
ENUM_X_PRICE ToPrice(
|
ENUM_X_PRICE ToPrice(
|
||||||
ENUM_SERIESMODE mode // Specified Series Mode ...
|
ENUM_SERIESMODE mMode // Specified Series Mode ...
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
ENUM_X_PRICE result = X_PRICE_CLOSE;
|
ENUM_X_PRICE result = X_PRICE_CLOSE;
|
||||||
|
|
||||||
//
|
//
|
||||||
switch (mode)
|
switch (mMode)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// High ...
|
// High ...
|
||||||
|
|||||||
Reference in New Issue
Block a user