介绍

Chart Pattern Helper EA不是一种自动交易机器人。它并未内置可执行的交易策略。这个智能交易的唯一目的是在图表对象上:趋势线、水平线或等距通道,通过挂单执行交易。除简单的执行突破交易外,它还能在您因某些原因错失突破点的情况下执行回调交易。

Chart Pattern Helper 的主要优势是按照放置在外汇图表的图形对象的范围,包括斜坡对象设置并调整挂单的能力。这种能力可以简单的执行流行形态的交易如三角形(上行、下行和对称)、通道、旗形、三角旗形、矩形、头肩形、双顶部/底部形等。

某一水平的突破被定义为简单的触及。Chart Pattern Helper 不会等待价格收于给定线的上方/下方。当价格首次触及设置的水平时,它会放置一个挂单。

有一个参数的输入范围可用于监管该智能交易的工作,但只有当您将其附加到图表并将其添加到适当名称的图表对象后,它才能马上开始工作。之后,可随时移除这个图表对象。该智能交易将继续检测它们的头寸并相应的调整定单参数。该EA 默认将当前的状态输出到图表备注。

因为所有图表对象都以买入价绘制,因此当使用卖出价时,该EA会加上当前的点差来调整进场、止损和止盈水平。这种行为可通过输入参数降低订单发送到交易服务的修正数目而禁用。

Chart Pattern Helper 能够按照一套输入参数,止损水平和账户余额/净值计算头寸大小 — 更像MetaTrader 的头寸大小计算器。您可以关闭这个功能,给该EA设置一个固定的头寸数值。

运算过程

这个EA启动之后将按照以下步骤运行:

  1. 通过输入参数按照给定的名称监测对象。
  2. 以进场目标+点差(卖出价)的价格放置买单的进场水平。
  3. 以进场目标(买入价)的价格放置卖单的进场水平。
  4. 买单的止损水平放置在边界目标下方以大多数长度为时段的最近的局部低位。
  5. 卖单的止损水平放置在边界目标上方以大多数长度为时段的最近局部高位;并将点差加入到高位内。
  6. 买单的止盈水平放置在止盈目标处(买入价)。
  7. 卖单的止盈水平放置在止盈目标 + 点差(卖出价)处。
  8. 所计算的值会通过图表备注持续显示除非Silent 输入参数设置为true
  9. 挂单则按照这些所计算的值放置。如果没有买或卖进场目标,那么只放置一个订单。当前的图表柱结束时,订单自动到期。在MT4上,最低的到期时间为11分钟;在MT5,是2分钟。
  10. 如果当前的价格低于买单进场价并高于卖单进场价,那么使用追单挂单。如果当前的价格低于卖单进场价或高于买单进场价,那么仅能使用一种限价单挂单。
  11. 追踪当前的目标值,相应的调整进场、止损和止盈水平。
  12. 如果启用头寸数值计算,那么需要的时候订单的数量会进行更新。在这种情况下,使用先前数量的订单就会被删除并创建使用新数量的订单。警告:这个功能可能会导致大量的挂单,而这可能违反您经纪公司的服务条款。如要阻止这种行为,您需要设置UpdatePendingVolume输入参数为false
  13. 到期的订单会以新的数量重新创建(如果需要)并更新进场/止损/止盈水平。
  14. 如果触发了一个追单,那么第二个(方向)追单会被删除(除非OneCancelsOther 输入参数设置为false)。所有目标将附加EA的逻辑编号到它们的初始名称重新命名。这会防止新挂单的创建
  15. 如果PostEntrySLAdjustment设置为true,当跟随突破的新蜡烛图开盘后会试图更新止损。
  16. 按照止盈目标继续更新头寸的止盈水平。
  17. 头寸一旦关闭之后将停止活动。
  18. 一旦控制图表目标被重新命名返回它们的初始名称进入步骤一。

输入参数

