前言

本系列文章适用于有一定mql5语言基础的人,或者你已经是一个程序员刚接触mql5这门语言,同时你还应该具备基础的交易知识,
在一系列文章里,我将一步一步的深入讲解,由简单实例到复杂ea.我会尽可能的将语句代码注释得更加详细,以便你能轻松的读懂代码,同时,希望你在学习的过程中,保持你的mql5帮助文档是打开的,以方便函数功能的查询和使用.

MQL5语言是什么?

这里我就不在阐述mql5是什么,如果你不了解这门语言的作用,那么之后的学习就是在浪费你的时间

MQL5的三种打印方式(Hello World!)

我们都知道,学一门语言的第一步就是,Hello World!

打开MeataEditor5,新建一个脚本程序

添加一行代码:#property script_show_inputs(脚本运行时弹出输入框)

#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| 脚本程序开始函数                                                   |
//+------------------------------------------------------------------+
void OnStart() //程序运行的主函数,所有逻辑应该写在该函数中{
//---}

创建一个枚举类型,不要问我什么是枚举类型 ,百度解释很清楚,你有那个能力去理解它

enum ENUM_PRINT_MODE //包含三种打印方式,三种效果会在接下来中展示{PRINT   = 0,COMMENT = 1,ALERT   = 2};

添加一个外部参数

input ENUM_PRINT_MODE printMode=PRINT; // 打印模式

