下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2015.07.21 15:48
程序库

用于设置和检查交易时间的类 - MetaTrader 5程序库

| Chinese English Русский Español Deutsch 日本語 Português

显示:
319
等级:
投票: 25

在您的 EA 中包含 CTimeControl 类可以便利地设置和检查您自己的交易时间。

用法例样:

包含:

#include "TimeControl.mqh"

省缺构造器:

CTimeControl   timeControl;

或是带日线的构造器:

CTimeControl timeControl(false, true, true, false, false, false, false);

或是带有日线设置数组和每日交易时间数组的构造器:

bool     arrDaysSetting[7] = { false, true, true, false, false, false, false};
int      
arrStartHours[7] = { 0, 15, 14, 0, 0, 0, 0};
double  
arrStartMinutes[7] = { 0, 15, 14, 0, 0, 0, 0};
int      
arrStopHours[7] = { 23, 13, 21, 23, 23, 23, 23};
double  
arrStopMinutes[7] = { 0, 15, 14, 0, 0, 0, 0};

CTimeControl timeControl2( arrDaysSetting, arrStartHours, arrStartMinutes, arrStopHours, arrStopMinutes);

为了取值/赋值每一天的参数,您可以使用 ENUM_DAY_OF_WEEK 日期索引功能来随意赋值/取值:

bool bMonday = timeControl.GetDay(MONDAY);

timeControl.SetDay(MONDAY, true);// 周一启用
timeControl.EnableDay(MONDAY);   // 周一启用
timeControl.DisableDay(MONDAY);  // 周一禁用

int iStartHour, iStopHour;
double
dStartMinute, dStopMinute;

timeControl.GetTradingTime(MONDAY, iStartHour, dStartMinute, iStopHour, dStopMinute);

或者,您可以用已定义函数来检查每一天:

bool bMonday = timeControl.GetMonday();

timeControl.SetMonday(true); //周一启用
timeControl.EnableMonday();  //周一启用
timeControl.DisableMonday(); //周一禁用

 检查是否为交易时间的主函数已经启用 (使用当前服务器时间)

if ( timeControl.IsTradingTime() == true )

{
   //做点什么
}

else

{
   //做点什么
}

或者您可以检查您自己的 datetime:

datetime date = D'24.02.2015 12:30:27'

if ( timeControl.IsTradingTime(date) == true )
{
   //做点什么
}
else
{
   //做点什么
}

由MetaQuotes Software Corp.从英文翻译成
官方代码: https://www.mql5.com/en/code/12484

Indicator Arrows II Indicator Arrows II

在图表窗口绘制向上/向下箭头。

Fibonacci Pivot Points Fibonacci Pivot Points

本指标使用斐波纳契级数来判断当前交易时段的明显支撑和阻力位。

Fractal ZigZag Fractal ZigZag

此指标是 FractalZigZagNoRepaint 的 MQL5 版本, 它显示波段高点和低点。

Smoothed_RSI 和 RSI_of_MA Smoothed_RSI 和 RSI_of_MA

平滑 RSI 指标和移动均线 RSI。