第一个Script程序
Script是什么
Script是在MT4中可运行的一种程序,一个Script运行在一个线程中
Script的生命周期
Init
当MT4客户端加载一个Script,开始处理全局变量的初始化时,Init事件将会被发送,OnInit事件处理函数将会被回调
Start
Start事件是Script加载后的一个事件,OnStart事件处理函数将会被回调
DeInit
当Script被卸载时,全局变量取消初始化的时候,Deinit事件会被触发,OnDeinit事件处理函数将会被回调
运行示例
运行代码
//+------------------------------------------------------------------+
//| MyFirstScript.mq4 |
//| Copyright 2018, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
// input string name;
class CTestClass
{
public:
CTestClass()
{
// 构造函数
Print("CTestClass constructor");
}
~CTestClass()
{
// 析构函数
Print("CTestClass deconstructor");
}
};
// 全局变量
CTestClass globa;
//+------------------------------------------------------------------+
//| Script program init function |
//+------------------------------------------------------------------+
int OnInit()
{
Print(__FUNCTION__);
return INIT_SUCCEEDED;
}
//+------------------------------------------------------------------+
//| Script program deinit function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Print(__FUNCTION__);
Print("Deinit with rease = ", reason);
}
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
Print(__FUNCTION__);
uchar u_ch;
for (char ch = -2; ch < 2; ch++)
{
u_ch = ch;
Print("ch = ", ch, " u_ch = ", u_ch);
}
}
//+------------------------------------------------------------------+