MT4开发(1) - 第一个Script程序

本文介绍了MT4平台中Script的基本概念及其生命周期管理。包括Script的加载、初始化、启动及卸载过程,并通过一个示例程序详细展示了各阶段的实现细节。

第一个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);
     }
  }
//+------------------------------------------------------------------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值