首页 系统交易 帖子

交易套利:MetaTrader 4 的专家顾问指南

附件
9356.zip (10.31 KB, 下载 0次)

理论:

我们来看看 EURUSD 的套利是如何运作的。假设我们有两个合成货币对 EURUSDxEURUSDy

这两个货币对的动态相似,因此如果我们在这两个货币对上开设两个相反的头寸,就会形成对冲头寸。

开盘:买入 EURUSDx 和卖出 EURUSDy。过一段时间后,我们平掉这些头寸:卖出 EURUSDx 和买入 EURUSDy

利润:利润 = (BIDx - ASKx) + (BIDy - ASKy) = (BIDx - ASKy) + (BIDy - ASKx)

在上面的表达式中,我们知道第一个括号的值(买入 EURUSDx 和卖出 EURUSDy)。

第二个括号的值在平仓后得知(卖出 EURUSDx 和买入 EURUSDy

存在几个正利润值的情况,其中之一是:

开盘时:BIDx > ASKy

平仓时:BIDy > ASKx

实践:


交易套利专家顾问利用这一理论(你可以根据其他条件进行修改)。

在实时中,它会寻找当 BIDx > ASKy 的所有可能合成货币对(成千上万的情况),并开设相应的头寸。

这意味着交易套利专家顾问始终保持多货币对冲。

它会创建一个文件 ArbitrageStatistic.txt,其中列出排序(按频率)套利情况。


ArbitrageStatistic.txt 文件


如果 Monitoring 是 TRUE,专家顾问会将一些套利细节添加到文件 Arbitrage.txt 中。


包含详细信息的 Arbitrage.txt

交易是根据文件 Trade-Arbitrage.txt 中定义的货币对进行的(文件位置为:experts\files)。



Trade-Arbitrage.txt 文件示例

此外,它还会记录一些细节以便进一步分析(交易、原因和结果):


Trade-Arbitrage 顾问结果(上),NettoTrading(左)和 CheckMyArbitrage(右)脚本结果

多货币对冲可以通过使用循环脚本 CheckMyArbitrage 来检查。

输入参数:

  • 货币对 - 用于合成货币对的货币列表。
  • MinPips - 允许的最小差异(作为套利)点数()。
  • SlipPage - 经纪商允许的市场订单滑点(不同经纪商有不同的值)。
  • Lock - 是否允许锁定(TRUE)或不允许(FALSE)。
  • Lots - 开平仓的头寸量。
  • MaxLot - 经纪商允许的最大手数(实际)。
  • MinLot - 经纪商允许的最小手数(实际)。
  • Monitoring - 是否记录所有套利情况到文件(TRUE)或不记录(FALSE)。记录可能需要一些时间,这对于套利来说可能是关键的。
  • TimeToWrite - 记录套利统计数据的时间周期(以分钟为单位)(ArbitrageStatistic.txt)。

专家正常工作(不会破坏多货币对冲):

  • 交易订单错误(拒绝等)。
  • 部分执行(部分成交)。一些经纪商允许这种情况。
  • 功能,经纪商允许的最小手数(MinLot)。
  • 如果 Lock = TRUE,则使用最小交易订单 最小
  • 可以禁止锁定情况(Lock = FALSE)。

可能的问题:

  • 负滑点和佣金侵蚀利润。
  • 交易订单的长期执行,有时其他符号价格会发生显著变化。
  • 异步 处理交易订单。
  • 套利时间较短。

可能的改进:

  • 使用限价单
  • 同时为不同符号(模拟异步)从多个终端向一个账户发送交易订单。
  • 控制经纪商的时间 异步性
  • 收集和使用更多统计信息,以供其他MinPips套利条件使用。例如,BIDx - ASKy> SPREADx + SPREADy
  • 收集和使用有关套利持续时间的统计信息。
  • 优先处理市场订单队列(例如,具有最大点值的符号或具有极端局部价格的符号)。

特点:

  • 多货币,因此无法在策略测试器中使用。可以作为脚本执行。
  • 不使用价格历史。套利理论利用市场低效性(报价低效性),因此报价的性质并不重要。
  • 顾问在没有损失的情况下工作。

编辑备注:

请注意,这是原始俄语版本的镜像翻译。

如果你对作者有任何问题、建议或评论,最好在 那里发布。

如果你发现这段代码对交易或学习有用,请不要忘记感谢作者。

相关帖子

评论 (0)