粉丝85获赞93

嗯,大家好,欢迎大家学习 m q 幺四零基础课程。本课程所使用的工具是外汇交易的 m t 四平台,面对的对象呢是对量化交易感兴趣的外汇交易者。 即使你有少量的编程经验或者是没有编程经验,那么在学习完本课程后,你基本上都能够呃达到去编写一些基于指标的 ea 策略的一个能力啊。今天是本课程的第一课,我首先为大家介绍一下什么是 mql four 编程语言。 呃, m q 幺 four 呢,是一种新的内置型程序,用来编写交易策略的。这种语言可以创建你自己的智能交易系统,使自己的交易策略能够完全地自动的执行。而且 m q 幺四呢,还能够自定义客户指标 呃脚本和数据库,它包含了大量可以分析当前及历史报价所必需的函数,以及一些基本的运算和逻辑操作, 并内置了一些基本的指标和操作命令。呃, matter edit four 集合了编写 mql four 呃程序代码的各种语句,它能帮助使用者方便地写出 规范的代码。 matter cause language dictionary 是 m q l four 语言的帮助工具,它包含了我们在使用工程中所有可能用到的一个函数啊, 也就是说呢,我们这个呃编写这个 mql four 的这个程序呢?呃,直接使用到我们这个 mt 四自带的一个内置的编写的这样一个软件就够了啊,今天就先介绍到这里。

