MT4中自动打开历史数据文件建立chart并且实现判断当前K线收盘价是否大于ma50 如果是,则自动截屏并且关闭当前chart的 ea代码
时间: 2024-10-06 07:02:32 浏览: 24
ea.rar_MT4历史数据_mt4历史_mt4曲线统计ea_数据ea_统计 ea
在MQL4中,编写EA (Expert Advisor) 来实现这样的功能需要结合`OnTick()`事件和一些图像操作。以下是一个简单的示例代码,它会在每个tick更新时检查收盘价是否大于MA50,如果是则截图并关闭图表:
```mql4
#include <Input.h>
#include <File Picture.h>
// 输入参数
int MA_Period = InputInt("MA Period", 50, 1, 1000, true); // 移动平均线周期
double lastClosePrice; // 上次的收盘价
bool isAboveMa = false; // 判断收盘价是否高于MA
void Initialize()
{
HistoryRequest(Historybardays, bars史高, Bid, Ask);
}
void OnTick()
{
double currentClose = Close[0]; // 当前的收盘价
// 更新MA
if (!isAboveMa)
{
lastClosePrice = currentClose;
isAboveMa = currentClose > MA(Close, MA_Period);
}
// 如果收盘价大于MA,截屏并关闭图表
if (isAboveMa)
{
FilePicture("Chart Snapshot", ChartWindow(), SaveToDisk | Transparent);
DeleteChartWindow(); // 关闭当前图表窗口
}
}
```
在这个例子中,你需要将"Historybardays"设置为你想要的历史数据天数范围。此外,为了运行此EA,需要在终端中创建一个新的项目,并将此代码复制到项目中的`main()`函数中。
请注意,由于MT4的自动化截图功能和图例管理相对复杂,可能并不能完美地满足所有需求,特别是对于高级的图形调整。如果你有特定的屏幕区域或格式需求,你可能需要使用额外的库或者工具来协助。
阅读全文