MQL5Book/Include/CalendarDefines.mqh

109 lines
4.6 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:09:41 +02:00
//+------------------------------------------------------------------+
//| CalendarDefines.mqh |
//| Copyright 2022, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#include "IS.mqh"
#define DAY_LONG (60 * 60 * 24)
#define WEEK_LONG (DAY_LONG * 7)
#define MONTH_LONG (DAY_LONG * 30)
#define QUARTER_LONG (MONTH_LONG * 3)
#define YEAR_LONG (MONTH_LONG * 12)
enum ENUM_CALENDAR_SCOPE
{
SCOPE_DAY = DAY_LONG, // Day
SCOPE_WEEK = WEEK_LONG, // Week
SCOPE_MONTH = MONTH_LONG, // Month
SCOPE_QUARTER = QUARTER_LONG, // Quarter
SCOPE_YEAR = YEAR_LONG, // Year
};
enum ENUM_CALENDAR_HAS_VALUE
{
HAS_ANY, // Any (unimportant)
HAS_SET, // Set
HAS_NOT, // Not Set
};
enum ENUM_CALENDAR_PROPERTY
{ // +/- means filtering support by corresponding field
CALENDAR_PROPERTY_COUNTRY_ID, // -ulong
CALENDAR_PROPERTY_COUNTRY_NAME, // -string
CALENDAR_PROPERTY_COUNTRY_CODE, // +string (2 chars)
CALENDAR_PROPERTY_COUNTRY_CURRENCY, // +string (3 chars)
CALENDAR_PROPERTY_COUNTRY_GLYPH, // -string (1 char)
CALENDAR_PROPERTY_COUNTRY_URL, // -string
CALENDAR_PROPERTY_EVENT_ID, // +ulong (kind)
CALENDAR_PROPERTY_EVENT_TYPE, // +ENUM_CALENDAR_EVENT_TYPE
CALENDAR_PROPERTY_EVENT_SECTOR, // +ENUM_CALENDAR_EVENT_SECTOR
CALENDAR_PROPERTY_EVENT_FREQUENCY, // +ENUM_CALENDAR_EVENT_FREQUENCY
CALENDAR_PROPERTY_EVENT_TIMEMODE, // +ENUM_CALENDAR_EVENT_TIMEMODE
CALENDAR_PROPERTY_EVENT_UNIT, // +ENUM_CALENDAR_EVENT_UNIT
CALENDAR_PROPERTY_EVENT_IMPORTANCE, // +ENUM_CALENDAR_EVENT_IMPORTANCE
CALENDAR_PROPERTY_EVENT_MULTIPLIER, // +ENUM_CALENDAR_EVENT_MULTIPLIER
CALENDAR_PROPERTY_EVENT_DIGITS, // -uint
CALENDAR_PROPERTY_EVENT_SOURCE, // +string (URL)
CALENDAR_PROPERTY_EVENT_CODE, // -string
CALENDAR_PROPERTY_EVENT_NAME, // +string (4+ chars or wildcards '*')
CALENDAR_PROPERTY_RECORD_ID, // -ulong
CALENDAR_PROPERTY_RECORD_TIME, // +datetime
CALENDAR_PROPERTY_RECORD_PERIOD, // +datetime (as long)
CALENDAR_PROPERTY_RECORD_REVISION, // +int
CALENDAR_PROPERTY_RECORD_ACTUAL, // +long
CALENDAR_PROPERTY_RECORD_PREVIOUS, // +long
CALENDAR_PROPERTY_RECORD_REVISED, // +long
CALENDAR_PROPERTY_RECORD_FORECAST, // +long
CALENDAR_PROPERTY_RECORD_IMPACT, // +ENUM_CALENDAR_EVENT_IMPACT
CALENDAR_PROPERTY_RECORD_PREVISED, // non-standard (previous or revised if exist)
CALENDAR_PROPERTY_CHANGE_ID, // -ulong (reserved)
};
//+------------------------------------------------------------------+
/*
PRB: all standard ENUMs do not have an option for ALL/ANY element,
so choosing an element in UI is obligatory (which often contradicts to requirements),
but definition of equivalent custom ENUMs will require to typecast (may be unpractical)
*/
enum ENUM_CALENDAR_EVENT_TYPE_EXT
{
TYPE_EVENT = CALENDAR_TYPE_EVENT, // Event
TYPE_INDICATOR = CALENDAR_TYPE_INDICATOR, // Indicator
TYPE_HOLIDAY = CALENDAR_TYPE_HOLIDAY, // Holiday
TYPE_ANY // Any (unimportant)
};
enum ENUM_CALENDAR_EVENT_SECTOR_EXT
{
SECTOR_NONE = CALENDAR_SECTOR_NONE, // None
SECTOR_MARKET = CALENDAR_SECTOR_MARKET, // Market
SECTOR_GDP = CALENDAR_SECTOR_GDP, // GDP
SECTOR_JOBS = CALENDAR_SECTOR_JOBS, // Jobs
SECTOR_PRICES = CALENDAR_SECTOR_PRICES, // Prices
SECTOR_MONEY = CALENDAR_SECTOR_MONEY, // Money
SECTOR_TRADE = CALENDAR_SECTOR_TRADE, // Trade
SECTOR_GOVERNMENT = CALENDAR_SECTOR_GOVERNMENT, // Government
SECTOR_BUSINESS = CALENDAR_SECTOR_BUSINESS, // Bussiness
SECTOR_CONSUMER = CALENDAR_SECTOR_CONSUMER, // Consumer
SECTOR_HOUSING = CALENDAR_SECTOR_HOUSING, // Housing
SECTOR_TAXES = CALENDAR_SECTOR_TAXES, // Taxes
SECTOR_HOLIDAYS = CALENDAR_SECTOR_HOLIDAYS, // Holidays
SECTOR_ANY // Any (unimportant)
};
enum ENUM_CALENDAR_EVENT_IMPORTANCE_EXT
{
IMPORTANCE_NONE = CALENDAR_IMPORTANCE_NONE, // None
IMPORTANCE_LOW = CALENDAR_IMPORTANCE_LOW, // Low
IMPORTANCE_MODERATE = CALENDAR_IMPORTANCE_MODERATE, // Moderate
IMPORTANCE_HIGH = CALENDAR_IMPORTANCE_HIGH, // High
IMPORTANCE_ANY // Any (unimportant)
};
//+------------------------------------------------------------------+