设为首页 收藏本站 切换语言

MQL5基础学习(一)

| 发表于 2025-3-19 01:04:34 | 显示全部楼层 |复制链接
© 本贴为 万元 首发,严禁抄袭!
基本的MQL5基本函数的总结。z

#property copyright "wang"
#property link      "https://www.mql5.com"
#property version   "1.00"
//初始化  方法调用
int OnInit()
  {
//多少秒调用一次OnTimer()函数
   Alert("OnInit  执行");

//此函数只要开始执行就不会停止,会每3秒执行一次OnTimer()函数 -----> 注册计时器
   EventSetTimer(3);
   return(INIT_SUCCEEDED);
  }

//deal死亡函数 ,在程序结束运行时调用的函数
void OnDeinit(const int reason)
  {
//------> 注销计时器
   EventKillTimer();
  }

// 在市场每获取一次报价会执行一次此函数
void OnTick()
  {
//---
//Alert("Tick  执行");
   Comment("0号收盘价 "+(string)iClose(Symbol(),PERIOD_CURRENT,0)+"\n ",
           "0号开盘价"+(string)iOpen(Symbol(),PERIOD_CURRENT,0)+"\n");
/*
//阻塞函数,会阻塞挂起,返回值看文档标识,文档标识按F1
   MessageBox("退出","要退出EA程序吗?",MB_CANCELTRYCONTINUE);
   int v =     MessageBox("是否退出EA","退出EA!!!",MB_YESNO);
   if(v==6)
     {
     Alert("退出了");
//专家移除
     ExpertRemove();  
     }
*/
/*
   datetime     time;          // 价格更新的最近时间
   double       bid;           // 当前卖价
   double       ask;           // 当前买价
   double       last;          // 最后交易的价格(Last)
   ulong        volume;        // 当前最后价格的交易量
   long         time_msc;      // 价格最后一次更新的时间,以毫秒计算
   uint         flags;         // 报价标识
   double       volume_real;   // 精确度更高的当前最后价格的交易量
*/
//获取以上基本信息  ↑   
   MqlTick last_tick;
// 其实就算mysql访问数据库中select语句将数据全部楼出来并且填充给对象  
   if(SymbolInfoTick(Symbol(),last_tick))   
     {
      Print(last_tick.time,": 卖价 = ",last_tick.bid,
            " 买价 = ",last_tick.ask,"  当前最后价格的交易量 = ",last_tick.volume_real);
     }
     else
     {
// 获取错误信息
         Print("SymbolInfoTick() failed, error = ",GetLastError());
     }
// 调用1970.01.1 起始 至今 的毫秒值。
    int period =  PeriodSeconds(PERIOD_CURRENT);
    PlaySound("timeout.wav");
    Print(period);
    Print(100-150==-50);
  }

//定时器执行函数
void OnTimer()
  {
//---
//   Alert("OnTimer  执行");
  }
//+------------------------------------------------------------------+
//|  这个函数未涉及到
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
  }

==================================================================

总结:MT5每次报价会循环调用 OnTick 函数,OnTick 处理我们的交易逻辑。
处理交易逻辑的大致流程为:
       1.  获取当前MT5面板上的数据,例如  币种  做空  做多 等等基本信息。
       2.  根据信息进行加工,拆分,筛选,运算,等等一系列操作。
       3.  在依据已知信息,来进行 做多  做空  以及剥头皮  平仓,等基本的交易操作。
猜测:
       更高级的开发 :多币种之间的数据处理,多指标数据之间的分析操作。经过写脚本语言P行情信息,再根据大数据分析行情信息,在结合指标信息等等,综合分析出ea下单以及平仓时机。



举报

评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)