想制作一个交易机器人,您需要一个交易系统
于金融市场中交易存在许多风险,其中就包括最为严重的一种 – 做出错误交易决策的风险。每一位交易者都梦寐以求有一个交易机器人,它能始终保持良好状态,而且不会受制于人类的诸多弱点 – 恐惧、贪婪和没耐心。
每一位新人都想得到或创建一套明晰且严谨的交易系统,该系统可以各种算法的形式呈现,而且完全摆脱例行操作。可能吗?
交易系统是进入市场的一个必要前提,而且,该系统当然也要具备盈利能力。新人进入市场时,通常都会被难以掌握的海量信息所淹没。查书和上交易者论坛会有些许帮助。
遗憾的是,并非所有作者都是成功的交易者,也不是所有的成功交易者都写书。具体的网络资源中,有许多资源的创建都仅仅出于其所有者自身赢利的目的,因为拿自己的钱去交易可比做做预测、教教交易系统困难多了。
每一位交易者均应独立通过交易系统创建的所有阶段。套用一句流行说法:您使用哪种系统进行交易都没关系,重要的是您一定要遵照该系统进行交易。否则,市场中的交易就会变成一场结果可以预料的赌博了。
交易机器人与外汇交易
外汇交易市场被认为拥有极大的流动性。而且,与许多其它市场不同的是,它允许每天 24 小时交易。由于它会提供大量的交易工具,许多交易者都试图制作专门针对外汇交易市场的交易机器人。
然而,有怀疑者提出:所有的货币对均彼此紧密关联,造成市场中的波动性非常低。但其反对者则称每个货币对都有其自身特性,而低波动性亦通过一个大杠杆得到了补偿。
在任何情况下,外汇交易工具都因制作交易机器人而备受关注,而且大多数自动化交易的支持者都会磨练其货币对的相关技能。
MetaTrader 4 与 MetaTrader 5 交易终端专为轻松开发自动化交易系统而设计,同时其界面亦方便手动交易。
如何着手制作一个交易机器人?
构建一套自动化交易系统有多种方法。我们只挑选几个重要的来讲述。
第一种方法依赖于数学。开发人员尝试创建一种可考虑许多因素的方程。此方法的坚实理念基础在于:价格变动通过某种模型进行管理,而此模型可通过可用的历史数据找到。
大多数情况下,此方法的追随者会过多地偏重于数学,而对市场所知甚少或者根本没有兴趣。对于他们来讲,市场被完全抽象化,只是一种智力游戏而已。此方法通常意味着多年的研究与开发,而以一套有效的自动化交易系统的形式出现的明确结果,也并没有多重要。
第二种方法基于对市场规律的研究。在图表上显示各种各样技术分析数据的同时,却无意了解价格上涨或下滑的原因。此方法的优势在于无需特定的数学知识,且不对市场的驱动力量做出任何假定。
它在研究交易时最明晰、最方便。它在那些受到广泛认可的交易者中最为流行。而此方法的劣势则在于必须持续跟踪所有必要的交易品种。
交易者迟早会开始考虑交易过程的自动化,以及于此阶段出现的首先值得考虑的问题 – 尝试以各种算法的形式表达正式化交易规律时的复杂性。某些情况下,尝试订购交易机器人的交易者不能描述出交易规律,所以找不到与程序员的共同点。
第三种方法基于创建一个“黑盒”的尝试 – 基于采用专用软件与数学包中广泛普及的即用型工具的神经网络。即便是对于新人而言,创建一套带有人工智能元素的自动化交易系统也是一项兴奋而又有挑战性的任务,因为它既不需要深厚的数学功底,也不用有编程经验 – 利用视觉辅助即可完成一切。
交易者应懂点技术指标基础知识,掌握制备必要价格数据的能力,拥有使用神经网络的某些程序包的相关经验。此方法的主要缺点在于:通过这种使用神经网络的专用工具获得的交易机器人,实际上是一种“黑盒”。交易者不清楚其工作原理,而且一般来讲,此机器人在哪个市场阶段问题最多也无法预知。
程序员们通常都会选择第四种方法 – 他们会完全从头开始制作交易机器人,而不会在手动交易上花时间。还有什么理由要手动交易呢?您可以花几个月的时间制作一个机器人,然后就可以收获自己努力的成果了。
但是“一分耕耘,一分收获”。大多数情况下,程序员都会采用一种熟悉的编程语言来创建所有必要的基础结构,而不仅仅是制作一个交易机器人 – 价格数据的获取与处理、图表与指标的可视化呈现、历史数据相关策略测试的自定义方式等等。
他们会在这一过程中积累很多经验。但大多数情况下,这种经验并不能让他们接近最终目标 – 创建一套自动化交易系统。而且,即便是创建了一个交易机器人,也不能保证它会盈利。那么,如果程序员想要编写另一套交易系统,又会怎样呢?深度重组与新的编程错误会不可避免。
还有第五种方法 – 购买一套交易机器人形式的即用型交易系统。这种情况下,交易员则充当操作员或调试者。此方法会节约大量的时间(无需学习许多新事物),且允许交易者快速登入自动化交易的殿堂。
此方法的主要缺点亦源于其优势 – 您并不清楚交易机器人的运行原理及其结构。而且就算销售商为您提供了所部署交易系统的详细说明,您也永远不会了然于胸。
然而,除了银行存款外,上面提到的任何一种方法,都不能给您绝对的保障。但是对于那些中意市场交易和增加其个人资产的途径的人们来讲,银行存款算不上特别合适的解决方案。
交易者自动化交易的最佳途径是什么?
如上所述的 5 种方法中,每种都有自身的优势,且对应着某些确定类型的交易者。如没有良好的数学基础,您不太可能会选择第一种方法(市场分析描述)。同样,您也不太可能会根据神经网络从制作交易机器人着手。但是,上述两种方法都非常激动人心,也是很好的智力锻炼。
下面我们只讨论第二种方法,也是已被视为经典的一种方法。自动化交易的追随者通常都会选此方法,因为学习交易基础时,技术分析仍属关键知识领域。
第二种方法还有一个优势,那就是当您在手动交易上花时间并获得市场感后,您即已经对技术分析工具有了很好的理解。此外,您还具备了于更高水平编制交易策略程序或创建神经网络的能力。
制作交易机器人的第一步
想要制作一套自动化交易系统,您需要编程技能和交易请求处理的所有盘根错节的知识。但是,您可以先从即用型“EA 交易”开始 – 源自免费代码库的交易机器人。
下载任何一个“EA 交易”(交易机器人),并于 MetaTrader 4 或 MetaTrader 5 客户端的策略测试仪中将其启动。选择一个拥有强烈趋势的历史间隔以及一个无涨落的间隔。执行某“EA 交易”输入参数的优化,并检查其于上述两个间隔的差异。
利用趋势间隔的无涨落优化参数,以及无涨落间隔的趋势参数启动“EA 交易”。检查其交易结果、交易分布及其它统计参数间的差别。如此一来,您就能知道市场情况有所变化时,您的交易系统的行为会有多大的改变。
最好是使用此方法,就不同的历史部分和各种各样的交易品种尝试多种标准交易策略。这种试运行可防止将某交易系统拟合某些明确的历史间隔,且能更好地了解趋势与反趋势系统。
下一步,将是基于那些源自 MQL5 向导集的已经存在的简单信号的组合,创建更加复杂的交易系统。您可以测试和开发您的交易直觉力,利用一种基于另一系统的过滤器,在无需编程手段的情况下,剔除一个系统的不良信号。
这里的主要问题在于不要过度发挥。交易系统拥有的输入参数越多,越容易拟合。关于优化与拟合之间的差异,已有大量的论述。这里没有普适的解决方案。但是测试/优化结果的可视化以及您自己的常识可能会有帮助。
学会从输入数据的整个集中找到影响您交易系统的最为关键的输入参数。不要将精力放在那些耗费优化时间、却又对系统的逻辑没有什么影响的次要参数上。记住:如果市场变动不明显,优秀的交易系统始终都会呈现小幅的次要参数自由运动,而不会表现出大幅的波动。
在此阶段,您想花多长时间都可以,直到您确信自己掌握了检查测试与优化结果的所有交易策略。了解标准系统的优点与缺点,您就可以在创建自己的交易机器人时做出更好的准备。
编写一个交易机器人程序
假设您已经学会(或正在学习) MQL4 或 MQL5 编程语言,而且现已做好编写第一个 MetaTrader 终端“EA 交易”的准备。这里有几种可能情况。
首先,您可以查看本系列文章中讲到的几种即用型交易机器人,以更好地了解编程的复杂情况。
其次,如果您有任何解决不了的问题,可以到 MQL4.community 或 MQL5.community 询问。对于热心求学的新人,经验丰富的社区用户通常都乐于帮忙。
第三,如果您不具备自行编写必要程序的能力,则可以到任务服务中订购某“EA 交易”或指标的改进或开发。但是,即便您通过自由职业服务下了订单,也要就策略测试有些自己的想法,以便同开发人员找到共同点。
此外,如果您懂得某种编程语言的基础知识,则能在编程工作完成后,对代码进行一些微小的修复和变更。如果修复每一个碰到的小问题都要叫来程序员,毕竟是太不方便了。自己动手修复则要方便得多、也快得多。
无需重复劳动
如何才能找到您自己的交易策略,或者至少来讲,您的重点搜索方向在哪里?拥有自己的交易系统的交易者们都会对其严加保护。而所有的新人也都想创建一个盈利系统,或是获取一个即用型系统。而同时,与新人对于一套真正交易系统的想法相比,获取到的任何解决方案又都显得太过简单。
全世界的军人都倾向于秘密过剩。关于这一点的笑话很多,其中就包括下面这则:一位教官对军事学院的学员说:“军事机密并不在于你们学了什么东西,而在于你们学习这件事本身。”交易系统的情况也极其类似:大多数的交易者都采用简单且知名的交易理念,只是有各种微小的修改。比如添加“跟踪止损”或通过趋势指标的确认。
有大量设置访问权限的交易者论坛,其成员会合力完成某些秘密交易系统的开发或改进。最有趣的是,这些系统中根本就不包含任何特殊性。通常都是以某种众所周知的理念(比如“顺势交易”)作为基础。之后再采用一些不为普通大众所知的新指标来完善。
因此,您可以轻松获取可用的交易机器人源代码,并试着搭配各种交易品种和时间表来正确使用它们。还有一句俗话可以用在这里:“你不喜欢(吃)猫?那是你不知道怎么做才好吃!”说了您可能不信,但您能开发出什么真正新东西的可能性真的非常小。重点在于利用可用的材料,创建出一套系统。不要再想那些可以造访 NASA 实验室某些秘密系统的天才了。那可是圣杯一样的秘密。
只有少数人能通关
那么,在那些交易理念简直触手可及的时候,为什么没有人使用它们呢?答案很可能在于人心。许多银行的职员和大型投资基金中的交易者,都在遵照严格的规范且于限制手数的范围内执行交易。但不知为何,只有寥寥无几的机构交易者会离开他们的公司,利用自己的钱开始交易。
这就表明,您需要的不仅仅是一种交易策略,还有必须遵行的铁的纪律。许多交易者都遗憾地发现,他们也有书中描述的相同心理问题。意识到交易者最大的敌人是他们自己之后,就有新人开始琢磨着制作一种可消除心理负担的交易机器人。
尽管有点跑题,我还是想提一下极富传奇色彩的“海龟”交易者 – 那些于 20 世纪末在多个市场上成功交易的人们。阅读 “Way of the Turtle” (“海龟”之路)后,您会发现对于一个交易者来说,最最重要的事情是自律,而不是什么绝密的系统。唉,就算新人免费得到了盈利策略,他们当中的大多数还是不能遵行。
问题是大多数已完美拟合手动交易的交易策略,都很难形式化和转录为一种编程语言。而可轻松形式化的策略(例如那些包含两条移动平均线交汇的策略)又太过简单,需要大量的细化和改进后,方可实际运用。因此,一个简单的理念,会逐渐通过大量防止交易机器人误报和错误(开发人员清晰可见)的外部参数而丰富起来。交易机器人的优化问题也就应运而生。此过程不应转化成为过度优化及某特定历史间隔拟合。
欲解决此问题,就要采用获取的系统参数,于MetaTrader 5 终端中执行前向测试。如果前向测试结果与优化环节中获得的结果没有太大区别,则可能表明交易机器人以某个交易账户启动后的一段时间内足够稳定。参数优化间隔的长度,以及“一段时间”的实际值,取决于特定的交易系统。
因此,在交易机器人的优化以某个交易账户启动之前会提醒解开投石器 – 我们解开和从投石器投掷抛体越加谨慎,它将会飞得越远,其弹道也会越加精确。与作为拟合结果获取的交易机器人相比,完全开发的交易机器人以某交易账户保持的积极结果时间会更长一些。我们可以说圣杯是一种有效的理念,也是市场状况有所变动时偶尔执行的正确的参数调整。
这一点可以通过已举办多年的自动交易锦标赛的结果来生动地加以说明。所有参与人员提交的“EA 交易”,均通过了时间间隔为一月到七月末的自动化测试。通过该自动化测试的主要要求,即在测试的八个月内的盈利。但在自主工作三个月后,被锦标赛仍可盈利标准接纳的交易机器人却不足半数。
您也可以在制作和调整自己的交易机器人方面一展身手,参加此锦标赛,并得知您的“EA 交易”的前向测试结果。此外,参赛免费,且有惊喜大奖。我们希望您能参加!
总结
专业的盘中交易者每天多个小时坐在其电脑前,等待执行某交易的恰当时刻。当然,他们不可能时时保持最佳状态。
大多数的交易者都得出了其行为违反了自己的交易规范的结论。并非所有的交易系统都能完全形式化,但即便是这样的系统,大多数情况下也都能采用附加工具,比如指标、分析系统及虚假信号过滤器等。
本文中,我们并未针对 MQL4 或 MQL5 语言的学习给出具体的推荐,因为其它相关的文章中已有大量论述。本文旨在就如何开始制作您自己的 MetaTrader 4 与 MetaTrader 5 终端交易机器人相关事宜,提供一些初步的想法。
我们希望本文会节约新人的时间,并为开发一套自动化交易系统这一艰巨任务指明正确的方向。
本文译自 MetaQuotes Software Corp. 撰写的俄文原文
原文地址: https://www.mql5.com/ru/articles/443
MyFxtop迈投-靠谱的外汇跟单社区,免费跟随高手做交易!
免责声明:本文系转载自网络,如有侵犯,请联系我们立即删除,另:本文仅代表作者个人观点,与迈投财经无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。