![](https://img-blog.csdnimg.cn/2019092610192690.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MQL4
MT4平台的MQL4语言
漆学军
精通MT4平台的MQL4语言,编写DLL用的是PowerBASIC语言。想要了解我的更多信息请关注微信公众号“漆天编程”。
展开
-
【漆学军】如何实现鼠标指哪根k线,COMMENT就显示哪根k线的内容?
刚刚在我们的《从零开始学MQL4编程》微信答疑群里有个学员提问:“comment 函数显示的内容,可以让它跟着鼠标移动变化吗? 鼠标指哪根K线,就显示那根K线的comment的内容”下面我来解答一下:这是可以实现的,通过捕获图表事件里面的鼠标移动事件可以实现。第一步:新建EA之后,在EA的初始化函数里面,启动鼠标移动事件 ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,0,true);int OnInit() {//--- set prope原创 2022-05-31 13:22:04 · 898 阅读 · 0 评论 -
【漆学军】函数如何返回两个或更多值?
一般情况下,一个函数就返回一个值,比如说获取最后下单时间,获取账户盈亏等等。但在有些时候,我们想通过一个函数中的for计算,同时获取多单持仓数量和空单持仓数量,应该怎么做呢?直接上例子://+------------------------------------------------------------------+//| 函数返回两个值.mq4 |//|原创 2022-04-19 11:59:45 · 983 阅读 · 0 评论 -
漆学军:RSI信号,RSI<20做多,RSI>80做空的例子程序
《MT4EA编程速成教程》中第33页习题:第三题:将交易信号改成RSI,RSI<20做多,RSI>80做空。RSI指标又叫相对强弱指标,是一个很简单的指标,只有一个缓存,获取RSI的值跟移动平均线差不多,这道题只需要获取位移为1的RSI指标值即可。一单一结的EA模版中,信号函数修改如下即可:int signal() { int res=0; //获取指标值 double rsi=iRSI(NULL,0,6,PRICE_CLOSE,1); if(原创 2021-10-27 01:07:13 · 1357 阅读 · 0 评论 -
漆学军:MACD交叉,金叉做多,死叉做空的例子程序
《MT4EA编程速成教程》中第33页习题:第二题:将交易信号改成MACD交叉,金叉做多,死叉做空。这道题的重点和难点就是获取MACD的指标值,MACD和之前的抛物线指标或者均线指标不一样,稍微复杂些。MACD指标有两个缓存数组,一个显示的是柱体部分,一个显示的是红色虚线。double iMACD( string symbol, // 品种 int timeframe, // 时间周期 int原创 2021-10-27 00:56:34 · 1532 阅读 · 0 评论 -
漆学军:均线交叉,金叉做多,死叉做空的例子程序
《MT4EA编程速成教程》中第33页习题第一题:将交易信号改成均线交叉,金叉做多,死叉做空。金叉死叉,需要获取小均线两个点,大均线两个点,然后比较四个点的大小变化,就能判断金叉和死叉。当黄色为小均线,红色为大均线 当 A>B 并且 C>D 就是金叉。当黄色为大均线,红色为小均线 当 A>B 并且 C>D 就是死叉。在之前一单一结的EA基础上,只需要修改signal()这个信号函数。代码修改如下:int signal() { in...原创 2021-10-27 00:35:02 · 1533 阅读 · 0 评论 -
漆学军:EA编程如何点击按钮打开网页
今天来分享一个比较常用的系统api的小功能。我们在编写好了ea之后,有时候想要通过点击图表上的按钮或者图片后,能够打开指定的网页,网页就显示本EA的详细使用方法,甚至可以看到介绍视频,这样,更利于用户对这个ea的了解。编写这个ea的时候,首先是创建要给按钮,这个非常简单,使用MQL语言参考里面自带的函数即可。创建按钮的函数如下:bool ButtonCreate(const long chart_ID=0, // chart's .原创 2021-10-24 22:32:04 · 950 阅读 · 0 评论 -
漆学军:永远保持订单距离最大盈利处10个点(移动止损)
《MT4EA编程速成教程》中第23页习题2、永远保持订单距离最大盈利 10 个点,也就是多单随着行情上涨,止损上移,行情下跌, 止损不变,空单相反。这种操作就是标准的移动止损,移动止损和平保不同,平保只修改一次止损,移动止损会不断将多单的止损往上移动,空单的止损往下移动。移动止损不仅仅只是保护了账户不亏损,而且还能随着行情变化,将利润扩大。在MT4平台上,实现这样一个EA非常简单,只需要短短几十行代码,下面提供完整全部代码,供初学者学习参考。//+------------...原创 2021-10-08 21:44:09 · 1052 阅读 · 6 评论 -
漆学军:盈利30点将止损提高到盈利15点处(平保)
《MT4EA编程速成教程》中第23页习题1、盈利30点将止损提高到盈利15点处。这种操作,有时候也叫平保,为了避免将盈利的单子变亏损了所做的一个保护。这种操作非常有用,很多人都会用到,通过编写ea来实现这种功能,非常简单,短短几十行代码就能实现。下面是这个程序的全部代码,感兴趣可以复制下去保存为EA就可以运行。//+------------------------------------------------------------------+//|原创 2021-10-08 21:11:42 · 610 阅读 · 0 评论 -
漆学军:学EA编程,熟练掌握这108个英文单词就够了
编程离不开英语,写代码的时候,我也不喜欢总去切换输入法,一会英文一会儿中文,很多人说自己英文不好,怕学不了编程,现在我们来总结下到底哪里需要用到英文。1、常用的语法关键字,比如下表前半部分,是必须记住的,大小写都不能错,这部分大约50个单词。2、其他关于交易平台的单词,比如订单,帐号之类,是便于使用系统功能,是经常要用到的,也是50多个,基本就够了,随着编程经验增加,可认识的更多,这部分单词只需要记住前面三个字符,因为编辑器有自动提示。下面是我整理的必学的108的单词。if 如果原创 2021-07-13 16:01:43 · 4337 阅读 · 0 评论 -
漆学军:MT4平台量化交易故事
1、我姓汤,是一名宝妈,83年生于重庆,因为性格内向,不善言辞,大学毕业后,在家里炒股票和期货,2008年结婚后跟随老公移民到了加拿大,我开始接触mt4平台的ea交易,因为考虑到要带孩子,ea自动交易非常适合我,我果断决定要学习ea编程,我在外汇火线论坛上看到了一个网名叫云开(现在是漆老师)的人比较活跃,总在讨论ea编程方面的问题,于是,我找到了他,让国内的朋友帮我给他支付了2000元学费,后面一个多月里,我天天研究代码,天天缠着老师给我讲解,给我指点,很快,编写ea对我来说,已经没有什么难度了...原创 2021-07-13 15:55:25 · 4072 阅读 · 2 评论 -
【漆学军】如何快速成为一个很厉害的人?
如何快速成为一个很厉害的人?方法是唯一的,就是要不断找更厉害的老师,然后向他学习。《射雕英雄传》里面的郭靖,一开始的师傅是江南七怪,后面是全真教的马钰,最后是洪七公,学会了降龙十八掌,一跃成为一代大侠。为什么这些师傅愿意教他,因为他是名门之后,有钱大方,人品又好。杨过,学了好几个师傅的功夫,牛逼哄哄之后,博采众长,自创顶级功夫“黯然销魂掌”,如果没有那么多年的基础,让他一开始就自学,自创顶级武功,可能吗?不可能。所以,靠自学,是不能快速成为一个很厉害的人的。我们上幼儿园,小学,中学,大学,跟的都是普原创 2021-07-06 00:51:03 · 389 阅读 · 0 评论 -
【漆学军】你搞了这么多年EA编程,到底有没有稳定盈利的EA?
几乎每天都会有人问我,“你搞了这么多年EA编程,到底有没有稳定盈利的EA?”不想聊的时候,我会直接说“没有”。心情好的时候,我会不痛不痒地多说几句有。不是不想说,也不是忽悠。是因为不同的人对于“稳定盈利”的标准不一样,回答起来可能会陷入无穷无尽的争吵当中。什么是稳定盈利?A说一年内每个月都赚钱就是稳定盈利;B说三年内每个月都盈利就是稳定盈利;C说没有五年的实盘盈利记录算不上稳定盈利;D说连续三个月每月盈利大于5%,回撤小于20%就是稳定盈利;......原创 2021-06-29 13:01:29 · 1483 阅读 · 2 评论 -
妥妥的世界第一:为什么MT4软件的地位无法撼动?
我是漆学军,2004年接触MT3.83的时候,还没有太在意,直到2005年,MT4正式推出之后,我就再也没有真正爱上别的软件,即便是MT4的升级版本MT5,我也一直提不起太大兴趣。外汇市场上有很多不同类型的交易软件,包括占领了大部分外汇交易市场的MT4、MT5、cTrader和各个机构自行研发的交易软件等等,然而,尽管竞争者很多,已经发布十六年了的MT4平台却依旧称得上是“交易软件之王”,市场占有率稳居世界第一,在外汇市场上具备不可动摇的地位。MT4平台简介MetaTrader 4(MT4)..原创 2021-06-24 12:30:46 · 2115 阅读 · 4 评论 -
【漆学军】MT4编程技巧:如何获趋势线的角度?
大家好,我是漆学军,今天我又来分享MT4编程技巧。有时候为了判断趋势强弱,我们想知道趋势线的角度,角度越接近90度,表示趋势越强,这个时候更需要重点关注。在MT4里面,实现这个并不难。void OnStart() {//--- //ObjectDelete(0,"1"); double a=Close[2]; double b=Close[1]; Print("a = ",a," b = ",b); ObjectCreate(0,"1",OBJ_TREND原创 2021-06-23 14:09:40 · 1189 阅读 · 1 评论 -
【漆学军】EA编程速成教程(5)增加一个下单条件:抛物线指标
这次,我们在之前课程的基础上,给EA增加一个下单条件,也就是抛物线指标转向的时候,下单。具体是,抛物线从k线下面转到k线上面去之后,第二根k线开盘价卖出,如图中标记5处。反之,抛物线从k线上面转到k线下面去之后,第二根k线开盘价买入,如图中标记1处。...原创 2021-06-07 22:04:16 · 1439 阅读 · 1 评论 -
【漆学军】如何编写健壮的一键平仓脚本
在MT4的各种快捷工具中,一键平仓脚本是非常有用的一个小脚本程序。在面对账户有几十个甚至几百个单子的时候,一个一个去手动平仓将会是非常痛苦麻烦的事情,使用yi'jian原创 2021-06-07 15:38:17 · 2785 阅读 · 3 评论 -
【漆学军】分享一个自定义K线的指标的源码
实现方法:在每根k线上绘制柱子,粗柱子作为K线主体,细柱子作为k线引线。效果如图:原创 2021-06-05 17:09:55 · 5015 阅读 · 2 评论 -
【漆学军】EA编程速成教程(4)修改止损止盈
本课程的目标是给之前下的单子添加止损止盈价。首选添加外部参数input int SL=600; //止损点数input int TP=200; //止盈点数给单子添加止损止盈有两个方法:一、在下单函数里面带上相应的止损和止盈。OrderSend函数有11个参数,其中第六个(stoploss)和第七个(takeprofit)分别是止损价和止盈价。int OrderSend(string symbol, // symbolint cmd, // operat原创 2021-06-02 23:51:39 · 2495 阅读 · 1 评论 -
【漆学军】EA编程速成教程(3)设置EA属性
在上一节课里面,我带大家编写了第一个可以下单的EA,虽然比较简单,但是你应该充分了解了下单函数的功能。今天我们来学习EA的属性部分。#property copyright "云开"#property link "https://qixuejun.ke.qq.com/"#property version "1.00"#property strict将鼠标光标放到property中间,然后按键盘功能键F1。(property英文是属性的意思。)这是MQL4参考,..原创 2021-06-02 23:45:26 · 1002 阅读 · 0 评论 -
【漆学军】EA编程速成教程(2)第一个程序:下单
我们写EA的目的就是为了自动下单做交易的,所以本课我们就来好好学习下MQL4语言中下单函数OrderSend的使用。1 OrderSend字面意思,订单发送,这个函数的功能就是用来向交易服务器发送一个下单指令,返回值为下单成功后的单子的订单编号。 intOrderSend( stringsymbol,//交易品种,比如“EURUSD”,"XAUUSD" intcmd, ...原创 2021-06-02 23:31:08 · 1660 阅读 · 0 评论 -
【漆学军】EA编程速成教程(1)准备知识
EA编程速成教程要求你必须了解并具备如下一些知识和能力:第一、需要具备一定的编程基础,最好是熟悉任意一门传统编程语言,比如说C语言,VB等等,都可以,需要了解程序的逻辑。第二、你需要了解MT4是什么,MT4就是MetaTrader 4外汇交易软件。第三,你需要了解EA是什么,我相信您肯定知道什么是EA,EA就是Expert Adviser(智能交易系统),EA就是使用MQL4语言编写的程序,EA程序使用在MT4软件上面,可帮你自动进行外汇黄金期货交易,至于什么时候交易,怎样买卖,什么时候平仓等等原创 2021-06-02 23:16:54 · 3502 阅读 · 2 评论 -
【漆天编程】交易员为什么一定要学会EA编程
01人工智能时代已经到来2016年3月,举世闻名的人机围棋大赛开幕,当今世界围棋第一人李世石对战谷歌公司开发的机器人阿尔法狗,结果是李世石连败两局,标志着人工智能时代真正到来。早在十年和二十年前,人工智能就已经分别战胜了象棋和国际象棋的世界冠军,机器人的智慧一直在快速发展着,时至今日,人工智能在各行各业都开始超越了人类智慧了。首选是在最多流水...原创 2019-12-23 14:59:44 · 1329 阅读 · 0 评论 -
【漆天编程】如何用代码设置图表是否置前景
我们在图上显示信息的时候,经常会被K线图挡住。看我编写的功能面板,也被K线挡住了。如何解决呢?其实也很简单,禁用图表置前景。操作步骤1.在图上按F8,调出图表属性窗口。操作步骤2.取消“图表置前景”前面的勾,然后按确定。这样操作之后,K线就被我们的面板挡住了,效果如下:但是今天我要说的是怎样通过代码来设置图表是否置前景。ChartSetInteger(0,CHART_FOREGROUN...原创 2019-12-23 14:55:43 · 353 阅读 · 0 评论 -
【漆天编程】分享我自用多年的马丁策略EA完整源码(winkey),曾半年将我账户翻3倍
马丁策略一直都是具有很大争议的,因为有太多的人使用这个策略爆仓了,但是依然有人使用这个赚钱了。那些使用这个策略爆仓了的人会认为马丁策略不行,是垃圾,我是不同意这种说法的。比如说过马路有人被车撞死了,你是要取消马路,还是要取消汽车呢?吃饭有人被噎死了,那就不要在吃饭了吗?正因为上面问题的答案都是不能,所以我们也不能说马丁策略是垃圾策略。天下大势,分久必合,合久必分。外...原创 2019-12-23 14:49:10 · 11001 阅读 · 16 评论 -
【漆天编程】MT4平台如何打开10分钟或者2小时的图表周期
我们都知道,MT4平台默认只提供了九个时间周期 分别是1分钟,5分钟,15分钟,30分钟,1小时,4小时,日线图,周图和月图。 但有时候为了技术分析的需要,我们需要能打开10分钟图,或者2小时图这种独特的图表用来加载指标分析行情,这个时候怎么做呢? 第一步:生成历史数据 MT4安装好了之后,自带了一个周期转换脚本如图: PeriodConverte...原创 2019-11-22 19:24:34 · 7637 阅读 · 4 评论 -
【漆天编程】最牛逼的均线交叉指标,做出了EA历史数据测试器的效果
首先看效果图:指标描述:这是一个做趋势的指标, 两根均线交叉, 在开仓点和平仓点把中间的差价表现出来了,还有最近2000根K线(这个数可以自己调整)一共产生了多少个交叉信号,一共有多少个盈利的信号,多少个亏损的信号,最大连续亏损多少次,最大连续盈利多少次,盈利最多的信号盈利了多少,亏损最多的信号亏损了多少。指标源码://+------------...原创 2019-11-22 19:10:07 · 4304 阅读 · 0 评论 -
【漆天编程】Mql4语言编程教程--如何自定义图表背景图片
【注】本文于2015年首发于我本人的QQ空间(https://user.qzone.qq.com/80364276/blog/1439353992),刚刚又有人问到这个问题,我就把这篇文章发到这里来了,希望更多的人看到,并且学会怎样在K线图上面显示背景图,并且还能随意修改背景图片。 MT4越来越花哨了,MT4图表上面都可以显示图片了,甚至还可以玩俄罗斯方块和扫雷了。 ...原创 2019-10-12 15:24:16 · 2130 阅读 · 0 评论 -
【漆天编程】MT4和MT5有什么区别?这是我见到过的最好的回答
外汇交易员可以自由选择使用交易平台。然而这种选择与外汇经纪人的选择是相互联系的,因为不是每一种交易平台都是由经纪人提供的。此外,一些经纪商与某些外汇交易平台没有真正的兼容性,从而需要通过一个渠道来提供对它们的访问,所以MT4/MT5是一个连接外汇经纪人交易系统的软件。Metatrader 4(以下简称MT4)交易平台是非常有名的交易软件,可以说是设定了行业标准。它不直接通过平台提供交易,不...原创 2019-09-28 16:24:13 · 4257 阅读 · 1 评论 -
【漆天编程】MetaTrader软件的前世今生
MT4(MetaTrader4)是市场行情接收软件,由迈达克软件公司在2005 年 7 月1 日正式发布,提供免费试用,有中文界面。它包括先前系统所有的特点,并且对这些功能和组成部分进行了进一步的介绍和重组。 它适用于外汇, CFD 以及期货市场。MetaTrader4 服务器明显在使用率,工作表现,和可信度方面要优于早先的系统。在2004年我用的还是MetaTrader3.83,编程语言...原创 2019-09-28 16:18:26 · 663 阅读 · 0 评论