MQLplus/lib_mqlplus/mql4_compatibility/lib_mql4_InfoInteger.mqh

403 lines
13 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:09:52 +02:00
#ifndef LIB_MQLPLUS_MQL4_COMPATIBILITY_INFOINTEGER_MQH_INCLUDED
#define LIB_MQLPLUS_MQL4_COMPATIBILITY_INFOINTEGER_MQH_INCLUDED
#property version "1.0";
#property strict
/**********************************************************************************
* Copyright (C) 2010-2022 Dominik Egert <info@freie-netze.de>
*
* This file is the MQL4 backward compatibility include file.
*
* MQLplus, including this file may not be copied and/or distributed
* without explecit permit by the author.
* Author Dominik Egert / Freie Netze UG.
**********************************************************************************
*
* Version: 1.0
* State: development
*
* File information
* ================
*
*
*
*/
#ifdef DBG_MSG_TRACE_FILE_LOADER
DBG_MSG_TRACE_FILE_LOADER;
#endif
//*********************************************************************************************************************************************************/
//
// BEGIN MQL4 compatibility additions
//
///////////////////////////////////////////////////////////////////////////
//
// Add required MQL5 enumerations
//
enum MT5_ENUM_MQL_INFO_INTEGER
{
MQL_HANDLES_USED,
MT5_MQL_MEMORY_LIMIT,
MT5_MQL_MEMORY_USED,
MT5_MQL_PROGRAM_TYPE,
MT5_MQL_DLLS_ALLOWED,
MT5_MQL_TRADE_ALLOWED,
MT5_MQL_SIGNALS_ALLOWED,
MT5_MQL_DEBUG,
MT5_MQL_PROFILER,
MT5_MQL_TESTER,
MT5_MQL_FORWARD,
MT5_MQL_OPTIMIZATION,
MT5_MQL_VISUAL_MODE,
MT5_MQL_FRAME_MODE,
MT5_MQL_LICENSE_TYPE
};
enum MT5_ENUM_TERMINAL_INFO_INTEGER
{
MT5_TERMINAL_BUILD,
MT5_TERMINAL_COMMUNITY_ACCOUNT,
MT5_TERMINAL_COMMUNITY_CONNECTION,
MT5_TERMINAL_CONNECTED,
MT5_TERMINAL_DLLS_ALLOWED,
MT5_TERMINAL_TRADE_ALLOWED,
MT5_TERMINAL_EMAIL_ENABLED,
MT5_TERMINAL_FTP_ENABLED,
MT5_TERMINAL_NOTIFICATIONS_ENABLED,
MT5_TERMINAL_MAXBARS,
MT5_TERMINAL_MQID,
MT5_TERMINAL_CODEPAGE,
MT5_TERMINAL_CPU_CORES,
MT5_TERMINAL_DISK_SPACE,
MT5_TERMINAL_MEMORY_PHYSICAL,
MT5_TERMINAL_MEMORY_TOTAL,
MT5_TERMINAL_MEMORY_AVAILABLE,
MT5_TERMINAL_MEMORY_USED,
MT5_TERMINAL_X64,
MT5_TERMINAL_OPENCL_SUPPORT,
MT5_TERMINAL_SCREEN_DPI,
TERMINAL_SCREEN_LEFT,
TERMINAL_SCREEN_TOP,
TERMINAL_SCREEN_WIDTH,
TERMINAL_SCREEN_HEIGHT,
TERMINAL_LEFT,
TERMINAL_TOP,
TERMINAL_RIGHT,
TERMINAL_BOTTOM,
MT5_TERMINAL_PING_LAST,
MT5_TERMINAL_VPS
};
enum MT5_ENUM_ACCOUNT_INFO_INTEGER
{
MT5_ACCOUNT_LOGIN,
MT5_ACCOUNT_TRADE_MODE,
MT5_ACCOUNT_LEVERAGE,
MT5_ACCOUNT_LIMIT_ORDERS,
MT5_ACCOUNT_MARGIN_SO_MODE,
MT5_ACCOUNT_TRADE_ALLOWED,
MT5_ACCOUNT_TRADE_EXPERT,
ACCOUNT_MARGIN_MODE,
ACCOUNT_CURRENCY_DIGITS,
ACCOUNT_FIFO_CLOSE,
ACCOUNT_HEDGE_ALLOWED
};
enum ENUM_ACCOUNT_MARGIN_MODE
{
ACCOUNT_MARGIN_MODE_RETAIL_NETTING,
ACCOUNT_MARGIN_MODE_EXCHANGE,
ACCOUNT_MARGIN_MODE_RETAIL_HEDGING
};
//
/////////////////////////////////////////////////////////////////////////////////////////////////////
//+------------------------------------------------------------------+
//| MQL4: MQL5-compatible MQLInfoInteger() |
//+------------------------------------------------------------------+
const long mt5_AccountInfoInteger(const int property_id)
{
switch(property_id)
{
case MT5_ACCOUNT_LOGIN:
return(AccountInfoInteger(ACCOUNT_LOGIN));
case MT5_ACCOUNT_TRADE_MODE:
return(AccountInfoInteger(ACCOUNT_TRADE_MODE));
case MT5_ACCOUNT_LEVERAGE:
return(AccountInfoInteger(ACCOUNT_LEVERAGE));
case MT5_ACCOUNT_LIMIT_ORDERS:
return(AccountInfoInteger(ACCOUNT_LIMIT_ORDERS));
case MT5_ACCOUNT_MARGIN_SO_MODE:
return(AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE));
case MT5_ACCOUNT_TRADE_ALLOWED:
return(AccountInfoInteger(ACCOUNT_TRADE_ALLOWED));
case MT5_ACCOUNT_TRADE_EXPERT:
return(AccountInfoInteger(ACCOUNT_TRADE_EXPERT));
case ACCOUNT_MARGIN_MODE:
return(ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
case ACCOUNT_CURRENCY_DIGITS:
return(2);
case ACCOUNT_FIFO_CLOSE:
#ifdef _DEBUG
printf("Feature not supported in MQL4: %s; %s", __FUNCTION__, EnumToString(property_id));
#else
break;
#endif
case ACCOUNT_HEDGE_ALLOWED:
return(1);
}
// Return
return(NULL);
}
#define AccountInfoInteger mt5_AccountInfoInteger
#define ENUM_ACCOUNT_INFO_INTEGER MT5_ENUM_ACCOUNT_INFO_INTEGER
#define ACCOUNT_LOGIN MT5_ACCOUNT_LOGIN
#define ACCOUNT_TRADE_MODE MT5_ACCOUNT_TRADE_MODE
#define ACCOUNT_LEVERAGE MT5_ACCOUNT_LEVERAGE
#define ACCOUNT_LIMIT_ORDERS MT5_ACCOUNT_LIMIT_ORDERS
#define ACCOUNT_MARGIN_SO_MODE MT5_ACCOUNT_MARGIN_SO_MODE
#define ACCOUNT_TRADE_ALLOWED MT5_ACCOUNT_TRADE_ALLOWED
#define ACCOUNT_TRADE_EXPERT MT5_ACCOUNT_TRADE_EXPERT
//+------------------------------------------------------------------+
//| MQL4: MQL5-compatible MQLInfoInteger() |
//+------------------------------------------------------------------+
const int mt5_MQLInfoInteger(const int property_id)
{
switch(property_id)
{
case MT5_MQL_PROGRAM_TYPE:
return(MQLInfoInteger(MQL_PROGRAM_TYPE));
case MT5_MQL_DLLS_ALLOWED:
return(MQLInfoInteger(MQL_DLLS_ALLOWED));
case MT5_MQL_TRADE_ALLOWED:
return(MQLInfoInteger(MQL_TRADE_ALLOWED));
case MT5_MQL_SIGNALS_ALLOWED:
return(MQLInfoInteger(MQL_SIGNALS_ALLOWED));
case MT5_MQL_DEBUG:
return(MQLInfoInteger(MQL_DEBUG));
case MT5_MQL_PROFILER:
return(MQLInfoInteger(MQL_PROFILER));
case MT5_MQL_TESTER:
return(MQLInfoInteger(MQL_TESTER));
case MT5_MQL_OPTIMIZATION:
return(MQLInfoInteger(MQL_OPTIMIZATION));
case MT5_MQL_VISUAL_MODE:
return(MQLInfoInteger(MQL_VISUAL_MODE));
case MT5_MQL_FRAME_MODE:
return(MQLInfoInteger(MQL_FRAME_MODE));
case MT5_MQL_LICENSE_TYPE:
return(MQLInfoInteger(MQL_LICENSE_TYPE));
case MT5_MQL_MEMORY_LIMIT:
return(TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE));
case MT5_MQL_MEMORY_USED:
return(TerminalInfoInteger(TERMINAL_MEMORY_USED));
case MT5_MQL_FORWARD:
return(MQLInfoInteger(MQL_FORWARD));
case MQL_HANDLES_USED:
#ifdef _DEBUG
printf("Feature not supported in MQL4: %s; %s", __FUNCTION__, EnumToString(property_id));
#else
break;
#endif
}
// Return
return(NULL);
}
#define MQLInfoInteger mt5_MQLInfoInteger
#define ENUM_MQL_INFO_INTEGER MT5_ENUM_MQL_INFO_INTEGER
#define MQL_MEMORY_LIMIT MT5_MQL_MEMORY_LIMIT
#define MQL_MEMORY_USED MT5_MQL_MEMORY_USED
#define MQL_PROGRAM_TYPE MT5_MQL_PROGRAM_TYPE
#define MQL_DLLS_ALLOWED MT5_MQL_DLLS_ALLOWED
#define MQL_TRADE_ALLOWED MT5_MQL_TRADE_ALLOWED
#define MQL_SIGNALS_ALLOWED MT5_MQL_SIGNALS_ALLOWED
#define MQL_DEBUG MT5_MQL_DEBUG
#define MQL_PROFILER MT5_MQL_PROFILER
#define MQL_TESTER MT5_MQL_TESTER
#define MQL_FORWARD MT5_MQL_FORWARD
#define MQL_OPTIMIZATION MT5_MQL_OPTIMIZATION
#define MQL_VISUAL_MODE MT5_MQL_VISUAL_MODE
#define MQL_FRAME_MODE MT5_MQL_FRAME_MODE
#define MQL_LICENSE_TYPE MT5_MQL_LICENSE_TYPE
//+------------------------------------------------------------------+
//| MQL4: MQL5-compatible TerminalInfoInteger() |
//+------------------------------------------------------------------+
const int mt5_TerminalInfoInteger(const int property_id)
{
switch(property_id)
{
case MT5_TERMINAL_BUILD:
return(TerminalInfoInteger(TERMINAL_BUILD));
case MT5_TERMINAL_COMMUNITY_ACCOUNT:
return(TerminalInfoInteger(TERMINAL_COMMUNITY_ACCOUNT));
case MT5_TERMINAL_COMMUNITY_CONNECTION:
return(TerminalInfoInteger(TERMINAL_COMMUNITY_CONNECTION));
case MT5_TERMINAL_CONNECTED:
return(TerminalInfoInteger(TERMINAL_CONNECTED));
case MT5_TERMINAL_DLLS_ALLOWED:
return(TerminalInfoInteger(TERMINAL_DLLS_ALLOWED));
case MT5_TERMINAL_TRADE_ALLOWED:
return(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED));
case MT5_TERMINAL_EMAIL_ENABLED:
return(TerminalInfoInteger(TERMINAL_EMAIL_ENABLED));
case MT5_TERMINAL_FTP_ENABLED:
return(TerminalInfoInteger(TERMINAL_FTP_ENABLED));
case MT5_TERMINAL_NOTIFICATIONS_ENABLED:
return(TerminalInfoInteger(TERMINAL_NOTIFICATIONS_ENABLED));
case MT5_TERMINAL_MAXBARS:
return(TerminalInfoInteger(TERMINAL_MAXBARS));
case MT5_TERMINAL_MQID:
return(TerminalInfoInteger(TERMINAL_MQID));
case MT5_TERMINAL_CODEPAGE:
return(TerminalInfoInteger(TERMINAL_CODEPAGE));
case MT5_TERMINAL_CPU_CORES:
return(TerminalInfoInteger(TERMINAL_CPU_CORES));
case MT5_TERMINAL_DISK_SPACE:
return(TerminalInfoInteger(TERMINAL_DISK_SPACE));
case MT5_TERMINAL_MEMORY_PHYSICAL:
return(TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL));
case MT5_TERMINAL_MEMORY_TOTAL:
return(TerminalInfoInteger(TERMINAL_MEMORY_TOTAL));
case MT5_TERMINAL_MEMORY_AVAILABLE:
return(TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE));
case MT5_TERMINAL_MEMORY_USED:
return(TerminalInfoInteger(TERMINAL_MEMORY_USED));
case MT5_TERMINAL_X64:
return(TerminalInfoInteger(TERMINAL_X64));
case MT5_TERMINAL_OPENCL_SUPPORT:
return(TerminalInfoInteger(TERMINAL_OPENCL_SUPPORT));
case MT5_TERMINAL_SCREEN_DPI:
return(TerminalInfoInteger(TERMINAL_SCREEN_DPI));
case MT5_TERMINAL_PING_LAST:
return(TerminalInfoInteger(TERMINAL_PING_LAST));
case MT5_TERMINAL_VPS:
return(TerminalInfoInteger(TERMINAL_VPS));
case TERMINAL_SCREEN_LEFT:
case TERMINAL_SCREEN_TOP:
case TERMINAL_SCREEN_WIDTH:
case TERMINAL_SCREEN_HEIGHT:
case TERMINAL_LEFT:
case TERMINAL_TOP:
case TERMINAL_RIGHT:
case TERMINAL_BOTTOM:
#ifdef _DEBUG
printf("Feature not supported in MQL4: %s; %s", __FUNCTION__, EnumToString(property_id));
#else
break;
#endif
}
// Return
return(NULL);
}
#define TerminalInfoInteger mt5_TerminalInfoInteger
#define ENUM_TERMINAL_INFO_INTEGER MT5_ENUM_TERMINAL_INFO_INTEGER
#define TERMINAL_BUILD MT5_TERMINAL_BUILD
#define TERMINAL_COMMUNITY_ACCOUNT MT5_TERMINAL_COMMUNITY_ACCOUNT
#define TERMINAL_COMMUNITY_CONNECTION MT5_TERMINAL_COMMUNITY_CONNECTION
#define TERMINAL_CONNECTED MT5_TERMINAL_CONNECTED
#define TERMINAL_DLLS_ALLOWED MT5_TERMINAL_DLLS_ALLOWED
#define TERMINAL_TRADE_ALLOWED MT5_TERMINAL_TRADE_ALLOWED
#define TERMINAL_EMAIL_ENABLED MT5_TERMINAL_EMAIL_ENABLED
#define TERMINAL_FTP_ENABLED MT5_TERMINAL_FTP_ENABLED
#define TERMINAL_NOTIFICATIONS_ENABLED MT5_TERMINAL_NOTIFICATIONS_ENABLED
#define TERMINAL_MAXBARS MT5_TERMINAL_MAXBARS
#define TERMINAL_MQID MT5_TERMINAL_MQID
#define TERMINAL_CODEPAGE MT5_TERMINAL_CODEPAGE
#define TERMINAL_CPU_CORES MT5_TERMINAL_CPU_CORES
#define TERMINAL_DISK_SPACE MT5_TERMINAL_DISK_SPACE
#define TERMINAL_MEMORY_PHYSICAL MT5_TERMINAL_MEMORY_PHYSICAL
#define TERMINAL_MEMORY_TOTAL MT5_TERMINAL_MEMORY_TOTAL
#define TERMINAL_MEMORY_AVAILABLE MT5_TERMINAL_MEMORY_AVAILABLE
#define TERMINAL_MEMORY_USED MT5_TERMINAL_MEMORY_USED
#define TERMINAL_X64 MT5_TERMINAL_X64
#define TERMINAL_OPENCL_SUPPORT MT5_TERMINAL_OPENCL_SUPPORT
#define TERMINAL_SCREEN_DPI MT5_TERMINAL_SCREEN_DPI
#define TERMINAL_PING_LAST MT5_TERMINAL_PING_LAST
#define TERMINAL_VPS MT5_TERMINAL_VPS
//
// END MQL compatibility */
//*********************************************************************************************************************************************************/
#endif // LIB_MQLPLUS_MQL4_COMPATIBILITY_INFOINTEGER_MQH_INCLUDED