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

MT4编程入门:市场数据取值  

| 发表于 2020-8-17 07:00:06 | 显示全部楼层 |复制链接
最后由 EA学院 于 2020-7-13 21:58 编辑

一、预定义数组(MT4已经定义好的,可以直接使用)

开盘价、最高价、最低价、收盘价、成交量等历史数据,每根K线蜡烛都各有一个,所以必须用数组来解决问题,MT4有几个预定义数组:

开盘价Open[]、最高价High[]、最低价Low[]、收盘价close[]、成交量Volume[]、所属时间Time[]

类型为双精度double型(即精确小数)

这里有一个位置的问题,右边第一根K线蜡烛(即最新的蜡烛)的编号为0,第二根蜡烛编号1,第三根蜡烛编号2,也就是说从右向左倒着数过去。

Open[0]、High[0]、Low[0]、Close[0],表示最新的开盘价、最高价、最低价、收盘价
Open[1]、High[1]、Low[1]、close[1],表示第2根K线蜡烛的开盘价、最高价、最低价、收盘价
Open[2]、High[2]、Low[2]、close[2],表示第3根K线蜡烛的开盘价、最高价、最低价、收盘价
Open[3]、High[3]、Low[3]、close[3],表示第4根K线蜡烛的开盘价、最高价、最低价、收盘价
Open、High、Low、close,表示第i+1根K线蜡烛的开盘价、最高价、最低价、收盘价
以此类推。。。。。。

注意:这些是数组,用的是方括号。

二、预定义变量

买入价、卖出价是实时价格,MT4用预定义变量Ask和Bid表示,数值类型为double双精度

还有一些预定义变量,如:

Bars 表示图表中的蜡烛数,类型为int整数型
Digits 表示当前货币对的小数位,类型为int整数型,无日元币对为4,有日元币对为2,黄金石油等一般也为2
Point 表示当前货币对的点值,类型为双精度double型,无日元币对为0.0001,有日元币对为0.01。与Digits正好相反。

三、指标函数

1、价格、成交量、时间

它们都有三个参数:货币对名、K线周期、位置序号

开盘价:iOpen(symbol,timeframe,shift)    双精度double型
收盘价:iClose(symbol,timeframe,shift)    双精度double型
最高价:iHigh(symbol,timeframe,shift)    双精度double型
最低价:iLow(symbol,timeframe,shift)    双精度double型
成交量:iVolume(symbol,timeframe,shift)  双精度double型
所属时间:iTime(symbol,timeframe,shift)  日期时间datetime型
K线周期为:1分钟图(PERIOD_M1)、5分钟图(PERIOD_M5)、15分钟图(PERIOD_M15)、30分钟图(PERIOD_M30)、
1小时图(PERIOD_H1)、4小时图(PERIOD_H4)、日线图(PERIOD_D1)、周线图(PERIOD_W1)、周线图(PERIOD_W1)、月线图(PERIOD_W1)

例:

   iOpen("USDJPY",PERIOD_H1,0)   表示美元兑日元1小时图最新K线蜡烛的开盘价
   iClose("EURUSD",PERIOD_H4,2)  表示欧元兑美元4小时图第3根K线蜡烛的收盘价
   iClose("GBPUSD",PERIOD_H1,i)  表示英磅兑美元1小时图第i+1根K线蜡烛的收盘价
   iHigh(NULL,0,0)     既不指定商品,也不指定K线周期,用在谁就是谁,用在哪就是哪

2、移动平均值。双精度double型

iMA(symbol, timeframe, period, ma_shift, ma_method, applied_price, shift)

参数共7个,分别为:商品名称、K线周期、均线周期、均线偏移、平均模式、价格种类、位置

均线周期:10天平均线的均线周期为10,20天均线的均线周期为20

均线偏移:均线位置整体左右移动的位置偏移量

平均模式:简单移动平均(MODE_SMA)、指数移动平均(MODE_EMA)、平滑移动平均线(MODE_SMMA)、线性加权移动平均线(MODE_LWMA)

价格种类:收盘价(PRICE_CLOSE)、开盘价(PRICE_OPEN)、最高价(PRICE_HIGH)、最低价(PRICE_LOW)、中值(PRICE_MEDIAN)、5(PRICE_TYPICAL)、6(PRICE_WEIGHTED)

