下载MetaTrader 5

创建自动交易系统

19 二月 2016, 09:48
Rustem Bigeev
0
1 098

简介

您现在已经成为程序的幸运拥有者——该程序可以在几分钟内为您建立一套可盈利的自动交易系统(ATC),不得不说这听起来很诱人。您需要做的只是输入想要的数值并按回车键。此刻,赶紧测试您的自动交易系统并获取预期的收益吧。成千上万人花费数千小时的时间开发了这套独特的自动交易系统,从此将能一劳永逸,这听起来多少有些空洞。

一方面,这听起来的确有点不实际。但是,我认为这个问题可以解决。我们都了解市场始终在波动变化的性质,但交易者经常使用的工具通常都缺乏对条件变化的适应性。在适应改变前,客观的说,你应该清楚要适应的对象。多数情况下,我们自己无法清晰定义周围的环境,以阐明适当的行为模式。

如果说到创建不确定性算法,那么一个瞎子(人)如何给另一个瞎子(计算机)领路呢?另一方面,世界上凡事或早或晚都会重复,所以过去发生的情形在未来会再次发生。这种规律构成了多数自动交易系统的基石。我指的并非适应市场上变化的状况。我强调的是耐心和能力,直到过去产生能够接受的统计结果那一时刻的再度来临。


自动交易系统的目的是什么?

你可能会说:自动交易系统面向那些不懂在市场上如何操作的人。我的意思是,如果交易者知道怎么做,那就没有使用自动交易系统的必要了。但这并不属于本文的范畴。同时,如果人类总是什么都知道,也就不是人类了。

当然,这是玩笑话。但是,这却是我们有时感觉盲目的原因,如同陷入黑暗。自然如此厚待人类,创造了这种不确定性状况的循环出现。我们将昼夜更替视为自然不过的循环。昼夜更替,这是普通常识。我们也会容易发现,白天将尽时,天开始变黑。市场的情形也大致如此。如果看到经典的横盘,则后续无疑会出现趋势。反之亦然,如果图表中看到趋势,则后续必定出现横盘或相反趋势,只是幅度稍弱。

换言之,要清楚阐明未来的市场行为模式,我们必须清晰定义和归类当前的市场状态。实践证明,正是这一点带来了挑战性。每个交易者对于市场当前的状态都有他或她自己的理念。这是因为每个人都通过自己的时间图形查看图表。然而同时,如果我们将整个证券市场上的交易者按照其时间预期划分,将会发现多数金钱都落进交易周期为半年甚至更久的交易者(投资于未平仓头寸)的口袋。

若非如此,我们将永远不会看到数年之久的趋势。金融市场自身的特异性定义了这种时间标度。原因在于,如果我们大幅度缩短在未平仓头寸的投资时间,并在更短时间内增大交易量,市场则会消亡或彻底失去流动性,在这种市场交易犹如做慈善。所以大型交易者不得不延长头寸,周期达数周甚至数月。相应的,大型头寸也无法在一时之内平仓。

然而外汇每日的交易量达到 3 至 4 万亿美元,这些交易量的绝大部分是采用杠杆完成。这意味着未平仓头寸在平仓时进行掉期交易,实际操作的金额要小的多。如果某人决定通过直接兑换更改货币,该操作无法通过反向交换实现,必须找到某人来承担风险,从而导致倍增效应。

形成这种“仅有”几十亿美元的未平仓头寸可能会导致市场的巨大“变动”。对于不搞差额投机的大型养老基金和对冲基金,这种量是很正常的。他们只是在某些货币中寻找更容易获利的利息工具,一旦找到后,投资周期可长达一年或更久。产生的汇率差额可以视为额外收益。

综上所述,我们可以将急剧变化定义为在横盘期间由大型直接转换操作启动的不可预测的波动。趋势自身来自于这些操作,因为造市商开始承担获得的风险,并以相同方向进行建仓。横盘时间越久(产生的头寸和周期越大),后续的趋势就越强。


市场形态

尽管大型交易者会掩盖他们关于转换操作的动作,但后者早晚会变得可见。关键在于普通交易者何时理解市场所发生的事情。这对大型交易者非常有利 - 尽可能久的掩盖他们的动作,直到已经完成。而对于小型交易者(非极小交易者)有利的是 - 尽早的意识到这种动作,以提前建仓获利。总之,建立大型仓位是一个复杂和长期的过程,即所有事情都要事无巨细的算计和提前评估。

建立大型仓位的规定仍旧是规定,并符合某些规则,正因为如此,让识别这些动作——至少在执行这些动作的阶段而非事后——成为可能。这是所有各种市场形态的基础。特定动作会以特定的模式反应在价格图表上。要对市场形态开始详尽的分析,则有必要尝试了解它们代表的内容和我们希望从中得到的内容。作为第一个示例,我们可以采用经典书籍中详细描述的市场形态来进行技术分析。

例如,“双顶/双底”、“头和肩”、 “三角形”等市场形态,全是图表上已经形成的市场形态,多数情况下,这些形态后面会有特定和接近预期的价格走势。因此,市场形态可以定义如下:

市场形态是价格图表上的一种图形,其后的价格走势呈现预期的方向和预期的幅度。

我将补充一下 - 在多数统计案例中。

如果我们仅考虑价格图表,各种市场形态都可以目测识别,尽管存在错误。但是,涉及到自动交易系统,我们就必须使用数学方法,因为计算机强调准确性,无法接受不确定性。


市场形态的清晰性及其预测能力

任何市场形态都能以某些数学术语描述。市场形态描述使用的参数越多,则变得越清楚且更容易在未来识别。另一方面,在开始数学化的描述市场模型之前,有必要选择那些在多数情况下产生预期结果的给定模型。但是,这里也存在一些困难。

我们应该如何定义并选择这些形态呢?想到这里,我联想到一些其他主题。例如,我们来看看一位饲养纯种马的马饲养员。根据之前的经验,他或她清楚的知道必须满足什么条件才能饲养一匹赢下赌注的马。比如,这匹马的父母或其他祖先也必须是纯种赛马。马棚条件、喂养和训练也必须符合特殊要求。如此,如果马饲养员满足了所有这些要求,则他或她的大部分年轻的马匹将会实现期望。

用市场的术语来讲,这些条件就是市场形态,在未来必须实现我们的预期。唯一的差别在于交易者无法创建这些条件,但能够等待这些条件出现。鉴于以上表述,我们必须定义应该选择进行数学化描述的形态,另外,非常关键的是如何在早期识别它们。这有必要进行反向实施。我的意思是,先定义预期的结果,再分析在过去提供了这类结果的条件。

例如,我们希望每次交易中有 100 个价格利润点。因此,我们需要超过 100 个价格利润点 + 点差 + 应变储备(假定为 30-35%)。在该例中,非常希望这些价格走势沿着一个脉冲,而不包含任何深度修正。也有必要使用交易者通常采用的数学工具描述市场形态。指标集合及其输入应提前定义。进一步的行动描述如下:

  1. 在图表上选择并标记符合我们要求的区域,也就是变动 130-140 个价格利润点的脉冲运动;
  2. 定义其起始的点/区域;
  3. 用数学术语描述脉冲起始的点/区域;
  4. 在描述中尝试发现参数的共同值。

如果发现了共同的参数,则非常可能将其用作市场形态的基础。如果每个情形看起来都很独特,则有必要更改描述形态的指标或搜索更好的参数。

下一阶段是对已得到的市场形态进行回测。本阶段中,会发现价格并非总是在相同条件下达到 130-140 价格利润点,有时没有达到,有时明显超出。所以你必须考虑形态提供了预期结果的案例数量以及可视为统计错误的案例数量。如果统计错误超过了一定水平,就必须输入其他描述形态的参数,以根据目的改善我们的实例。这就是为了特定目的(每次交易 100 个价格利润点变动)描述市场形态的方式。

描述完成后,就可以创建捕捉给定市场形态的生成和给出开始新交易信号的自动交易系统。依我之见,这里最困难的部分在于:所有形态都基于历史数据,所以无人能够预测其未来表现。纯种马有时也会产下不纯的马驹。

我们最后的办法是继续测试。这意味着,在历史数据基础上获得理想的结果后,开始交易并通过既有方法继续观察统计参数。如果结果不再令人满意,就必须全部重新计算并重新描述。


创建自动交易系统的自动化

最后我们考虑一下,令奠定自动交易系统基础的形态选择和描述实现自动化是否可行?从技术上讲,我并不认为有较大的难度。如之前所述,描述市场形态始于目标的定义。然后我们从历史数据库中选择符合预设标准的情形。

我认为 умут 一个没什么经验的程序员也能够从历史数据选择预设长度的脉冲并将其记录。但对选定的情形进行描述的下一个步骤可能需要全新的方法和很多经验。在描述脉冲运动的一个点/区域时,有必要在具有多种参数组合的大量指标中搜索。描述中涉及的指标及其参数越多,描述形态就越准确,也越容易过滤不完全符合描述的市场情形。

随后,从描述脉冲运动起始点/区域的所有参数中,我们仅保留那些在选中最多案例中重复出现的参数,并使用它们描述形态。


总结

换言之,该过程可以自动化。问题在于,我自己并不知道这会占用多少时间。因为我本人并非真正的程序员,尽管在努力尝试。我想建议所有对该问题感兴趣且期待参与解决的人创建一个交易系统实验室并齐心协力以获得积极的成果。

作为初始目标,我们可以试图创建使用预设参数选择市场状况的算法。完成该任务后,我们可以开始开发描述市场形态的算法。

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
原文地址: https://www.mql5.com/ru/articles/1426

交易者的个人心理学 交易者的个人心理学

一幅金融市场上交易者的行为画像. 作者自己的菜单是来自于A.Elder的书 "怎样在股票交易中投机取胜" ("How to speculate on stock exchange and win").

在通用EA交易中发送交易信号 在通用EA交易中发送交易信号

本文描述了从一个通用EA交易的信号程序单元发送交易信号到仓位与订单控制单元的几种方法. 它仔细研究了串行和并行接口.

技术分析: 使不可能成为可能! 技术分析: 使不可能成为可能!

本文回答了以下问题: 虽然备受质疑,为什么不可能会变为可能? 技术分析论证。

使用 Linux 交易 使用 Linux 交易

本文描述了如何使用指示器在线观察金融市场的状况。