客户端属性
客户端属性
有关客户端信息包含在两种函数中,TerminalInfoInteger()和TerminalInfoString()。对于参量来说,这些函数分别从ENUM_TERMINAL_INFO_INTEGER 和 ENUM_TERMINAL_INFO_STRING中接收值。
ENUM_TERMINAL_INFO_INTEGER
| 标识符 | 描述 | 类型 |
|---|---|---|
| TERMINAL_BUILD | 客户端构造编号 | int |
| TERMINAL_COMMUNITY_ACCOUNT | 标识表示程序端中存在MQL5.community 授权数据 | bool |
| TERMINAL_COMMUNITY_CONNECTION | 连接 MQL5.community | bool |
| TERMINAL_CONNECTED | 连接的交易服务器 | bool |
| TERMINAL_DLLS_ALLOWED | 使用DLL许可 | bool |
| TERMINAL_TRADE_ALLOWED | 允许交易 | bool |
| TERMINAL_EMAIL_ENABLED | 在制定终端允许使用SMTP-server 和 login发送邮件 | bool |
| TERMINAL_FTP_ENABLED | 在制定终端允许使用FTP-server 和 login发送报告 | bool |
| TERMINAL_NOTIFICATIONS_ENABLED | 允许向智能手机发送通知 | bool |
| TERMINAL_MAXBARS | 图表中的最大字节 | int |
| TERMINAL_MQID | 标识表示存在MetaQuotes ID 数据 推送通知 | bool |
| TERMINAL_CODEPAGE | 在客户端建立的 语言代码页 数字 | int |
| TERMINAL_CPU_CORES | 系统的CPU 内核数量 | int |
| TERMINAL_DISK_SPACE | 程序端(代理)MQL5\Files 文件夹的空闲磁盘空间,MB | int |
| TERMINAL_MEMORY_PHYSICAL | 系统的物理内存,MB | int |
| TERMINAL_MEMORY_TOTAL | 程序端(代理)进程的可用内存,MB | int |
| TERMINAL_MEMORY_AVAILABLE | 程序端(代理)进程的空闲内存,MB | int |
| TERMINAL_MEMORY_USED | 程序端(代理)使用的内存,MB | int |
| TERMINAL_X64 | “64-位程序端” | bool |
| TERMINAL_OPENCL_SUPPORT | OpenCL 支持的版本格式 0x00010002 = 1.2。 “0” 表示OpenCL 不被支持 | int |
| TERMINAL_SCREEN_DPI | 屏幕上显示信息的分辨率是以每英寸一行的点数计算的(DPI)。 知道该参数值,您可以设置图形对象的大小,以便在不同分辨率的显示器上看起来一样。 | int |
| TERMINAL_SCREEN_LEFT | 虚拟屏幕的左坐标。虚拟屏幕是覆盖所有监视器的长方形。如果系统从右至左有两个监视器,那么虚拟屏幕的左坐标可以在两个监视器的边界上。 | int |
| TERMINAL_SCREEN_TOP | 虚拟屏幕的顶部坐标 | int |
| TERMINAL_SCREEN_WIDTH | 程序端宽度 | int |
| TERMINAL_SCREEN_HEIGHT | 程序端高度 | int |
| TERMINAL_LEFT | 相对于虚拟屏幕的程序端的左坐标 | int |
| TERMINAL_TOP | 相对于虚拟屏幕的程序端的顶部坐标 | int |
| TERMINAL_RIGHT | 相对于虚拟屏幕的程序端的右坐标 | int |
| TERMINAL_BOTTOM | 相对于虚拟屏幕的程序端的底部坐标 | int |
| TERMINAL_PING_LAST | 最后知道的交易服务器的微秒ping值。一秒包含一百万微秒 | int |
| TERMINAL_VPS | 表示程序端在MetaTrader虚拟主机服务器 (MetaTrader VPS)上启动 | bool |
| 按键标识符 | 描述 | |
| TERMINAL_KEYSTATE_LEFT | “左箭头”键状态 | int |
| TERMINAL_KEYSTATE_UP | “向上箭头”键状态 | int |
| TERMINAL_KEYSTATE_RIGHT | “右箭头”键状态 | int |
| TERMINAL_KEYSTATE_DOWN | “向下箭头”键状态 | int |
| TERMINAL_KEYSTATE_SHIFT | “Shift”键状态 | int |
| TERMINAL_KEYSTATE_CONTROL | “Ctrl”键状态 | int |
| TERMINAL_KEYSTATE_MENU | “Windows”键状态 | int |
| TERMINAL_KEYSTATE_CAPSLOCK | “CapsLock”键状态 | int |
| TERMINAL_KEYSTATE_NUMLOCK | “NumLock”键状态 | int |
| TERMINAL_KEYSTATE_SCRLOCK | “ScrollLock”键状态 | int |
| TERMINAL_KEYSTATE_ENTER | “Enter”键状态 | int |
| TERMINAL_KEYSTATE_INSERT | “Insert”键状态 | int |
| TERMINAL_KEYSTATE_DELETE | “Delete”键状态 | int |
| TERMINAL_KEYSTATE_HOME | “Home”键状态 | int |
| TERMINAL_KEYSTATE_END | “End”键状态 | int |
| TERMINAL_KEYSTATE_TAB | “Tab”键状态 | int |
| TERMINAL_KEYSTATE_PAGEUP | “PageUp”键状态 | int |
| TERMINAL_KEYSTATE_PAGEDOWN | “PageDown”键状态 | int |
| TERMINAL_KEYSTATE_ESCAPE | “Escape”键状态 | int |
调用TerminalInfoInteger(TERMINAL_KEYSTATE_XXX)返回GetKeyState()函数在MSDN相同键的状态代码。
比例系数计算示例 :
//--- 在屏幕上创建 1.5 英寸宽的按键
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // 找到用户显示器的DPI
int base_width = 144; // DPI=96标准显示器的屏幕点的基本宽度
int width = (button_width * screen_dpi) / 96; // 为用户显示器(特别DPI)计算按键宽度
...
//--- 按百分比计算比例系数
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- 使用比例系数
width=(base_width * scale_factor) / 100;在以上示例中,图形 资源 在不同分辨率特征的显示器上看起来一样。控制元素的大小(按键,对话框等等)对应个性化设置。
ENUM_TERMINAL_INFO_DOUBLE
| 标识符 | 描述 | 类型 |
|---|---|---|
| TERMINAL_COMMUNITY_BALANCE | MQL5.community的结余 | 双精度 |
| TERMINAL_RETRANSMISSION | 对于所有在指定计算机上运行应用程序和服务的TCP/IP协议中的现有网络数据包的百分比。即使在最快且配置正确的网络中也可能发生数据包的丢失。在这种情况下,在接收方与发送方之间没有确认数据包的交付,因此丢失的数据包被重新发送。 这并不表示特定程序端和交易服务器之间的连接质量,因为这个百分比是为整个网络活动计算,包括系统和后台活动。 TERMINAL_RETRANSMISSION值每分钟从操作系统请求一次。 程序端本身并不计算该值。 | 双精度 |
只能在两种目录下执行文件操作 ;使用TERMINAL_DATA_PATH 和 TERMINAL_COMMONDATA_PATH 要求特征包括相似路径。
ENUM_TERMINAL_INFO_STRING
| 标识符 | 描述 | 类型 |
|---|---|---|
| TERMINAL_LANGUAGE | 程序端语言 | string |
| TERMINAL_COMPANY | 公司名称 | string |
| TERMINAL_NAME | 程序端名称 | string |
| TERMINAL_PATH | 程序端文件夹启动 | string |
| TERMINAL_DATA_PATH | 程序端数据文件夹存储 | string |
| TERMINAL_COMMONDATA_PATH | 电脑中所有程序端的普通路径 | string |
| TERMINAL_CPU_NAME | CPU名称 | string |
| TERMINAL_CPU_ARCHITECTURE | CPU架构 | string |
| TERMINAL_OS_VERSION | 用户操作系统名称 | string |
| TERMINAL_COLORTHEME_NAME | 终端配色方案;可能的值:浅色和深色。 | string |
为更好的了解路径,存储在TERMINAL_PATH, TERMINAL_DATA_PATH 和 TERMINAL_COMMONDATA_PATH参量中的属性,推荐使用脚本,它可以通过当前复制的客户端的来返回这些值。
示例:脚本返回的有关客户端路径的信息
//+------------------------------------------------------------------+
//| Check_TerminalPaths.mq5 |
//| Copyright 2009, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| 脚本程序启动函数 |
//+------------------------------------------------------------------+
void OnStart()
{
//---
Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
}脚本执行的结果在Experts Journal中可以看到相关信息,如下表示:

