403 lines
13 KiB
MQL5
403 lines
13 KiB
MQL5
|
#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
|