aChartsAndMW5Class - MetaTrader 5程序库
- 显示:
- 1197
- 等级:
- 已发布:
- 2017.03.23 08:48
- 已更新:
- 2017.03.23 08:49
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
该类可轻松地从您正在运行的 MQL5 程序里判断市场观察窗口中的任何变化 (品名排序变更, 添加, 删除一个或一组品名), 打开和关闭图表, 以及在当前图表上一键交易选项的可用性。该类将自定义事件发送到控制程序。
程序中提供了以下公有方法:
周期 | 描述 | 返回值 |
---|---|---|
使用图表的方法 | ||
bool IsChartOneClick(void) | 返回图表上一键交易面板的可用性标志 | bool true/false |
uchar GetChartNumbers(void) | 返回终端中打开的图表数量 | uchar The number of open charts |
long GetOpenedChartID(void) | 返回新打开的图表 ID | long ChartID() |
string GetOpenedSymbol(void) | 返回新打开的图表品名 | string ChartSymbol() |
ENUM_TIMEFRAMES GetOpenedTimeframe(void) | 返回新打开的图表时间帧 | ENUM_TIMEFRAMES ChartPeriod() |
long GetClosedChartID(void) | 返回新关闭的图表 ID | long ChartID() |
string GetClosedSymbol(void) | 返回新关闭的图表品名 | string ChartSymbol() |
ENUM_TIMEFRAMES GetClosedTimeframe(void) | 返回新关闭的图表时间帧 | ENUM_TIMEFRAMES ChartPeriod() |
bool IsOpenedIsObject(void) | 返回打开的图表是一个对象的符号 | bool true/false |
bool IsClosedIsObject(void) | 返回关闭的图表是一个对象的符号 | bool true/false |
bool CheckOpenChart(string symbol_name); | 检查品种图表是否打开 | bool true/false |
bool CheckOpenChart(string symbol_name,ENUM_TIMEFRAMES timeframe) | 检查指定时间帧的品种图表是否打开 | bool true/false |
long OpenChart(string symbol_name,ENUM_TIMEFRAMES timeframe) | 打开品种图表 | long ChartID() |
bool IsOpenedAllCharts(void) | 返回市场观察中所有品种打开图表的存在标志 | bool true/false |
操纵市场观察的方法 | ||
bool PutSymbolToMarketWatch(string symbol_name) | 向市场观察添加品种 | bool true/false |
bool IsExistSymbolInMW(string symbol_name, bool select=false) | 返回市场观察服务器上存在品种的标志 | bool true/false |
int GetNumSymbolsInMW(void) | 返回市场观察中的品种数量 | int The number of symbols in the Market Watch |
int GetNumAllSymbols(void) | 返回可用品种的数量 | int The number of symbols on the server |
void ClearMarketWatch(void) | 从市场观察中删除所有可能的符号 | void |
标识符 | 数值 | 描述 |
---|---|---|
CHARTEVENT_CHART_OPEN | 32 | 新图表打开事件 |
CHARTEVENT_CHART_CLOSE | 33 | 图表关闭事件 |
CHARTEVENT_MW_SYMBOL_ADD | 34 | 向市场观察添加品种的事件 |
CHARTEVENT_MW_FEW_SYMBOL_ADD | 35 | 向市场观察添加多个品种的事件 |
CHARTEVENT_MW_SYMBOL_DEL | 36 | 从市场观察中删除品种的事件 |
CHARTEVENT_MW_FEW_SYMBOL_DEL | 37 | 从市场观察删除多个品种的事件 |
CHARTEVENT_MW_CHANGE_SORT | 38 | 在市场观察中改变品种排序的事件 |
CHARTEVENT_CHART_CHANGE_ONE_CLICK | 39 | 一键交易面板的打开/关闭事件 |
标识符值与来自 Anatoli Kazharski 的 图形库 的标识符相对应, 虽然您可以自行设置它们。
数值将与事件一起传递给控制程序:
标识符 | lparam | dparam | sparam |
---|---|---|---|
CHARTEVENT_CHART_OPEN | long 打开图表的 ChartID | ENUM_TIMEFRAMES 打开图表的周期 | string 打开图表的品种 |
CHARTEVENT_CHART_CLOSE | long 关闭图表的 ChartID | ENUM_TIMEFRAMES 关闭图表的周期 | string 关闭图表的品种 |
CHARTEVENT_MW_SYMBOL_ADD | int 当前品种编号 | int 前一个品种编号 | string 添加的品种 |
CHARTEVENT_MW_FEW_SYMBOL_ADD | int 当前品种编号 | int 前一个品种编号 | string 最后使用的品种 |
CHARTEVENT_MW_SYMBOL_DEL | int 当前品种编号 | int 前一个品种编号 | string 已删除品种 |
CHARTEVENT_MW_FEW_SYMBOL_DEL | int 当前品种编号 | int 前一个品种编号 | string 最后使用的品种 |
CHARTEVENT_MW_CHANGE_SORT | int 当前品种编号 | int 当前品种编号 | string 最后使用的品种 |
CHARTEVENT_CHART_CHANGE_ONE_CLICK | int 面板右边界的 X 坐标 | int 面板右边界的 Y 坐标 | string 面板状态的描述: "CHART_IS_ONE_CLICK_ON" - 这是一个面板 "CHART_IS_ONE_CLICK_OFF" - 这不是一个面板 |
为了将该类包括在程序中, 必须将该文件包含在全局区域中并创建一个类实例:
#include <aChartsAndMWClass.mqh>
CChartsMW mw;
CChartsMW mw;
之后, 在程序的 OnTimer() 函数里, 添加类计时器:
//+------------------------------------------------------------------+
//| 计时器函数 |
//+------------------------------------------------------------------+
void OnTimer()
{
//--- 添加类计时器
mw.OnTimerEvent();
}
//| 计时器函数 |
//+------------------------------------------------------------------+
void OnTimer()
{
//--- 添加类计时器
mw.OnTimerEvent();
}
在 OnChartEvent() 里添加类事件处理器:
//+------------------------------------------------------------------+
//| ChartEvent 函数 |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//--- 添加类事件处理器
mw.OnEvent(id,lparam,dparam,sparam);
}
//| ChartEvent 函数 |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//--- 添加类事件处理器
mw.OnEvent(id,lparam,dparam,sparam);
}
现在, 通过类返回的事件可在程序的 OnChartEvent() 里被接收并处理。
从类中接收事件的示例在附带的智能交易系统 exTestChartsMWClass.mq5 中提供。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/17448
SilverTrend v3
SilverTrend v3 - 交易基于柱线最高价, 最低价和收盘价的分析。
新马丁新马丁智能交易系统启动时在两个相对方向开单。OnTradeTransaction 处理。当止盈触发, 它在同方向上开仓 (一个仓位)。两条均线指标的交叉点是大手数开单的信号。
阿尔法趋势观察者价格行为
基于价格行动策略的信号量信号指标, 搜寻最强的日内趋势, 可生成有关趋势变化的警报, 并向移动设备发送电子邮件或推送通知。
Exp_TDI-2_ReOpen基于 TDI-2 指标线的 Exp_TDI-2_ReOpen 交易系统, 增加了趋势跟踪仓位。