跳至内容

客户端属性

客户端属性

有关客户端信息包含在两种函数中,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.communitybool
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 文件夹的空闲磁盘空间,MBint
TERMINAL_MEMORY_PHYSICAL系统的物理内存,MBint
TERMINAL_MEMORY_TOTAL程序端(代理)进程的可用内存,MBint
TERMINAL_MEMORY_AVAILABLE程序端(代理)进程的空闲内存,MBint
TERMINAL_MEMORY_USED程序端(代理)使用的内存,MBint
TERMINAL_X64“64-位程序端”bool
TERMINAL_OPENCL_SUPPORTOpenCL 支持的版本格式 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_BALANCEMQL5.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_NAMECPU名称string
TERMINAL_CPU_ARCHITECTURECPU架构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中可以看到相关信息,如下表示:

获取程序端工作文件夹的数据

取得终端配色方案信息

终端支持两种配色方案:浅色(默认)和深色。在开发具有图形用户界面的自定义应用程序时,程序员应考虑当前的终端配色方案。应用程序中使用的视觉组件应具有动态适应性,以增强用户体验并保持视觉一致性。

为了支持这一点,本语言提供了检测终端配色方案的函数:

标识符描述属性类型
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_3DFACE3D 元素正面color
THEME_COLOR_3DLIGHT3D 元素的光侧color
THEME_COLOR_3DSHADOW3D 元素的阴影侧color
THEME_COLOR_3DDKSHADOW3D 元素的阴影color
THEME_COLOR_3DHILIGHT3D 元素的高亮显示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