forked from rosh/MQL5Book
46 lines
1.6 KiB
MQL5
46 lines
1.6 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| ConversionEnum.mq5 |
|
|
//| Copyright 2021, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
|
|
#define PRT(A) Print(#A, "=", (A))
|
|
|
|
#include "..\..\Include\EnumToArray.mqh"
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Helper function to get enum elements into array |
|
|
//+------------------------------------------------------------------+
|
|
template<typename E>
|
|
void process(E a)
|
|
{
|
|
int result[];
|
|
int n = EnumToArray(a, result, 0, USHORT_MAX);
|
|
Print(typename(E), " Count=", n);
|
|
for(int i = 0; i < n; i++)
|
|
{
|
|
Print(i, " ", EnumToString((E)result[i]), "=", result[i]);
|
|
}
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Script program start function |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
PRT(EnumToString(PRICE_CLOSE)); // PRICE_CLOSE
|
|
PRT(EnumToString((ENUM_APPLIED_PRICE)10)); // ENUM_APPLIED_PRICE::10
|
|
|
|
process((ENUM_APPLIED_PRICE)0);
|
|
/* will ouput:
|
|
ENUM_APPLIED_PRICE Count=7
|
|
0 PRICE_CLOSE=1
|
|
1 PRICE_OPEN=2
|
|
2 PRICE_HIGH=3
|
|
3 PRICE_LOW=4
|
|
4 PRICE_MEDIAN=5
|
|
5 PRICE_TYPICAL=6
|
|
6 PRICE_WEIGHTED=7
|
|
*/
|
|
}
|
|
//+------------------------------------------------------------------+
|