MQL5Book/Scripts/p4/ConversionEnum.mq5
super.admin 1c8e83ce31 convert
2025-05-30 16:09:41 +02:00

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
*/
}
//+------------------------------------------------------------------+