例1:iMA("EURUSD",PERIOD_H1,20,0,MODE_SMA,PRICE_CLOSE,0)

表示:欧元1小时图上,以收盘价计算的,20小时简单移动平均线,最新K线所对应位置的值

例2:iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,2)

表示:在当前商品、当前K线周期图表上,以收盘价计算的,20(天)指数移动平均线第3根K线所对应位置的值

其他如MACD指标、威廉指标、RSI、SAR、布林线等指标取值都与移动平均线指标相类似

3、在数组中求元素的移动平均值。双精度double型

iMAOnArray(数组名, 总数, 平均周期, 均线偏移, 平均模式, 位置)

这也与iMA函数差不多,不过数据源变为数组

从数组中不但可以求得移动平均值,还可以求得RSI等指标值

4、求自定义指标的值

我们经常自己编一些自定义指标,可用iCustom函数来取得自定义函数的值

iCustom(商品名,K线周期,自定义指标名称,自定义指标参数1,参数2,参数3,,,自定义指标线编号,位置)

如果自定义指标只有一根指标线,则自定义指标线的编号为0。

如果自定义指标有多根指标线,则第一条自定义指标线的编号为0,第二条为1,第三条为2。。。

例如:iCustom(NULL,0,"mymacd",12,26,9,2,0)   (12,26,9)为自定义指标mymacd的三个参数

表示:求当前图表中,自定义指标mymacd(12,26,9)的第3条指标线在最新位置的值

提示:这里只是有代表性地列了几个函数,详细请查阅《MT4编程手册》
如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论27

wang
DDD
| 发表于 2020-8-17 08:27:57 | 显示全部楼层
谢谢分享 学习了
举报

点赞 评论 使用道具

cong
DD
| 发表于 2020-10-21 18:44:21 | 显示全部楼层
有中文MT4编程手册吗
举报

点赞 评论 使用道具

juehun
D
| 发表于 2020-10-22 22:22:46 | 显示全部楼层
谢谢分享!!!
举报

点赞 评论 使用道具

wangddtt
CC
| 发表于 2021-2-20 09:30:50 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

latage
未及格
| 发表于 2021-10-6 20:55:55 | 显示全部楼层
学习学习
举报

点赞 评论 使用道具

kozeng
D
| 发表于 2021-12-15 11:02:17 | 显示全部楼层
准备测试,感谢分享
举报

点赞 评论 使用道具

交易者
DDD
| 发表于 2022-1-10 11:13:29 | 显示全部楼层
谢谢分享,学习了
举报

点赞 评论 使用道具

liguangxing2007
DDD
| 发表于 2022-3-13 18:26:33 | 显示全部楼层
没有看懂
举报

点赞 评论 使用道具

daerwushen
DD
| 发表于 2022-3-13 19:01:11 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

ea12213
C
| 发表于 2022-3-13 20:33:43 | 显示全部楼层
学习学习
举报

点赞 评论 使用道具

zhq320
DD
| 发表于 2022-3-14 16:53:11 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

a451780267
DDD
| 发表于 2022-3-14 23:29:22 | 显示全部楼层
谢谢分享,学习了
举报

点赞 评论 使用道具

cdebjihong
DDD
| 发表于 2022-3-15 00:09:52 | 显示全部楼层
谢谢分享
举报

点赞 评论 使用道具

jrml
未及格
| 发表于 2022-3-15 00:32:30 | 显示全部楼层
谢谢分享!
举报

点赞 评论 使用道具

nanaliu
CC
| 发表于 2022-5-30 15:59:23 | 显示全部楼层
看看。。感谢分享。。。。
举报

点赞 评论 使用道具

liubing1986
D
| 发表于 2022-5-30 16:16:24 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

liuqian8888
D
| 发表于 2022-6-1 13:05:56 | 显示全部楼层
基础干货,没毛病
举报

点赞 评论 使用道具

pengjhl
CCC
| 发表于 2022-6-1 13:29:43 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

mamapi
DD
| 发表于 2022-6-1 13:35:05 | 显示全部楼层
感谢分享
举报

点赞 评论 使用道具

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

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