取得终端配色方案信息
终端支持两种配色方案:浅色(默认)和深色。在开发具有图形用户界面的自定义应用程序时,程序员应考虑当前的终端配色方案。应用程序中使用的视觉组件应具有动态适应性,以增强用户体验并保持视觉一致性。
为了支持这一点,本语言提供了检测终端配色方案的函数:
- ENUM_TERMINAL_INFO_STRING枚举中的 TERMINAL_COLORTHEME_NAME 值允许您通过使用 TerminalInfoString 函数来获取当前配色方案的名称。可能的值:浅色和深色。
- 使用 ENUM_TERMINAL_INFO_INTEGER枚举中的 THEME_COLOR_* 值可以通过 TerminalInfoInteger 函数获取特定 UI 元素的颜色。
| 标识符 | 描述 | 属性类型 |
|---|---|---|
| THEME_COLOR_WINDOW | 窗口背景 | color |
| THEME_COLOR_WINDOWTEXT | 窗口中的文本 | color |
| THEME_COLOR_BTNTEXT | 按钮文本 | color |
| THEME_COLOR_GRAYTEXT | 非活动(被禁用)的文本 | color |
| THEME_COLOR_INFOTEXT | 提示文本 | color |
| THEME_COLOR_INFOBK | 提示背景 | color |
| THEME_COLOR_3DFACE | 3D 元素正面 | color |
| THEME_COLOR_3DLIGHT | 3D 元素的光侧 | color |
| THEME_COLOR_3DSHADOW | 3D 元素的阴影侧 | color |
| THEME_COLOR_3DDKSHADOW | 3D 元素的阴影 | color |
| THEME_COLOR_3DHILIGHT | 3D 元素的高亮显示 | color |
| THEME_COLOR_HIGHLIGHT | 选定元素的背景 | color |
| THEME_COLOR_HIGHLIGHTTEXT | 选定元素的文本 | color |
| THEME_COLOR_BTNFACE | 按钮正面 | color |
| THEME_COLOR_BTNHILIGHT | 按钮高亮显示 | color |
| THEME_COLOR_BTNSHADOW | 按钮阴影 | color |
| THEME_COLOR_MENU | 菜单背景 | color |
| THEME_COLOR_MENUBAR | 菜单栏背景 | color |
| THEME_COLOR_MENUTEXT | 菜单文本 | color |
| THEME_COLOR_MENUHILIGHT | 选中菜单项的高亮显示 | color |
| THEME_COLOR_ACTIVECAPTION | 活动窗口标题 | color |
| THEME_COLOR_INACTIVECAPTION | 非活动窗口标题 | color |
| THEME_COLOR_GRADIENTINACTIVECAPTION | 非活动窗口标题的渐变 | color |
| THEME_COLOR_CAPTIONTEXT | 窗口标题文本 | color |
| THEME_COLOR_INACTIVECAPTIONTEXT | 非活动窗口标题文本 | color |
| THEME_COLOR_HOTTEXT | 活动元素的超链接 | color |
| THEME_COLOR_NONE | 未选择颜色 | color |
| THEME_COLOR_SEPARATOR | 分隔线 | color |
| THEME_COLOR_SCROLLBACK | 滚动条 | color |
| THEME_COLOR_LINE1 | 日记中奇数行的背景颜色 | color |
| THEME_COLOR_LINE2 | 日记中偶数行的背景颜色 | color |
| THEME_COLOR_GRID | 日志中的网格颜色 | color |
| THEME_COLOR_SUMMARY | 日志中摘要行的背景颜色 | color |
| THEME_COLOR_ERROR | 错误消息文本颜色 | color |
| THEME_COLOR_INVALID | 无效值文本的颜色 | color |
| THEME_COLOR_NEGATIVE | 负值颜色 | color |
| THEME_COLOR_POSITIVE | 正值颜色 | color |
| THEME_COLOR_LINK | 链接颜色 | color |
| THEME_COLOR_LINKHOVER | 链接悬停颜色 | color |
| THEME_COLOR_LINKTESTER | 来自缓存的先前测试/优化运行的结果中的链接颜色 | color |
| THEME_COLOR_TEXTUP | “按钮释放”状态 | color |
| THEME_COLOR_TEXTDOWN | “按钮按下”状态 | color |
| THEME_COLOR_BACKUP | 报价升高时“一键交易”中“买入”和“卖出”按钮的颜色 | color |
| THEME_COLOR_BACKDOWN | 报价下降时“一键交易”中“买入”和“卖出”按钮的颜色 | color |
| THEME_COLOR_CLOSE | “关闭”操作按钮颜色 | color |
| THEME_COLOR_BUY | “买入”操作按钮颜色 | color |
| THEME_COLOR_SELL | “卖出”操作按钮颜色 | color |
| THEME_COLOR_DEPOSIT | “存款”按钮颜色 | color |
| THEME_COLOR_WITHDRAWAL | “提款”按钮颜色 | color |
| THEME_COLOR_BID | 买价线颜色 | color |
| THEME_COLOR_ASK | 卖价线颜色 | color |
| THEME_COLOR_STOPS | 止损线颜色 | color |
| THEME_COLOR_STOPS_RED | 当利润为负时止损值高亮显示(交易选项卡) | color |
| THEME_COLOR_STOPS_GREEN | 当利润为正时止损值高亮显示(交易选项卡) | color |
| THEME_COLOR_CONFIRM | 订单提交窗口中“接受”按钮颜色 | color |
| THEME_COLOR_REQUOTE | 订单提交窗口中“重新报价”按钮颜色 | color |
| THEME_COLOR_REJECT | 订单提交窗口中“拒绝”按钮颜色 | color |
| THEME_COLOR_NOTIFICATION | 订单提交窗口中来自服务器的更改通知的颜色 | color |
| THEME_COLOR_RATING | 学习系统中的评分栏颜色 | color |
| THEME_COLOR_BOOK_BUY | 市场深度中买入水平的背景颜色 | color |
| THEME_COLOR_BOOK_SELL | 市场深度中卖出水平的背景颜色 | color |
| THEME_COLOR_BOOK_LAST | 市场深度中最后交易的颜色 | color |
| THEME_COLOR_BOOK_STOP | 市场深度中的止损水平颜色 | color |
| THEME_COLOR_BOOK_SPREAD | 市场深度价差内水平的背景颜色 | color |
| THEME_COLOR_TICKS_BID | 订单提交窗口中分时图上的买价线颜色 | color |
| THEME_COLOR_TICKS_ASK | 订单提交窗口中分时图上的卖价线颜色 | color |
| THEME_COLOR_TICKS_LAST | 订单提交窗口中分时图上的最新交易线颜色 | color |
| THEME_COLOR_TICKS_CROSS | 订单提交窗口中分时图上的十字线颜色 | color |
| THEME_COLOR_TICKS_SL | 订单提交窗口中分时图上的止损线颜色 | color |
| THEME_COLOR_TICKS_TP | 订单提交窗口中分时图上的止盈线颜色 | color |
| THEME_COLOR_TESTER_START | 测试/优化中的“开始”按钮颜色 | color |
| THEME_COLOR_TESTER_STOP | 测试/优化中的“停止”按钮颜色 | color |
| THEME_COLOR_TESTER_START_FRAME | 测试/优化中“开始”按钮的边框颜色 | color |
| THEME_COLOR_TESTER_STOP_FRAME | 测试/优化中“停止”按钮的边框颜色 | color |
| THEME_COLOR_TESTER_PROGRESS | 测试/优化中的进度条颜色 | color |
| THEME_COLOR_TESTER_BALANCE | 策略测试器中的余额线颜色 | color |
| THEME_COLOR_TESTER_EQUITY | 策略测试器中的净值线颜色 | color |
| THEME_COLOR_TESTER_MARGIN | 策略测试器中的存款负载图颜色 | color |
| THEME_COLOR_PROFILER_CALL | 分析期间调用的代码行的颜色 | color |
| THEME_COLOR_PROFILER_CALLSEL | 分析期间调用时选择的代码行颜色 | color |
| THEME_COLOR_PROFILER_LINE | 分析日志中的线条颜色 | color |
| THEME_COLOR_PROFILER_LINESEL | 分析日志中选定的线条颜色 | color |