double iOpen();

double  iOpen( string           symbol,     // 交易品种 int              timeframe,  // 周期 int              shift       // K线柱 );

iOpen()函数拥有三个参数,symbol、timeframe、shift

函数功能是返回特定交易品种指定周期的某一根K线柱的开盘价

double iClose();

double  iClose( string           symbol,          // 交易品种 int              timeframe,       // 周期 int              shift            //  K线柱 );

iClose()函数拥有三个参数,symbol、timeframe、shift

函数功能是返回特定交易品种指定周期的某一根K线柱的收盘价

double iLow();

double  iLow( string           symbol,          // symbol int              timeframe,       // timeframe int              shift            // shift );

iLow()函数拥有三个参数,symbol、timeframe、shift

函数功能是返回特定交易品种指定周期的某一根K线柱的最低价

double iHigh();


double  iHigh( string           symbol,          // symbol int              timeframe,       // timeframe int              shift            // shift );

iHigh()函数拥有三个参数,symbol、timeframe、shift

函数功能是返回特定交易品种指定周期的某一根K线柱的最高价

datetime iTime();

datetime  iTime( string           symbol,          // symbol int              timeframe,       // timeframe int              shift            // shift );

iTime()函数拥有三个参数,symbol、timeframe、shift

函数功能是返回特定交易品种指定周期的某一根K线柱的时间

long iVolume();

long  iVolume( string           symbol,          // symbol int              timeframe,       // timeframe int              shift            // shift );

iVolume()函数拥有三个参数,symbol、timeframe、shift

函数功能是返回特定交易品种指定周期的某一根K线柱成交量

脚本实例


//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() { double open=iOpen("USDCHF",PERIOD_H1,0);    //返回K线柱的开盘价double close=iClose("USDCHF",PERIOD_H1,0);   //返回K线柱的收市价double low=iLow("USDCHF",PERIOD_H1,0);     //返回K线柱的最低价double high=iHigh("USDCHF",PERIOD_H1,0);    //返回K线柱的最高价datetime time=iTime("USDCHF",PERIOD_H1,0);    //返回K线柱的时间long volume=iVolume("USDCHF",PERIOD_H1,0);  //返回K线柱的成交量Print("Current bar for USDCHF H1 open: ",open);Print("Current bar for USDCHF H1 close: ",close);Print("Current bar for USDCHF H1 low: ",low);Print("Current bar for USDCHF H1 high: ",high);Print("Current bar for USDCHF H1 time: ",time);Print("Current bar for USDCHF H1 volume: ",volume); }

代码功能为 日志打印出USDCHF一小时周期的当前K线柱的开盘价、收盘价、最低价、最高价、时间、成交量。

参数详细说明

(“USDCHF”,PERIOD_H1,0)

“USDCHF”, 交易品种
PERIOD_H1, 时间周期是一小时
0 , 当前K线柱


结果显示所有的数据都是0,也就是说没有读取到数据,原因是图表窗口中没有打开的USDCHF图表,因此读取不到数据。

现在随便打开随便USDCHF一个周期的图表,打开一个USDCHF5分钟周期图表。


可以看到日志里边打印出了USDCHF的一组数据

接着验证下数据的正确性,切换回USDCHF一小时图表,点击数据窗口查看

可以看到 Low、Close、Volume 跟日志的数据是不一样的。

为什么呢???

因为我读取的是当前K线柱的数据 除了Open 其他的数据都还是在波动中的。

当然,程序是需要严谨的,不容一丝错误。

现在修改一下参数,读取前一根K线柱的数据

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() { double open=iOpen("USDCHF",PERIOD_H1,1);    //返回K线柱的开盘价double close=iClose("USDCHF",PERIOD_H1,1);   //返回K线柱的收市价double low=iLow("USDCHF",PERIOD_H1,1);     //返回K线柱的最低价double high=iHigh("USDCHF",PERIOD_H1,1);    //返回K线柱的最高价datetime time=iTime("USDCHF",PERIOD_H1,1);    //返回K线柱的时间long volume=iVolume("USDCHF",PERIOD_H1,1);  //返回K线柱的成交量Print("Current bar for USDCHF H1 open: ",open);Print("Current bar for USDCHF H1 close: ",close);Print("Current bar for USDCHF H1 low: ",low);Print("Current bar for USDCHF H1 high: ",high);Print("Current bar for USDCHF H1 time: ",time);Print("Current bar for USDCHF H1 volume: ",volume); }

就是把参数0改成1。

0代表当前K线柱,依次往前K线柱的参数是1、2、3·······

继续执行一下脚本


打印出了一组数据

数据窗口验证一下


各项数据对的上,说明没有错。

工欲善其事,必先利其器,交易最重要的是遵守规则,严格执行。关注公众号,学习MQL入门到精通EA教程,学习更多EA编程,畅写属于自己的EA,锻造属于自己的神兵利器。

MT4/MQL4入门到精通EA教程第三课-MQL语言常用函数(三)-K线取值常用功能函数相关推荐

  1. MT4/MQL4入门到精通EA教程第六课-MQL语言常用函数(六)-常用订单功能函数

    bool OrderClose() 平仓函数,该函数有5个参数 bool OrderClose( int ticket, // 订单号double lots, // 手数double price, / ...

  2. MT4/MQL4入门到精通EA教程第七课-MQL语言常用函数(七)-指标取值功能函数

    double iMA() 获取MA指标的数据,该函数有7个参数 double iMA( string symbol, // 交易品种int timeframe, // 图表周期int ma_perio ...

  3. MT4/MQL4入门到精通EA教程第四课-MQL语言常用函数(四)-K线取值常用函数

    MQL中有一组"函数",他们长得跟其他函数不一样,是不一样的函数,就是下面这几个功能强大的"函数" Open[].Close[].High[].Low[].Ti ...

  4. MT4/MQL4入门到精通EA教程第八课-MQL语言常用函数(八)-常用时间功能函数

    时间功能函数详解 TimeCurrent(); //返回服务器当前时间 TimeDayOfWeek();//返回当前时间星期几 TimeGMT(); //返回GTM时间 TimeGMTOffset() ...

  5. MT4/MQL4入门到精通EA教程第一课-MQL语言常用函数(一)OrderSend()函数

    int OrderSend() 功能用于新开一个订单,它有11个参数.` int OrderSend( string symbol, // 交易品种int cmd, // 买单.卖单类型 double ...

  6. MT4/MQL4入门到精通EA课程第二课-常用的功能函数

    AccountBalance(); // 返回当前账户的余额. AccountEquity(); // 返回当前账户的净值. AccountFreeMargin(); // 返回当前账户可用预付款. ...

  7. MT4/MQL4入门到精通外汇EA教程第一课 认识MetaEditor

    ​1.打开MetaEditor.打开MT4交易平台在导航条找到下图单击,或者在桌面的快捷键打开. 2.认识MetaEditor 主要的文件结构 ①EA程序文件夹,存放mq4文件,以及编译的可执行文件e ...

  8. MT4/MQL4入门到精通外汇EA自动交易教程-MQL语言常用函数

    AccountBalance(); // 返回当前账户的余额. AccountEquity(); // 返回当前账户的净值. AccountFreeMargin(); // 返回当前账户可用预付款. ...

  9. grread使用例子 lisp_AutoLISP从入门到精通初级教程(新手必备);

    <AutoLISP从入门到精通初级教程(新手必备);>由会员分享,可在线阅读,更多相关<AutoLISP从入门到精通初级教程(新手必备);(36页珍藏版)>请在人人文库网上搜索 ...

最新文章

  1. 知识图谱实践篇(五):KBQA Demo
  2. mysql unlix下载_系统(PHP的MySQL的版本:showmov3.0)平台:Win和Linux / unlix其他发
  3. 求1~n的全排列组合
  4. 防止Entity Framework重复插入关联对象
  5. 手动创建Github pull request
  6. 通过Java和Spring Boot应用程序将Gmail用作SMTP服务器
  7. Google Chrome Native Messaging开发实录(二)Chrome Extension扩展
  8. 从零开始,跟我一起做jblog项目(一)引言
  9. ThinkPHP教程
  10. 0pyqt获取textEdit控件的文本
  11. 基于JavaWeb的血站管理系统
  12. C语言操作符详解------移位操作符
  13. TensorFlow错误:fatal error: tensorflow/core/framework/op.h: 没有那个文件或目录(PointCNN遇到的错误)
  14. MySQL间隙锁(幻读解决原理)
  15. YOLO系列网络训练数据准备工具—Yolo_mark
  16. 无需任何软件,简单步骤教你手机投屏到电脑
  17. 顶级操盘手的的6大高效自律习惯
  18. python编程语法教程-Python编程基础语法快速入门
  19. 软件试用期的实现原理
  20. macOS 提示“***.app打不开”解决办法

热门文章

  1. 网络上的两台计算机如何互相访问,家里两台电脑通过路由器共同上网,怎样设置可以让两台电脑互相访问?...
  2. 文献导读—绪论(1)
  3. 【数学】n次方差公式及证明方法
  4. flink-cdc初体验
  5. sumproduct()学习
  6. systrace的简单介绍及使用
  7. 玩转腾讯首发Linux内核源码《嵌入式开发笔记》
  8. 注意的分类和规律以及生理机制
  9. 今日感悟——11.2
  10. 程序员如何提高10%的效率2