MT4/MQL4入门到精通EA教程第三课-MQL语言常用函数(三)-K线取值常用功能函数
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线取值常用功能函数相关推荐
- MT4/MQL4入门到精通EA教程第六课-MQL语言常用函数(六)-常用订单功能函数
bool OrderClose() 平仓函数,该函数有5个参数 bool OrderClose( int ticket, // 订单号double lots, // 手数double price, / ...
- MT4/MQL4入门到精通EA教程第七课-MQL语言常用函数(七)-指标取值功能函数
double iMA() 获取MA指标的数据,该函数有7个参数 double iMA( string symbol, // 交易品种int timeframe, // 图表周期int ma_perio ...
- MT4/MQL4入门到精通EA教程第四课-MQL语言常用函数(四)-K线取值常用函数
MQL中有一组"函数",他们长得跟其他函数不一样,是不一样的函数,就是下面这几个功能强大的"函数" Open[].Close[].High[].Low[].Ti ...
- MT4/MQL4入门到精通EA教程第八课-MQL语言常用函数(八)-常用时间功能函数
时间功能函数详解 TimeCurrent(); //返回服务器当前时间 TimeDayOfWeek();//返回当前时间星期几 TimeGMT(); //返回GTM时间 TimeGMTOffset() ...
- MT4/MQL4入门到精通EA教程第一课-MQL语言常用函数(一)OrderSend()函数
int OrderSend() 功能用于新开一个订单,它有11个参数.` int OrderSend( string symbol, // 交易品种int cmd, // 买单.卖单类型 double ...
- MT4/MQL4入门到精通EA课程第二课-常用的功能函数
AccountBalance(); // 返回当前账户的余额. AccountEquity(); // 返回当前账户的净值. AccountFreeMargin(); // 返回当前账户可用预付款. ...
- MT4/MQL4入门到精通外汇EA教程第一课 认识MetaEditor
1.打开MetaEditor.打开MT4交易平台在导航条找到下图单击,或者在桌面的快捷键打开. 2.认识MetaEditor 主要的文件结构 ①EA程序文件夹,存放mq4文件,以及编译的可执行文件e ...
- MT4/MQL4入门到精通外汇EA自动交易教程-MQL语言常用函数
AccountBalance(); // 返回当前账户的余额. AccountEquity(); // 返回当前账户的净值. AccountFreeMargin(); // 返回当前账户可用预付款. ...
- grread使用例子 lisp_AutoLISP从入门到精通初级教程(新手必备);
<AutoLISP从入门到精通初级教程(新手必备);>由会员分享,可在线阅读,更多相关<AutoLISP从入门到精通初级教程(新手必备);(36页珍藏版)>请在人人文库网上搜索 ...
最新文章
- 知识图谱实践篇(五):KBQA Demo
- mysql unlix下载_系统(PHP的MySQL的版本:showmov3.0)平台:Win和Linux / unlix其他发
- 求1~n的全排列组合
- 防止Entity Framework重复插入关联对象
- 手动创建Github pull request
- 通过Java和Spring Boot应用程序将Gmail用作SMTP服务器
- Google Chrome Native Messaging开发实录(二)Chrome Extension扩展
- 从零开始,跟我一起做jblog项目(一)引言
- ThinkPHP教程
- 0pyqt获取textEdit控件的文本
- 基于JavaWeb的血站管理系统
- C语言操作符详解------移位操作符
- TensorFlow错误:fatal error: tensorflow/core/framework/op.h: 没有那个文件或目录(PointCNN遇到的错误)
- MySQL间隙锁(幻读解决原理)
- YOLO系列网络训练数据准备工具—Yolo_mark
- 无需任何软件,简单步骤教你手机投屏到电脑
- 顶级操盘手的的6大高效自律习惯
- python编程语法教程-Python编程基础语法快速入门
- 软件试用期的实现原理
- macOS 提示“***.app打不开”解决办法