大家好,欢迎来到五二零量化教育学堂,从今天开始呢,我来教大家编写 mt 四教育软件当中的这个 ea 程序, 就是我们所谓的这个智能教育程序。那么我们在这个软件当中啊,点击这个 mk 四语言的编辑器,我们可以点击这个新建,我们新建一个 ea, 我们点下一步。 好,今天呢我们主要是来给大家去讲一讲这个均线的短周期和长周期和交叉这么一个策略。我们前面也在这个期货里面给大家讲过,也在这个股市当中啊,给大家讲过,那么 这种策略他到底可不可行呢?那我们必须要把它写成这个交易策略啊,进行一个长达,比如说十年或者二十年的数据的一个测试,至少从大概 上来说,我们要看一下他到底能不能有这个使用的价值。我们可以新建一个,比方说均线大小周期交叉策略。好,我们直接点击下一步。好,我们可以先把这些啊,先把它穿出掉,这样看起清爽一点。 好,我们看一下啊,这个时候呢,我们就有三大块啊,这个就是我们这个一个椰城区的这个三大部分。那么第一部分呢,其实就是我们这个初始化函数,比方说我们想去在这个椰城区第一次运行的时候,记录一下这个椰运行的时间,我们 可以在这个呃,伊利坦数里面啊,进行一个这个数据的获取。好,下面这个就是我们这个耶程序,比如说他结束的时候呢,我们需要拴住一些数据,比如说一些全剧变量,是不是 那么这个时候就可以在这个函数里面去执行,那么下方这个就是这个函数,是吧?就像说我们这个左驱动函数,我们所有这个代码应该就是写在这个函数里面,一旦有个这个价格出现过户呢,他就会执行一遍我们这里面的一个函数题, 估计不跟大家讲太多了,我们直接啊来给大家去编写一下这个十军线和这个二百五十五军线交叉的策略。好,我们定一个变量打波类型的,比如说取名为 m a 一小周七, 好,哎哎,没好,这就是我们调取这个均线值的这个函数啊,第一个的话就是我们货币对 珍宝,就是我们当前图表当中啊,这个均线的尺啊,就是像这个意思啊。第二个就是我们这个周需要我们选择零,零,就是代表我们这个可以适用于所有周期,比如说日限啊,三十分钟都可以。 好,第三个就是我们这个获取多少日的这个均线啊,比如我们可以定一个外部变量吧,这样我可能方便一点,比如说我印他类型啊,小周期选择这个十 印的,大周期我们选择二百五十五啊,如果说后期的话,我们想在外部去更改这个参数,我们也可以,是吧这个放在前前面啊,我们也可以去更改这个参数。 好,下方我们直接小周七。好,下面一个参数就是 需不需要这个频率,我们这里不需要频率,就是选择零。好,再下一个参数就是我们可以来看一下啊,点击 f 一啊,这个参数就是我们选择是什么样的把计算方式,我们以这个 smx 啊这个计算方式。 好,再下一个就是以这个什么价格啊进行一个平均,我们可以直接选 c 啊,就是以这个收盘价啊来进行平均,但我们这里还是按照 f 一啊来看一看,你也可以直接啊复制粘贴啊,这个也可以,我们接下来就获取哪一根 k 线所对应的进圈值。 那么我们当前 k 线他属于零号 k 线,那么零号 k 线所对的军线他是不确定的,所以我们就不能选零号 k 线,我们就必须要以这个一号 k 线啊为七准来获取这个军线的词,我们所选择一, 好,我们下方啊就直接复制一下,我们这里改一个名字叫这个大把大周期,这里也改一下,好,我们重新再复制粘贴。 这条我们要改一个二,就是我们当前 k 线是零,那么往前一根 k 线就是一,再往前 k 线是二,那么为什么我们要这么去做数据获取啊?等会我们再跟大家去讲, 好,我们来做一个判断啊,如果说当我们这个小周期啊,就是我们前一根开线的小周期,他如果 说是大于我们这个大周期的,于是十均线大于我们这个二百五十五均线,说明什么?说明现在他已经是处在一个上升趋势当中了,是不是?并且呢, 我们前一根啊,就是一号 k 线的,再前一根,我们判断一下这个小周期,如果说是小于我们这个大周期的,这个什么意思呢? 就是相对是什么相对?我们当前呢就是一号 k 线所对应的这个巨线指,他其实是已经金叉了吗?但是我们二号 k 线还属于一种下行趋势, 当二号 k 线是下行趋势,一号 k 线是上行趋势,其实他们就是完成了这么一个金叉的动作,后期呢我们也会把这种判断金叉的这个动作呢,直接封装成为一个自定义函数,这样方便我们去做判断, 尤其我们在股市当中可以用这个函数来判断金叉死叉,是吧?包括在区货当中呢,他也有这种判断金叉死叉的函数,都可以封装,到时候呢我们也可以把这种判断直接封装在一个 我的库里面啊,我的库里面其实就是我自己写的很多自定义函数,说明在下方啊,会掉入一些函数,那么在调之前我们必须要引入一个我的库啊,我的库好编一下。好,这个地方呢,我们必须要把这个大括号输上去, 我们编一下没问题,那么接下来就要对他进行一个开单操作,在这个金叉的时候我们应该去开这个多单,在开多单之前呢,我们应该要判断一下我们手中是否使用这个空单,如果有的话,我们是不是应该把它平上掉,是不是?那如果说没有订单 的话,我们就直接开一个多单了吗?是吧?这样是很方便的。那么怎么来判断我们手里面是不是有订单呢?我们在我的这个库里面寻找这个函数,已经把函数已经封装好了,我们来扶持一下。嗯,如果说这个订单识别号等会跟大家去抢,什么意思? 好,后面这个就是这个订单的类型,我们首先要来判断一下,就是他有没有这个订单,我们可以来看参数啊,零的话应该是参数是八,八就代表什么意思啊?就寻找是否有这个订单,如果说没有的话,我们就直接开这个多单了,是不是我们就来把它参数改成八, 他如果说是 boss 是吧?就说明他这个时候他没有这个订单。是不是没有订单的话,我们很简单呢,我们就直接开仓,那么这个地方我们就 i oppo 这个就可以直接来开单了啊。第一个就是我们这个开仓的类型,我们 op 这个喜欢开多单,那第二个就是我们这个订单的手速,我们可以把定一个外部变亮吧,这样可以方便一些一点。 那么手术的话我们还是用打波类型的,我们可以直接手术,比如说零点一手, 我们顺便就把把这个定价十一号也给他写出来,等于一二三四五六, 我们怎么给大家讲什么意思?好,我们看第二个参数就是手术,我们直接可以写手术。好,下一方一个参数就是我们开单的价格,就是二十个价格吧。好,再下一个参数就是我们 对这个订单进行一个注时,我们可以申报,再加上一个 我们速算,比如说这个是多单啊,这样便于我们区别啊,比如说我们在这个货币对欧元对美元当中呢,我们就直接写欧元对美元多单啊,比如说欧元对英镑多单啊,这样这样便于我们进行一个区分。 好,后面这个就是我们订单识别号,那么这个订单识别号什么意思啊?比方说我们这个程序当中呢,可能有很多的策策略是吧?不同的策略他肯定有不同的开单,那么 这样的话我们时长单里面就比较多,那么我们就必须要用这个定价十六号去区分啊,比如说我们啊去判断一下定单十一号是不是一二三四五六,如果是的话,我们就知道他是通过这个均线交叉啊开的单啊,就这么简单的道理,我们打一个封号, 那么这个就是在我们目前没有持长单的情况下,我们去开多单,那如果说有持长单呢?那就是我们看下有没有这个持长的空单,如果有的话,我们先平仓空单,然后再去做这个多单,是不是好接下来继续判断啊,如果说我们把复制一下 啊,这个地方我们选择参数十一,我们可以来看看啊一的话就是寻找是不是有这个磁仓的空单,而如果说找到了,那么就是真的条件是不是找到的情况下呢?我们需要对他进行一个平仓操作,那平仓的函数的话,我们来看一看, 好,这个就是平仓 啊,这个就是订单类型,因为这个时候呢我们已经找的是这个空单,是不是我们说我们这个地方要平仓的就是我们空单。 好,后面这个就是我们订单识别号,就是是不是凭一二三四五六啊这个订单 好,当这个订单平仓过后呢我们要做什么呢?就是平仓空单,然后我们要开多单,是不是我们把这个上方复制下来就可以了, 好,这样我们就完成了这个金叉的开单啊,金叉如果说在没有订单的情况下,我们直接开多单,如果说有这个空单的情况下,我们先把这个空单给他平摊掉,然后再开多单啊,这是没问题的。好,我们接下来进行一个视察的判断, 我们直接复制一下啊,这个就是改一个大小啊,这个就是大,于是吧,这样的话就形成一个死叉。同样呢我们还是要来判断有没有这个 订单啊,如果说是没有的话,我们就直接开空啊,很简单了。 好,第一个参数就是 opco 就是开空档,那么第二个参数就是手速啊,同样的也是零点一首,接下来就是这个价格啊,必的价格卖 好。第四个参数就是他的住址加上一个,我们可以写一个空单, 这个参数就是订单识别号,打个封号。好,这个就是在没有订单的情况下,我们直接去开空单啊,我们接下来继续来判断有没有这个多单把这个参数应该是选择零啊,零的话 就是去寻找是不是有这个多单,我们可以看一下这个地方有注视是不是明天是是否寻找有这个多单。好,如果说我们找到了我们这个多单,那么我们接下来就要进行一个多单的平仓,我们可以把平仓函数复制一下啊,这个地方改一下这个手速。 好,平,拆完了过后呢,我们就直接开空,我们编一下,我们看一下啊,是不是应该少了一个括号。好,这个时候呢我们就把这个处理啊,给他编写完了,那编写完过后呢,我们就进行一个测试啊,来看一看他到底效果怎么样。 我们找到这个均线大小周期交叉策略,跑步时间是在两千零一年啊,就是到这个 二零一五年啊,已将近将近有十五年的时间了,我们来看看他的一个效果啊。首先呢我们来看一下这个复盘显示,复盘显示就是我们来看一下他金叉和死叉是不是开单正确的啊?我们点击开始测试, 我们这里选择这个大小周期的模板拖动一下。好,大家看一下,这个时候他就已经啊,但我们再往后拖动一下吧。 好,我们看下这个地方呢,就是我们这个十军线上传二百五十五军线手插这个地方就开了一个多单,是不是那么前期这个时差的话,他就应该啊,就是因为这数据可能不是很准确吧,往后面走的话数据会肯定会准确一点,我们再看一看 打开没有啊,当他这个地方发出这个时差的时候,他就会去做个空单啊,什么?大家看啊,这个地方是空单啊,我们在后后面看看, 好这个地方他发生精彩的时候就买了这个多单啊,他这个交易动作是没有问题的,咱们接下来我们就来对他进行一个数据的测试,然后我们就把这个付款显示给他取消掉,我们点击开始我们直接看这个禁止图, 大家看看他交易的结果也不是特别的好啊,就说他有的时候成功的时候他也是赚的挺多的,但是他连续那个下探,最终的话,我们看一下 通过十五年的数据测试的话,他是出现亏损的啊,他并没有达到一个盈利,但是还没有就说完全亏完吗?是吧?所以我们要去想啊,他是什么原因导致这个亏损的,那我们可以在这个复盘显示当中啊,去对这个策略啊进行一个调整,我们可以来 看一看啊,怎么来进行一个处理的调整?我们可以把它快点。比方说像这种情况下,我们在这个位置去买的话,他如果说向上运行 到一段时间,我们可以把设定一个点位,是吧?当他运行到这个点位的时候,我们可以先去平仓一半,平仓一半,他如果说再一次形成时差的话,那么我们再出掉,至少我们有一半的仓位是盈利的,是吧?就算是我们最后时长下来有亏损,但盈亏复补过后了,咱们 对我们的胶原也是非常有大的帮助的,我们可以来看一看啊,继续运行一下,大家看没有,这个时候他其实就是形成了一个死差,我们会出现亏损往这个地方买,这个地方卖,那 亏损的距离就比较大了,是吧?如果说我们在这个位置进场过后呢?往上比如说这些位置,我们平常一半过后,就算他在这个地方形成死叉火, 我们亏损率不是特别大。但还有一种情况就是说呢,我们直接可以设一个子银钻,因为这个大级别趋势一旦形成金差过后,他多多少少会有一个上冲,那么这个上冲如果说我们设定一个点位的话,那么他达到这个点位的概率就非常非常大了,我们直接 就在这个位置把它平昌掉,所以说你后期是长势低,我们完全没有关系,我们可以继续来看一看。比如像这种情况啊,他视察到目前的位置,他都一次一个引力的状态了,是不是?那如果说我们设定一个,比如说到这些位置我们就平昌了,所以说你后期是不是下跌上涨和我们都没有关系, 咱们下一节课呢,就来给大家去做这么一个策略的调整,就是到了一个位置的话,我们考虑是什么呢?呃,先平半仓,平半仓过后呢我们再来看一下时差,这种情况下啊,能不能达到一个盈利啊?如果说不行的话,我们直接设定一个止盈的点位, 到了这个指引点我们直接品尝。那么这样的话我们再来啊看一下这个策略啊,能不能就是达到一个比较好的盈利的效果啊?今天关于这个十局限号二百五十五天交叉的策略,我们先给大家讲解到这个地方。好如大家喜欢我的视频,欢迎点赞留言转发,我们下期再见。