现在将他们组合起来

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
enum ENUM_PRINT_MODE{PRINT   = 0,COMMENT = 1,ALERT   = 2};
input ENUM_PRINT_MODE printMode=PRINT;
//---
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart(){
//---}

运行脚本,看到下图你应该能够理解上面代码的含义.

接下来我们将定义一个函数,来控制打印的模式,以下代码中的所有函数和常量都能在mql5的帮助文档中查询到详细作用.

void PrintSymbolProperties(){//----定义需要输出的内容string symb_symbol=Symbol();// 交易品种int symb_digits=(int)SymbolInfoInteger(_Symbol,SYMBOL_DIGITS); // 小数点位数int symb_spread=(int)SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);// 买价和卖价之间的差异 (点差)int symb_stoplevel=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);// 止损级别double symb_ask       =SymbolInfoDouble(_Symbol,SYMBOL_ASK);// 买价double symb_bid       =SymbolInfoDouble(_Symbol,SYMBOL_BID);// 卖价//----根据不同的打印方式,输出以上信息   // 如果打印到日志中if(printMode==PRINT){Print("交易品种: ",symb_symbol,"\n","小数位数: ",symb_digits,"\n","点差: ",symb_spread,"\n","止损级别: ",symb_stoplevel,"\n","买价: ",symb_ask,"\n","卖价: ",symb_bid);}
//---
// 如果打印到图表上if(printMode==COMMENT){int mb_res=-1; // 对话框中选择选项的变量//---Comment("交易品种: ",symb_symbol,"\n","小数位数: ",symb_digits,"\n","点差: ",symb_spread,"\n","止损级别: ",symb_stoplevel,"\n","买价: ",symb_ask,"\n","卖价: ",symb_bid);//---// 打开一个对话框mb_res=MessageBox("您想要删除图表中的注释吗?",NULL,MB_YESNO|MB_ICONQUESTION);//---// 如果点击了 "Yes", 删除图表中的注释 if(mb_res==IDYES) { Comment(""); }//---return;}
//---
// 如果打印到提醒窗口if(printMode==ALERT){Alert("交易品种: "+symb_symbol+"\n","小数位数: "+IntegerToString(symb_digits)+"\n","点差: "+IntegerToString(symb_spread)+"\n","止损级别: "+IntegerToString(symb_stoplevel)+"\n","买价: "+DoubleToString(symb_ask,_Digits)+"\n","卖价: "+DoubleToString(symb_bid,_Digits));}}

现在我们执行看三种打印结果

PRINT的输出结果:

COMMENT的输出结果:(每一次输出将覆盖上一次的输出结果)

ALERT的输出结果:

结语

可能有程序基础的人会很容易理解上面代码的作用,如果你对上面代码抱有疑问,那么你应该先去学习一门编程语言的基础,mql5与C和C++的语法相似,我建议你从C语言的基础开始学习,直到你能明白上述代码的含义.

MQL5由简到繁系列一相关推荐

  1. 享存Mobox-由简到繁企业文件管理系统

    Mobox由简到繁企业文件管理系统 软件名称:享存 Mobox v1.0(企业文件管理软件) 软件版本:1.0 软件大小:40MB 软件类型:简体中文/国产软件/共享软件 软件分类:文件管理  运行环 ...

  2. 简转繁等中文转换(Golang)

    之前项目需要个简体转繁体的功能,工期太紧,就自己撸了一个,效果还行. 在做这个的过程中发现简转繁其实远比想的要复杂. 中间有很多简体字习惯的用法,在繁体中是不同的.且有些字如(後,后,臺灣,台灣) 在 ...

  3. 简转繁的JS代码(转)

    1.指定内容进行转换 程序代码 <script> //增加简繁转换功能! function bodytojt(x) {   var bodys=document.getElementByI ...

  4. HTML圆和圆角柜形的制作,造型越简单,工艺越复杂--外简内繁的圆角柜

    原标题:造型越简单,工艺越复杂--"外简内繁"的圆角柜 简约质朴,形式简单,结构科学,是明式家具的显著特点.而在这简单造型的背后,往往是复杂的工序, 圆角柜可以说达到了简约的极致, ...

  5. 简而繁的BlocksKit

    前言 意如分类标题那样,笔者打算开始探究框架与源码.毫无疑问,这其中会遇到各种各样的挑战,但是我觉得我们应尽早走出这一步,不然就错过了很多的精彩.也许这精彩是更加开阔的程序视野,亦或是逻辑思维与编程能 ...

  6. 甲骨文华育兴业|兰州理工大学理学院举办“化简为繁的大数据”学术交流会

    为了让同学们正确定位专业发展与行业认知,明确奋斗目标,5月23日上午,理学院邀请甲骨文中国大数据中国区运营执行官张柏森先生,在彭家坪校区举办题为"化简为繁的大数据"学术交流会.理学 ...

  7. java冒泡排序(由简到繁,由死到活)

    如:int []arr= {25,69,80,57,13,}; 冒泡排序的基本思路(由小到大):a[0]与a[1]开始比较,如果前者大于后者,则前后进行交换,否则不做任何操作,这一步过后,较大的一个值 ...

  8. ‘个体在外系统’简、繁架构(原创规律)

    '个在外'规律体系用途:'个在外'中各单规律可以构建起宇宙模型,可以很方便的建立起确定的思维系统模型,国家体系模型等.智能体运行时都要用的规律.就像元素周期表中的元素构建起太阳系一样 '个在外'在各领 ...

  9. 小i机器人袁辉夏季达沃斯建议:公共服务智能化从数据打通开始,先简后繁

    7月1日至3日,2019年夏季达沃斯论坛在大连举办.今年论坛的主题为"领导力4.0:全球化新时代的成功之道",来自全球120多个国家的近2000名政界.商界.学术界人士齐聚大连.约 ...

  10. 大写的“极简” H3C MSG360系列网关

    随着互联网+时代的到来,传统百兆端口.性能单一.配置繁琐的网关设备已无法满足中小企业对网络的需求,市场逐步向可快速交互.便捷管理.安全可靠的网关靠拢.对此,新华三自主研发了一款高性能产品--H3C M ...

最新文章

  1. 18000 台服务器整整瘫痪了三天:因 BoltDB 糟糕的设计
  2. 和功率的计算公式_电机电流的计算公式是什么,具体怎么计算?
  3. 双11终于来了,你盖楼了吗?
  4. 数值计算方法(六)——迭代法求解线性方程组
  5. 问题记录——com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure...
  6. 提高开发效率,eclipse的常用快捷键、旁门左道、系统错误小贴士
  7. Word AddIn编译出现LINK2001 _main
  8. CentOS7 - 给VMwear Workstation 15安装VMwear tools
  9. 页面优化必须知道的技能:meta标签中的http-equiv属性使用介绍
  10. MySQL误删数据找回和恢复
  11. ADS内Smith Chart Utility消失了Palette如何找回
  12. YourTTS论文阅读
  13. Quora的技术探索
  14. 手机上微信总是说无法连接服务器错误代码,微信登录失败怎么办|微信登录失败常见提示及处理方法...
  15. 管理远程团队的4种方法
  16. SVG公众号排版 | 快速解决视频号美化出现“点赞信息”
  17. 解决word转PDF文件时图片位置改变和字体格式改变的问题
  18. 【WebGIS】leaflet入门-自定义MarkerIcon
  19. 计算机硬件专业叫什么作用,计算机硬件的五大功能是什么呢
  20. 看不见的竞争 带宽优化

热门文章

  1. 用Python给你的头像加口罩,加圣诞帽,加红心,加加加
  2. 华为p10刷原生android,华为p10怎么刷机 华为p10刷机方法【详细介绍】
  3. 系统规划与管理师——IT服务规划设计
  4. Zune vs iPod
  5. html支持bmp格式,bmp和jpg的区别是什么?
  6. 雨木林风linux系统,雨林木风开源系统下载-ylmf.os(雨林木风开源系统)v4.0 正式版 - 极光下载站...
  7. QQ空间扫码登录协议 Java
  8. php右下角弹窗代码,2019畅言最新去除隐藏右下角弹窗广告!代码添加彻底隐藏畅言右下角广告代码...
  9. windows下的文件服务器监控
  10. nginx SPDY 堆缓冲区溢出