在 Elasticsearch 中回测 RSI 交叉策略

本文介绍如何利用Elasticsearch回测股票基金的RSI交叉策略。通过Elasticsearch处理数据,结合Python程序分析信号,实现交易策略。以工银研究精选股票为例,展示了回测过程和结果,强调单一指标的局限性,鼓励结合多种因素进行交易决策。
摘要由CSDN通过智能技术生成

  有时候,您可能有一些疯狂的想法并且想要测试您的交易策略。 通过使用历史市场数据进行回测,您可以评估风险、利润并衡量业绩,从而获得使用这个交易策略的信心。 当然,如果你是一个熟练的程序员,你没有问题去编写复杂且负载繁重的程序来处理检索后的数据分析。 由于 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 请求正文的代码。

通过搜索操作收集所有相关文档
使用带有必要条件(must)子句的布林查询(bool query)来收集基金代码为000803.OF,和公告截止日期从2021年01月01日到2021年05月31日的文档。 由于需要计算移动平均值&

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值