咱们来这个一起探讨一下 m t 五的呃,客户端的这个使用方法啊。回测,呃,咱们业余大师呢,最近正在这个不断的更新 m t 五的功能模块啊,呃,主要就是用于 m t 五上,对吧? m t 五呢,比 m t 四要强大一些,那只大家只知道说它强大,甚至有些人说都不知道 m t 五和 m t 四有什么区别,今天咱们仔细说一下。 嗯就是主要呢 m k 五在做历史回测的时候呢,呃它是可以,可以,这个怎么说呢?就是说你比如说你是对冲策略,你同时交易着很好几个品种,对吧?两个以上品种 在 mt 四里面呢,在回测是不支持的对吧?不支持这种回测,只能支持这个单品种的回测。那么 mt 五呢,它是支持的,不管你有几个品种啊,它都能给你显示出来,并且呢在这个在跑回测的时候呢,会持续的给你去执行。那另外呢就是 mt 五啊, mt 五呢,它分着,呃分着这个好几种账户啊,它是不一样的。那比如说呢? 呃你开户的时候啊,这个是一般,一般情况下咱们默认默认开这个对冲账户。什么叫对冲账户呢?也就是说 mt 五呢,它是这个有非对冲账户和对冲账户。那非对冲账户是什么意思呢?比如说我下了一张多单, 我下一张多单之后我想下空单的时候呢,那你必须要把你的多单平掉,你才能下空单,也就是说两头啊,多空两头,只允许你持有持有一一头的这个订单,要么你持有多单,要么持有空单啊,不允许你同时持有多单和空单,这是这个非对称账户,那我我估计啊没有人会选择这种账户的,对吧? 一般都是这个。呃,一般都是对冲账户啊,因为我们很多时候可能需要又下多又下空。 嗯,那是这样,一种那个一种一种模式啊。那另外回测的时候呢,来点哪啊?先咱们先看一下就是这个 ea 吧。 ea 放在哪呢?和 mt 四一样啊,和 mt 四一样。打开啊,打开这 mql 五,打开这个。呃,这三个里面呢 可以随便放放进去啊,一般我我在这里面放着啊。呃,就是把音乐文件放在刚才这个路径里面,这个路径呢和 mp 四的路径是一样的。其实啊,回测的时候啊,点这个查看啊, ctrl 加 r 这个策略测试打开看一下,初次打开呢,它会有一个这个页面, 这底下这几个是选项啊?是选项,你说是怎么测试?什么类型的测试?呃,咱们先咱们就说一个这个咱们常用的啊,第一个呢是单线程的,那单线程的呢?我也不知道他,我也具体不知道他是什么意思,他是显示是单线程,但是在测试的时候呢,你多货币测试的话,他也能给你测试,也能跑起来啊,也同也会同时在这个好几个货币里面下单。 那这个第二个呢是可视化啊,可视化,也就是说打开之后那多线成可视化,一般测试用这个,那第一条里面咱们在这选择 ea 啊,选择 ea, 然后下面选择品种啊,选择品种选择这个是 时间周期,选择时间周期,那下面呢是日期对吧?有全部啊,最近一个月,去年和自定义周期。要是选择自定义周期是从哪看?我这显示的是二零一七年一月一日到二零一九年八月十五日,对吧? 呃,玩 mt 四的可能有朋友会说那个数据不全怎么办呢?对吧?呃, mt 五呢,这一点就比较省心啊,你不管你设多长的时间,那只要他有这个数据, 对吧?他就会,你在点测试的时候呢他就会给你自动下载啊,自动下载不需要你去管,自动下载并且数据质量非常高啊。单品种测试,一般一般情况下单品种测试的这个回测质量都在百分之九十九以上。呃多货币回测呢, 我试的是大概最低大概也就是百分之九十四啊,甚至甚至会会高,最低是百分之九十四。好像是是这样的,所以说不需要去考虑数据问题,直接设置一个周期,设置一个时间就可以开始了他就会自动帮你下载。呃 下面这呢还能选择这个延迟啊?还能选择延迟?呃咱们在实际交易中呢,它是存在延迟的对不对?存在延迟的,但是在在 mt 四夜测试的时候呢是无延迟零延迟。这个地方呢你也可以设置零延迟,你也可以设置相应的啊,相应的这个延迟。呃有延迟会怎么样呢?有延迟那就是更 更接近于实盘了呗,对吧?因为实盘是有延迟的,有延迟那个就能更好的说明这个 ea 在遇到延迟的时候他的表现。那下面呢是和 mpc 一样的啊,点选这个?每次报价这个或者是什么区点或者是什么乱七八糟的啊, 和 mt 四是一样的入金。这下面是那个用多少用多少资金开始测啊?你的资金是什么?是货币是什么,对吧?那杠杆,然后底下有个可视化啊,勾去勾上之后点开始他就是可视化了。那你 a 的参数在哪测呢?下面有个输入切换过来啊,我这个测试里面呢就一条啊,就一条,对吧? 有一条这是选择的选择周期的啊,如果说你这个里面没有没有这个输出参数的话,这里面是不显示的。那选择好之后,你比如说啊,咱们来测一个, 选好之后,下面左下角,哎,右下角有一个开始点击开始,哎,等等这个图的话没有没有勾上,咱们把它勾上, 点击开始他会单独跳出来一个,这个单独跳出来一个框啊,单独跳出来一个框显示可以看到我这个呢是三个货币的,他这只出现了一个,现在稍等一下,他会出现,他才会再出现。 嗯,正在正在加载啊,正在准备好,准备好了可以看到这是三个合币,也就是说这个策略是三个合币的。下单的时候可以看到啊,呃,他的这个下单方法和咱们这个交易的时候类似,他会把把这个你的单量显示在这下面是多空这个盈亏,对吧?订单的注视等等之类的时间他都会显 在这,就和这个实际交易差不多。呃,哪一个品种什么的都会在这显示啊,就这样这样就跑起来了,这就算是。呃,切换过来这个图表这呢我们可以看到他是这个曲线啊,一直在一直在变动的一个曲线,这是运行日志, 可以说 m t 五回测是非常强大的啊。 ok, 那这个使用呢?咱们就暂时先说到这啊,使用暂时先说到这,更多的功能呢,各位自己去发掘吧,对吧?我我也是刚开始这个研究 m t 五啊,我也对 m t 五并不是太熟悉。好了,那今天就到这,下节再见。