对象

  • UpperBorderLine (默认 = "UpperBorder") — 对象的名称(水平线或趋势线),用以定义突破形态的上缘边界。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。
  • UpperEntryLine (默认 = "UpperEntry") — 对象的名称(水平线或趋势线),用以定义突破形态的买单进场水平。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。
  • UpperTPLine (默认 = "UpperTP") — 对象的名称(水平线或趋势线),用以定义买单的止盈水平。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。
  • LowerBorderLine (默认 = "LowerBorder") — 对象的名称(水平线或趋势线),用以定义突破形态的下缘边界。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。
  • LowerEntryLine (默认 = "LowerEntry") — 对象的名称(水平线或趋势线),用以定义突破形态的卖单进场水平。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。
  • LowerTPLine (默认 = "LowerTP") — 对象的名称(水平线或趋势线),用以定义卖单的止盈水平。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。
  • BorderChannel (默认 = "Border") — 等距通道对象的名称,用以定义突破形态的上缘和下缘边界。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。
  • EntryChannel (默认 = "Entry") — 等距通道对象的名称,用以定义买和卖进场水平。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。
  • TPChannel (默认 = "TP") — 等距通道对象的名称,用以定义买和卖止盈水平。您可以将该对象命名为该参数的数值或者更改参数以适合当您创建图表对象时使用的名称。

订单管理

  • OneCancelsOther (默认 = true) — 如果为true,触发的挂单将取消反向挂单。如果为false,反向订单仍然保留而且当第一个头寸触发止损或止盈之后可能会被触发。
  • UseSpreadAdjustment (默认 = true) — 如果为true,点差会加入买单进场水平和卖单止损/止盈水平。当使用卖出价且所有图表对象以买入价描绘时,它会补偿差价。设置为false将降低订单到经纪公司交易服务器的修复请求流量。
  • UseExpiration (默认 = true) — 如果为true,挂单将于创建后的当前时段结束时或11分钟(MT4)或2分钟(MT5)内到期 —不管将来怎样。如果经纪公司不支持订单到期,那么可能会被要求设置为false
  • DisableBuyOrders (默认 = false) — 如果参数为true,新的买进订单将不被创建,目前的买进订单和仓位将被忽略。
  • DisableSellOrders (默认 = false) — 如果参数为true,新的卖出订单将不被创建,目前的卖出订单和仓位将被忽略。

头寸大小

  • CalculatePositionSize (默认 = true) — 如果为true,那么头寸大小将根据给定的风险承受能力、账户大小(余额或净值)、账户货币和交易货币对进行计算。计算过程与头寸大小计算器一样。如果为false,将使用固定的头寸数值。
  • UpdatePendingVolume (默认 = true) — 如果为true,那么当计算出新的头寸大小后将更新挂单的数量。这可能会导致过高的订单量到交易服务器,因为不能修改订单的数量;反之,它会被删除,然后创建新的数量。如果为false,那么订单的数量在到期和随后的重建之前保持不变。如果CalculatePositionSize = false,那么这个参数可以被忽略。
  • FixedPositionSize (默认 = 0.01) — 如果CalculatePositionSize = false,那么该EA将使用该参数值作为创建挂单的数量。
  • Risk (默认 = 1) — 风险承受能力,账户余额/净值的百分比。只有在CalculatePositionSize = true时起作用。如果UseMoneyInsteadOfPercentage设置为true,那么可以忽略这个输入参数。
  • MoneyRisk (默认 = 0) — 账户货币的风险承受能力。只有在CalculatePositionSize = true时起作用。要求UseMoneyInsteadOfPercentage设置为true
  • UseMoneyInsteadOfPercentage (默认 = false) — 如果为true,头寸大小将按照给定账户货币的风险数额(MoneyRisk)进行计算,而不是按照余额/净值的百分比风险(Risk)计算。只有在CalculatePositionSize = true时起作用。
  • UseEquityInsteadOfBalance (默认 = false) — 如果为true,那么头寸大小将按照账户净值而不是余额进行计算。只有在CalculatePositionSize = true时起作用。
  • FixedBalance (默认 = 0) — 如果设置为非0值,那么它将代替账户余额/净值计算头寸大小。只有在CalculatePositionSize = true时起作用。
  • LotDigits (默认 = 2) — 您的经纪公司支持的订单数量小数点后的数目。例如,如果您的经纪公司支持微手(0.01),那么这个参数应该设置为2.如果您的经纪公司仅支持最小手为迷你手(0.1),那么这个参数应该设置为1。只有CalculatePositionSize = true时起作用。
  • PostEntrySLAdjustment (默认 = false) — 如果为true,该EA将随突破后新蜡烛图的开盘而调整止损。它会检查突破的蜡烛图的高位/低位是否仍适合止损。它可能会打破头寸配置规则但会按照交易策略的离场规则更加精确的确定止损。

