使用Elasticsearch计算布林带宽度指标

布林带宽度(Bollinger Band Width)是美国股市分析家约翰·布林于2010年发明,用于测量布林带(Bollinger Bands于1980年发明)上下轨道线之间的相对距离。它随带宽变窄而减小,而随着带宽放宽而增加。因为布林带基于标准差,所以带宽的波动幅度可以反映波动性,并且可视为波动率指标。布林带由三条不同的线组成,包括简单移动平均线及正负距离两个标准差的上下轨道线。可为日常股票交易决策提供参考依据,是金融市场常用的技术指标之一。

要計算布林带宽度,第一步要先計算布林带,计算方法如下:

在这里插入图片描述

在公式中:

  • p = 价格

  • window = 移动平均线涉及的滑动窗口(通常为20或26)

  • SMA = 使用简单模型的移动平均值

  • SD = 標準差

  • n = 数字(通常为2,即2倍標準差)

  • BBU =布林带上轨道线

  • BBL = 布林带下轨道线

  • BBW = 布林带宽

    一般来说,布林带指标常用于股票市场,在本文中,我们尝试将其用于股票型公募基金,以复权单位净值代替价格。 并且使用Elasticsearch作为分析的计算工具。以下示例使用基金名称工银高端制造股票基金,代码为000793.OF,日期从2021年01月01日到2021年04月30日的数据。假設我们的 Elasticsearch 服务器有一个索引,包括三个字段,基金代码(ts_code)、复权单位净值(adj_nav)和公告截止日期(end_date)。数据映射如下:

"mappings": {
	"dynamic": "false",
	"properties": {
    	"ts_code": { "type": "keyword" },
        "adj_nav": { "type": "double" },
        "end_date": { "type": "date",  "format": "yyyyMMdd" }
    }
}

以下步骤说明操作流程,同时演示REST API请求主体的代码:

  1. 通过搜索操作收集所有相关文档:
    使用带有必要条件(must)子句的布林查询(bool query)来收集基金代码为000793.OF,和公告截止日期从2020年12月01日到2021年04月30日的文档。 由于需要计算移动平均值,因此多增加了前一个月的数据(从2020年12月01日到2020年12月31日)。
{
	"query":{
		"bool":{
			"must": [
				{"range":{"end_date":{"gte":"20201201", "lte":"20210430"}}},
		    	{"term": {"ts_code":"0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装Elasticsearch使用的JDK可以按照以下步骤进行: 1. 首先,你需要下载Elasticsearch的压缩包。你可以在Elasticsearch的官方网站上找到最新版本的下载链接。 2. 下载完成后,解压缩该压缩包到你想要安装Elasticsearch的目录。 3. 进入解压后的目录,找到`config`文件夹,并打开其中的`elasticsearch.yml`文件。 4. 在`elasticsearch.yml`文件中,找到并修改以下两个配置项: - `network.host`:将其值修改为`localhost`,以便只能通过本地访问Elasticsearch。 - `http.port`:将其值修改为你想要使用的端口号,默认为9200。 5. 保存并关闭`elasticsearch.yml`文件。 6. 接下来,你需要设置Java环境变量。在Elasticsearch的安装目录中,找到`config`文件夹,并打开其中的`jvm.options`文件。 7. 在`jvm.options`文件中,找到并修改以下配置项: - `-Xms`:设置JVM的初始堆大小。 - `-Xmx`:设置JVM的最大堆大小。 你可以根据自己的需求来调整这两个值。例如,可以将`-Xms`设置为`2g`,将`-Xmx`设置为`4g`。 8. 保存并关闭`jvm.options`文件。 9. 现在,你可以启动Elasticsearch了。在命令行中,进入Elasticsearch的安装目录,并执行以下命令: ``` bin/elasticsearch ``` 10. Elasticsearch会开始启动,并在命令行中显示相关的日志信息。等待一段时间后,你应该能够看到类似于`[INFO][o.e.h.n.Netty4HttpServerTransport] [your_node_name] publish_address {your_ip_address:your_port}, bound_addresses {your_ip_address:your_port}`的日志,表示Elasticsearch已经成功启动。 11. 现在,你可以通过浏览器或其他工具访问Elasticsearch了。使用`http://localhost:9200`来访问Elasticsearch的REST API,并验证是否正常工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值