GetFontName - MetaTrader 5程序库
- 显示:
- 1640
- 等级:
- 已发布:
- 2014.01.07 08:10
- 已更新:
- 2016.11.22 07:33
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
当在指标中使用文本图形,它经常需要实现在指标输入参数中改变字体类型。
在这种情况下,最明显的解决方案是手工输入字体的名称作为输入参数的值,但它不是很方便并容易出错。更有效的方法是使用基于 枚举 的自定义变量和下拉菜单列表。此处呈现的功能模块,设计用来解决此任务。
这个例子足够与代码库工作。假设我们有指标 (ChartInfo_Old.mq5),在图表中的一个角落显示一个文本标签。此处是输入参数:
//+----------------------------------------------+ //| Indicator input parameters | //+----------------------------------------------+ input string Text="Real"; // 文本标签内容 input color TextColor=Red; // 文本标签颜色 input int FontSize=24; // 字体大小 input type_font FontType=Font7; // 字体类型 input ENUM_BASE_CORNER WhatCorner=CORNER_LEFT_LOWER; // 表角位置 input uint Y_=1; // 垂直位置
有了这样的代码,指标输入参数窗口将具有以下模样:
为了让用户可以自由输入字体名,需要替换一些代码:
1. 在声明指标输入参数之前,使用 #include 指令,加入 GetFontName.mqh 文件内容:
//+----------------------------------------------+ // type_font enumeration description | // CFontName class description | //+----------------------------------------------+ #include <GetFontName.mqh>
2. 替换 FontType 那行的输入参数:
input string FontType="Courier New"; // 字体类型
为以下行
input type_font FontType=Font7; // 字体类型
因此,我们已经改变了一点变量用法的含义。以前的变量意义,必须以全局声明的新字符串变量实现
string sFontType;
则 FontType 变量在指标代码中必须用 sFontType 替代。它必须只能在一处完成:
SetTLabel(0,"Info_Label",0,WhatCorner,ENUM_ANCHOR_POINT(2*WhatCorner),5,Y_,Text,TextColor,sFontType,FontSize);
现在, sFontType 变量必须在 OnInit() 模块中初始化。它可以仅用两行代码完成:
CFontName FONT; sFontType=FONT.GetFontName(FontType);
修订的 ChartInfo.mq5 指标可以随后进行编译。
现在可以看到指标输入参数窗口的变化:
在指标输入参数中选择字体的工作变得更加方便。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/644
FisherTransform_HTF_Signal
FisherTransform_HTF_Signal 显示彩色图形对象来代表趋势方向,并在趋势改变时发送报警和声音信号。
费舍尔变换费舍尔指标计算之前历史的最小和最大价格级别, 判断趋势方向和预测它的反转。