问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

超越传统网格交易:新型网格交易系统

创作时间:
作者:
@小白创作中心

超越传统网格交易:新型网格交易系统

引用
CSDN
1.
https://blog.csdn.net/2401_85373898/article/details/144342032

传统的网格交易系统尽管广受欢迎,但存在一些关键局限性,例如价格水平静态、在趋势市场中表现不佳。此外,网格交易系统还容易受到市场突然跳空的影响,无法适应市场波动性的变化。随着机器学习软硬件技术的快速进步,本文提出了一种新型的网格交易系统,解决了传统网格交易系统的挑战。

该系统能够实时动态优化进场/出场点,并适应市场条件,在最大化利润潜力的同时管理风险。本文将详细介绍从数据准备到模型训练的全部过程,并揭示如何自行实施这一先进的交易策略。

传统的网格交易策略是一种不错的交易策略,它总是试图低买高卖。然而,当时间序列的平稳性(这是该策略的核心价值)无法保持时,该策略就会变成一场灾难。这通常是由于全球市场交易制度或某个国家央行政策的变化造成的。

GTSbot 概述

在网格交易系统机器人(GTSbot)中,作者提出了一种新型的网格交易系统,解决了传统网格交易系统的挑战。该系统不再依赖于静态的价格水平作为定义网格的基准,而是使用回归网络来预测未来的价格走势,同时构建具有不同参考价格的多个网格。该系统能够实时动态优化进场/出场点,并适应市场条件,在最大化利润潜力的同时管理风险。

与传统的网格交易系统相比,GTSbot的业绩与Ichimoku外汇交易策略相当,在回测期间实现了高达13.76%的投资回报率(ROI),并且将最大回撤(Max DD)降低到基准策略的五分之一。

系统架构

回归网络模型

该组件负责使用外汇价格数据预测未来的价格走势。然而,预测精确的价格并不是该模型的目标。该模型的目标是使用预测的未来价格和历史数据的组合来确定未来的趋势,以便我们决定是做多还是做空。本文提出的模型称为缩放共轭梯度法(SCG),该方法由Martin Fodslette Moller在论文《一种用于快速监督学习的缩放共轭梯度算法》中提出,旨在加速模型训练时间以达到全局最小值。

  • 训练集RMSE:0.0126%
  • 验证集RMSE:0.0126%
  • 模型名称:sequential_1
  • 第一层(LSTM):输出形状为(None, 11, 200),参数数量为161,600
  • 第二层(LSTM):输出形状为(None, 200),参数数量为320,800
  • 输出层(Dense):输出形状为(None, 1),参数数量为201
  • 总参数数量:482,601 (1.84 MB),可训练参数数量:482,601 (1.84 MB),不可训练参数数量:0 (0.00 B)

该模型运行良好,并且作者大大减少了模型训练所需的时间。作者选择了长短期记忆(LSTM)模型,这是时间序列预测中最流行的模型。以下是作者使用的LSTM模型的架构:

LSTM模型的验证均方根误差(RMSE)结果如下:

趋势分类模块(TCB)

该组件根据预测的价格走势对当前趋势进行分类。它使用回归网络的输出来确定趋势是看涨、看跌还是中性。在学校的物理课上,我们了解到,如果速度和加速度都为正,那么很有可能我们会看到正动量,反之亦然。在这里,我们使用价格公式的导数作为速度参数,其二阶导数作为加速度参数。根据中心差分商和二阶中心差分近似规则,我们可以将这些导数简化为以下公式:

根据上述规则,让我们添加已有的和预测的数据来重写这些方程:

  • 一旦我们确认这两个导数都为正,我们就可以断定价格将会上涨,并将看涨信号发送给下一个组件以开立多头头寸。如果这两个导数都为负,则将看跌信号发送给下一个组件以开立空头头寸。如果上述条件都不满足,我们认为市场仍然波动,不会将信号发送给下一个组件以开立任何头寸。

  • predict(k + 1)表示预测价格

  • Close(k)表示当前价格

  • Close(k - 1)表示历史价格

  • 一阶导数:dClose = (predict(k + 1) - Close(k)) / dk

  • 二阶导数:d2Close = [predict(k + 1) + Close(k - 1) - 2Close(k)] / dk^2

  • f(x + h)表示预测价格

  • f(x)表示当前价格

  • f(x - h)表示历史价格

  • h表示预测价格和历史价格之间的时间差

  • 一阶导数:f’(x) = [f(x + h) - f(x - h)] / 2h

  • 二阶导数:f’'(x) = [f(x + h) - 2f(x) + f(x - h)] / h^2

网格系统管理模块(GSM)

一旦该组件接收到TCB发出的看涨或看跌信号,就会相应地开立多头或空头头寸。在开立任何头寸之前,它会进行一些检查:


1. 我们将策略的最大持仓量设置为15。在论文中还提到,这个数字最好是奇数,  
这样多头和空头头寸可以相互抵消。  
2. 我们将x_threshold定义为15(样本),这意味着在我们上次开立的头寸15分钟后,  
我们才会开立新的头寸。这是为了确保我们不会在单一的上涨或下跌趋势中过度交易我们的资金。  
3. 我们将y_threshold设置为2(点)。我们需要确保我们开立的新头寸至少比之前所有的  
多头头寸高出2点,或者比之前所有的空头头寸低出2点。从本质上讲,这是该交易系统的网格大小。

篮子权益系统管理模块(BESM)

最后,BESM组件实质上充当风险管理部门。它监控每个开立的头寸,并在达到止盈点时将其平仓。有趣的是,论文中提到,BESM组件专门设计为不设置任何止损点。作者认为,这种新型网格系统在TCB组件意识到趋势反转时,会开立相反的头寸以弥补错误开立的头寸。

策略表现

  • 该策略在最初的半年内似乎非常有利可图。
  • 然而,正如我们所知,该策略缺乏对每笔交易适当的止损点,因此这些交易在市场上停留了很长时间。这给我们留下了很大的改进空间:
    1. 我们可以采用文章中提到的三重障碍法来限制每笔交易的风险,而不仅仅是简单地添加一个止损点。
    2. 由于外汇交易会在QuantConnect系统中相互抵消,因此无法在QuantConnect系统上同时开立多头和空头订单。由于这个原因,我们无法使用QuantConnect来进一步回测该策略。
    3. 你可以通过FXCM同时开立多头和空头订单。然而,它没有提供一个模拟平台来对历史价格进行回测。
    4. FXCM提供了API和模拟账户,因此你可以构建一个模拟回测工具进行纸上交易。然而,构建这个工具需要付出很多努力。

总结

本文介绍了一种新型的网格交易系统GTSbot,该系统克服了传统网格交易系统的一些局限性,例如静态价格水平、无法适应市场波动等。GTSbot通过使用回归网络预测未来价格走势,并构建动态网格,同时结合趋势分类模块和风险管理系统,实现了更高的收益和更低的风险。

未来研究方向

  • 改进风险管理系统,例如添加止损点或采用更复杂的风控策略。
  • 探索更先进的机器学习模型,例如Transformer模型,以提高价格预测精度。
  • 将GTSbot应用于其他金融市场,例如股票、期货等。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号