理论:
我们来看看 EURUSD 的套利是如何运作的。假设我们有两个合成货币对 EURUSDx 和 EURUSDy。
这两个货币对的动态相似,因此如果我们在这两个货币对上开设两个相反的头寸,就会形成对冲头寸。
开盘:买入 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。
- 收集和使用有关套利持续时间的统计信息。
- 优先处理市场订单队列(例如,具有最大点值的符号或具有极端局部价格的符号)。
特点:
- 多货币,因此无法在策略测试器中使用。可以作为脚本执行。
- 不使用价格历史。套利理论利用市场低效性(报价低效性),因此报价的性质并不重要。
- 顾问在没有损失的情况下工作。
编辑备注:
请注意,这是原始俄语版本的镜像翻译。
如果你对作者有任何问题、建议或评论,最好在 那里发布。



