在 Elasticsearch 中回测 RSI 交叉策略

  有时候,您可能有一些疯狂的想法并且想要测试您的交易策略。 通过使用历史市场数据进行回测,您可以评估风险、利润并衡量业绩,从而获得使用这个交易策略的信心。 当然,如果你是一个熟练的程序员,你没有问题去编写复杂且负载繁重的程序来处理检索后的数据分析。 由于 Elasticsearch 在搜索、数据分析和机器学习方面的强大能力,值得为你写一系列关于 Elasticsearch 回测不同交易策略的文章供参考。

  在之前所写《RSI BB 还是RSI & BB? 很简单,让我们用 Elasticsearch 来实现吧!》一文中,我们介绍了如何使用 Elasticsearch 来实现相对强弱指数 (RSI) 指标。 在本文中,我们将制作一个简单的工具来回测 Elasticsearch 中的 RSI 交易策略。 由于大部分工作在 Elasticsearch 集群中完成,客户端不会有繁重的工作负荷。 Elasticsearch 将提供买入或卖出信号,然后编写一个简单的 Python 程序集成以进一步分析信号并生成报告。 建议读者快速浏览一下之前的文章,对RSI和使用Elasticsearch的实现细节有一个基本的了解。

RSI 是一种动量指标,提供有关价格变化的信息,以支持买卖资产的机会。 价格变化被转换成近期总收益和近期总损失两种数据,通常周期为 14。 RSI 方程可以写成如下,其中 SMAgain,n 和 SMAloss,n 是 近期总收益移动平均线和总近期亏损移动平均线。 对应窗口为n的Elasticsearch 移动平均函数SMA,需要右移1个数据以包含当前数据。

    RSI 交叉策略定义了 RSI 在何值视为交叉处,以指示超买 (>= 70) 和超卖 (<= 30) 信号。 对于其他 RSI 值,无信号产生。在本文中,我们将回测应用于Tushare大数据开放社区提供的股票型公募基金,并专注于将 Elasticsearch 作为分析工具。 下面的例子随机选择了"工银研究精选股票" (代码为000803.OF) ,并另外抽取10只股票型基金运行,最终结果将在最后的段落汇总和展示。 数据选自提供的 2021年01月01日到2021年04月30日之间的时间范围。RSI的窗口是14,在下图中,RSI 与每日收盘价一起绘制。 在每日价格曲线Daily中,RSI 值>= 70 的标记为红色,RSI 值<= 30 的标记为蓝色。

 

 

  在这里,我们使用了一个简单的 RSI 交叉策略。

  • 假设由于成本的限制,只能每一次购买和持有 1 份,并在持有的基金被出售之前不能发生任何交易。
  • 当 RSI 值 <= 30 时买入 1 份。
  • 当 RSI 值 >= 70 时卖出 1 份。
  • 在测试期结束时,持有的基金以当前价格兑现。

  在每日价格曲线中有 许多个蓝点和红点,但根据以上策略只允许进行1次买入和1次卖出交易。以下阐释如何使用Elasticsearch实现RSI 交叉策略。 假设有一个填充有数据的 Elasticsearch 索引,其使用的数据映射与之前发表的文章相同。以下步骤演示了 REST API 请求正文的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值