① 我想做一个外汇EA,但是自己不会写程序做外汇EA,有什么好办法呢
要学会做EA必须学会基础的编程语言,具体编写EA需要使用MQL4语言,有更简单的方法,搜索myEAtrade,这个网站可以根据自己的策略不用编程就能生成EA了,还是很强大的,推荐使用
② 请教如何在EA里调用自己写的指标
自己写的指标可以用自定调用函数在EA里调用,具体的函数是
int iCustom(
string symbol, // 交易品种名称
ENUM_TIMEFRAMES period, // 周期
string name // 文件夹/自定义指标_名称
... // 指标输入参量列表
);
比如用这个函数调用21日MA均线指标做个列子
double MA_handle=iCustom(NULL,0,"Moving Average",
21,
0,
MODE_SMA,
PRICE_CLOSE // 使用收盘价
);
③ c语言能编写外汇指标和ea吗
如果懂得C语言的话,那么外汇指标和EA的编写就相当容易了。基于MT4的MQ语言是非常接近C语言的。
④ MT4如何新建指标脚本及EA文件
一、MT4自定义指标保存在C:\Program Files\MetaTrader 4\experts\indicators这个目录中, 该目录中主要有二种回类型的文件, 一种是mq4文件,这是答MT4自定义指标的源码文件,是一种高级语言文件,可以人工编写修改,机器不能直接执行
⑤ 如何编写简单的EA 交易和自定义指标
要编写程序(“EA 交易”、“指标”或“脚本”),您可以启动 MetaTrader 5 客户端,从 Tools(工具)菜单选择MetaQuotes Language Editor(MetaQuotes 语言编辑器),或按 F4 键。
在 MetaEditor 5 窗口中,从 File(文件)菜单选择 New(新建),或按 Ctrl+N。
在 MQL5 Wizard(MQL5 向导)窗口中选择您想要创建的程序类型:
接下来您可以指定程序名称、作者信息,以及在启动程序后向用户要求的参数。
随后,系统将创建程序模板(“EA 交易”、“指标”或“脚本”),您可以对其进行编辑或填入代码:
程序就绪后,必须对其进行编译。要编译程序,从 File(文件)菜单选择 Compile(编译),或按 F7 键:
如果程序代码没有错误,系统将创建扩展名为 .ex5 的文件。之后,您可以将此新的“EA 交易”、“指标”或“脚本”附加至 MetaTrader 5 客户端的图表进行执行。
MQL5 程序是一个运算符序列。每个运算符以分号 ";" 结束。为您方便起见,您可以为代码添加注释,注释位于符号 "/*" 和 "*/" 之中,或在代码行末尾的 "//" 后。MQL5 是“面向事件”的编程语言。这表示当特定事件(程序启动或终止、新的报价到来等)发生时,客户端启动用户编写的相应函数(子程序),以执行指定的操作。客户端具有以下预定义事件:
Start 事件在“脚本”运行时发生(仅用于“脚本”)。它将会引起 OnStart 函数的执行。MQL4 对应物 -“脚本”中的 start 函数。
Init 事件在“EA 交易”或“指标”启动时发生。它将会引起 OnInit 函数的执行。MQL4 等价物 - init 函数。
Deinit 事件在“EA 交易”或“指标”终止时发生(例如,从图表分离后、关闭客户端等)。它将会引起OnDeinit 函数的执行。MQL4 等价物 - deinit 函数。
NewTick 事件在当前金融工具有新的报价到来时发生(仅用于“EA 交易”)。它将会引起 OnTick 函数的执行。MQL4 对应物 -“EA 交易”中的 start 函数。
Calculate 事件在指标启动(在 OnInit 函数执行后)以及当前金融工具有新报价到来时发生(仅用于“指标”)。它将会引起 OnCalculate 函数的执行。MQL4 对应物 -“指标”中的 start 函数。
Trade 事件在订单执行、修改或删除,以及在开仓、持仓修改或平仓时发生(仅用于“EA 交易”)。它将会引起 OnTrade 函数的执行。MQL4 中没有该事件和函数的对应物。
BookEvent 事件在“市场深度”改变时发生(仅用于“EA 交易”)。它将会引起 OnBookEvent 函数的执行。MQL4 中没有该事件和函数以及“市场深度”的对应物。
ChartEvent 事件在用户使用图表时发生:在图表窗口处于焦点状态时点击鼠标和按下按键。该事件也会在创建、移动或删除图形对象等时发生(用于“EA 交易”和“指标”)。它将会引起 OnChartEvent 函数的执行。MQL4 中没有该事件和函数的对应物。
Timer 事件在计时器触发时定期发生,如果计时器已使用 EventSetTimer 函数激活的话。它将会引起OnTimer 函数的执行。MQL4 中没有该事件和函数以及计时器的对应物。
使用变量前,必须指定每个变量的数据类型。相比 MQL4,MQL 5 支持更多的数据类型:
bool 用于存储逻辑值(true 或 false)。该数据类型占用 1 字节内存。
char 用于存储从 -128 到 127 的整数值。该数据类型占用 1 字节内存。
uchar 用于存储从 0 到 255 的无符号整数值。该数据类型占用 1 字节内存。
short 用于存储从 -32,768 到 32,767 的整数值。该数据类型占用 2 字节内存。
ushort 用于存储从 0 到 65,535 的无符号整数值。该数据类型占用 2 字节内存。
int 用于存储从 -2,147,483,648 到 2,147,483,647 的整数值。该数据类型占用 4 字节内存。
uint 用于存储从 0 到 4,294,967,295 的无符号整数值。该数据类型占用 4 字节内存。
long 用于存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数值。该数据类型占用 8 字节内存。
ulong 用于存储从 0 到 18,446,744,073,709,551,615 的无符号整数值。该数据类型占用 8 字节内存。
float 用于存储浮点值。该数据类型占用 4 字节内存。
double 用于存储浮点值,通常为价格数据。该数据类型占用 8 字节内存。
datetime 用于存储日期和时间值,它是从 01.01.1970 00:00:00 开始流逝的秒数。该数据类型占用 8 字节内存。
color 用于存储颜色信息,它包含三种颜色分量的特性 - 红色、绿色和蓝色。该数据类型占用 4 字节内存。
enum 代表枚举。它允许指定某种限制类型的数据集。该数据类型占用 4 字节内存。
string 用于存储文本字符串。它的内部表示为 8 字节结构,包括含字符串的缓冲区大小以及指向该缓冲区的指针。
选择合适的数据类型对于获得最佳性能及合理的内存使用十分必要。在 MQL5 中有个称之为结构的新概念。结构将逻辑相关的数据结合在一起。
⑥ 如何让EA读取自定义指标
一、MT4自定义指标保存在:\Program Files\MetaTrader 4\experts\indicators这个目录中,
该目录中主要有二种类型的文件,
一种是mq4文件,这是MT4自定义指标的源码文件,是一种高级语言文件,可以人工编写修改,机器不能直接执行,但能在MT4启动时自动编译为ex4可执行文件。
另一种就是ex4文件,这是MT4自定义指标的可执行文件,由mq4文件编译得到。
mq4文件必须编译为ex4文件才能被MT4执行。
但ex4文件是机器码文件,人工不可修改
另外还有一个文件是mqlcache.dat,它用来保存目录中的文件信息,如果MT4无法自动编译,只要删除此文件即可解决问题
mq4文件编译为ex4可执行文件有两种方法:
1、MT4启动时,会自动把此目录中的mq4文件编译为ex4文件。
2、用MQ语言编辑器打开mq4文件,点一下“编写”按钮,即可生成ex4文件
二、下载保存mq4文件、ex4文件
在论坛上我们经常看到有mq4文件、ex4文件可供下载,我们只要把它们保存到C:\Program Files\MetaTrader 4\experts\indicators这个目录,也就是下面这个目录中,就可以了。如果下载的是ex4文件,那可以直接调用;如果是mq4文件,则需要重启动MT4,让系统自动编译生成ex4可执行文件。如果下载的是rar、zip等类型的压缩文件,还必须下载后解压到此目录才能使用。
三、将源码保存为源码文件
在论坛上,我们也经常能看到指标源码贴在网页上,但没有mq4、ex4等文件可以下载,只能复制源码。此时需要我们自己动手将源码保存为源码文件,那也没关系,非常地简单,多点几下鼠标就搞定。
1、打开MQ语言编辑器
2、在MQ语言编辑器中新建一个文件,文件名一定要输,别的随便操作都没关系。
3、删除新文件里面的所有内容,成为一个空文件,
4、接着我们就可以将网页上源码复制粘贴进来
试着点一下“编写”,如果左下角出现“0错误,0警告”,那说明源码没问题,编译通过了,成功生成了ex4可执行文件
5、还有很重要的一点,就是要把源码文件保存到正确的目录中
保存后,再点一下编写。
到此,源码保存完成。
当然,我们也还有另的办法:
可以打开一个原已存在的mq4文件,然后另存为你需要的文件名,再删除文件中的所有内容成为空文件,把网页上的源贴到文件中保存即可
也可以在记事本中新建一个文件,把网页上的源码贴进记事本,然后取个文件名保存到上面提到的目录,不过文件后缀必须输入mq4,保存类型选择“所以文件”
四、mt4程序调用自定义指标
⑦ 如何编写简单的EA 交易和自定义指标
要编写程序,您可以启动 MetaTrader 5 客户端,从 Tools(工具)菜单选择MetaQuotes 语言编辑器,或按 F4 键。在 MetaEditor 5 窗口中,从 File菜单选择 New(新建),或按 Ctrl+N。在 MQL5 Wizard窗口中选择您想要创建的程序类型。
⑧ 我不会写程序,但是我希望能编写EA,听说EA生成器,但不知道有什么作用哪里可以申请使用
"
EA生成器一般只需几步操作,就可以生成转换成EA程序。但是一般外汇平台,只有几个大平台能够提供EA生成器的,不知道你使用的是哪个平台?我用的是GKFX捷凯金融,作为一个什么代码都不懂的,只要自己设置操作一下,就能编辑出EA程序很实用的。建议你去看一下。"
⑨ 我要调用这个指标做一个EA,怎么调用
不能调用其他指标里的某个函数可以iCustom调用其他指标的序列数组内容。同理,你可以将其输出为序列数组,然后调用。
⑩ 一些比较好的EA和指标源代码
童话世界的东西,没有稳定盈利的DA,放弃,寻找自己的交易模式,形成体系,做成EA,进行辅助交易,