杂项

  • Magic (默认 = 20130116) — 该EA用以区分自身订单(MT4和MT5)和头寸(仅适用MT4)的编号。如果您在运行其它使用相同逻辑编号的EAs或者如果您希望添加两个或多个Chart Pattern Helper 到一个货币对,那么您可能需要更改它。
  • Slippage (默认 = 30) — 对经纪公司点差的滑点最大容忍值
  • Silent (默认 = false) — 如果为true,那么将没有状态信息输出到图表备注。如果您使用一些指标或其它EA修改图表备注并想给予他们优先权,那么这个参数就非常有用。
  • ErrorLogging (默认 = true) — 如果为true,那么该EA将记录所有错误和其它非标准状态到日志文件。它被命名为"CPH-Errors-<date-time>",可以在MT4 安装文件夹的/experts/files/ 根或MT5安装文件夹的/MQL5/Files/ 根找到(或为您的MetaTrader 5指定的用户程序数据文件夹,如果您使用的是 Vista 或更新的 Windows版本)。

常见问题解答

下单之后把这个EA关掉安全么?

安全,但如果未触发,那么订单会到期。运行EA需要重新创建并更新它们。

它使用任何追踪止损么?

不使用,执行订单后止损是固定的。但是您可以设置您自己的追踪止损,甚至是在一个单独的智能交易表格内。

触发挂单之后,我可以修改头寸的止损或止盈么?

当然!您可以立即修改止损,一旦您重命名/删除止盈对象或禁用这个EA之后就可以修改止盈。

我使用渠道吸引模式但是只希望EA进行单边交易多或空,如何设置?

您可以通过设置限制DisableBuyOrdersDisableSellOrders输入参数为是阻止EA买进或卖出。

请问您可以为我更改一些东西么?

不能。有数百种方法修改这个EA使其进行不同的交易或符合某个人的交易风格。我们不对其进行任何修改,因为它不可能令每个人都满意。然而,它的源代码是开放的且附带注释 — 您自己可以对其进行修改。

范例

MT4

以下范例图表示范了Chart Pattern Helper 的交易过程。这个在 M15 EUR/USD图表上的下行通道形态标记了3个通道对象:边界(黄色),进场(蓝绿色)和止盈(石灰绿)。这个EA已经检测到所有对象并计算了相应的进场、止损和止盈水平。计算的值显示在图表的备注内(左上角)。挂单已经执行,止盈和止损水平也可在图表上看到。

Chart Pattern Helper — 在MetaTrader 4 显示追单挂单的范例图表。

MT5

下一个图表显示了Chart Pattern Helper 如何在错失双底突破形态放置限价买单挂单。GBP/JPY 周线图图表使用了水平线定义边界(黄色),进场(蓝绿色)和止盈(石灰绿)。与上一个范例相同,图表备注位于屏幕的左上角,显示了已检测到的水平。因为没有更低的目标,因此只计算了特定的买入水平。因为当前的价格位于进场水平的上方,因此只放置了一个限价买单挂单。

Chart Pattern Helper –在MetaTrader 5显示限价单的范例图表。

这个EA是ECN安全版。您可以在ECN市价执行经纪公司处随意使用该EA,因为它在开启订单时不设置任何的止损和止盈水平,或仅开启挂单。

下载

下载 ChartPatternHelper MT4智能交易

下载压缩格式的 ChartPatternHelper MT4智能交易

下载 ChartPatternHelper MT5智能交易

下载压缩格式的 ChartPatternHelper MT5智能交易

讨论

您有使用此智能交易的交易结果或任何其它评论么?请访问我们的外汇论坛和其它交易商或MQL程序设计师讨论ChartPatternHelper。