文章 "通用EA:自定义策略和辅助交易类(第三章)"

MetaQuotes  

新文章 通用EA:自定义策略和辅助交易类(第三章)已发布:

在本文中,我们将继续分析CStrategy交易引擎的算法。这系列文章的第三篇包含如何使用这种方法开发特定的交易策略样例的详细分析。需特别关注辅助算法— 智能交易日志系统以及使用索引方式(Close[1],Open[0]等)访问数据。

在第一篇文章通用智能交易系统:交易策略的模式中,我们已经详细考虑了策略的交易模式以及需被重载的主要方法。现在,是做练习的时候了。

每一个使用CStrategy引擎创建的EA必须重载用于设置EA属性和行为的虚拟方法。我们将以三列表的形式列出所有需重载的方法。狩猎包含虚拟方法的名称,第二列是需要追踪的事件或执行的行为。第三列包含使用方法的目标描述。下面就是表格:

虚拟方法 事件/行为 目标
OnSymbolChanged 当交易货币对名称改变时被调用 当你改变交易标的,EA的指标需要被重新初始化。此事件允许执行EA指标的重新初始化。
OnTimeframeChanged 改变运行时间框架 当你改变运行时间框架,EA的指标应该被重新初始化。此事件允许执行EA指标的重新初始化。
ParseXmlParams 解析通过XML文件加载的策略的自定义参数 策略应能识别传递入方法的XML参数,并进行相应的配置。
ExpertNameFull 返回EA的完整名称 有策略名组成的完整的EA名称,一般是一个唯一的策略参数集。一个策略的实例必须独立决定它的全名。这个名称也在可视化面板的下拉列表中使用。
OnTradeTransaction 如果交易事件发生 某些策略需要分析操作引起的交易事件。这传递一个交易事件到EA中并分析它。
InitBuy 发起买入操作 必须要重载的基本方法之一。如果合适的交易条件形成,你应执行买入操作。
InitSell 发起卖出操作 必须要重载的基本方法之一。如果合适的交易条件形成,在此方法中你应执行卖出操作。
SupportBuy 管理一个先前建立的多头头寸 一个未平仓的多头头寸需要被管理。例如,你应该设置止损或者在出场信号发生时平仓。所有这些步骤都必须在这个方法中执行。
SupportSell 管理一个先前建立的空头头寸 一个未平仓空头头寸需要被管理。例如,你应该设置止损或者在出场信号发生时平仓。所有这些步骤都必须在这个方法中执行。

 表 1. 虚拟方法和它们的用途

作者:Vasiliy Sokolov

原因: