布林带——泡泡玛特

本文重在策略学习探讨,不构成任何投资建议!

作为股民,相信不少人都听说一个名词——量化交易。量化交易并不神秘,它的核心是策略。策略的制定者还是人,只不过策略的执行者由人变成了程序。一方面,它不会有人类的恐惧和贪婪,不会因情绪而导致动作变形;另外一方面,它又显得死板,在某些特殊情况下反而愚蠢!耳边可能听说过很多技术指标、量化策略。比如双均线策略、布林带、网格交易、右侧追击…… 那么,它们在股市中的真实表现究竟如何?

本篇属小试牛刀,以布林带指标为策略指引,手办龙头泡泡玛特历史数据为基石,看看它们能碰撞出怎样的火花!

1.数据整理

1.1 定义全局变量

如果需要回测策略对其它股票的表现,只需修改全局变量SYMBOL和ONE_AMOUNT 。

其中日期区间以及账户原始本金也可灵活调整。

# 导入相关模块
import akshare as ak
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 定义全局变量
SYMBOL = '09992'            # 股票代码
ONE_AMOUNT = 200            # 一手股数
CAPTIAL = 100000            # 账户本金
STRAT_DATE = '2021-01-01'   # 开始日期
END_DATE = '2021-12-31'     # 结束日期


1.2 获取股票数据

获取股票历史数据需要用到一个库:akshare 。本文选择的是港股,数据接口是 akshare.stock_hk_hist 。需获取其它市场数据参考官网https://www.akshare.xyz/

# 泡泡玛特历史数据
ppmt = ak.stock_hk_hist(symbol=SYMBOL, period="daily", start_date=STRAT_DATE, end_date=END_DATE, adjust="")
# 日期这一列为字符串格式,将其转换为日期格式
ppmt['日期'] = pd.to_datetime(ppmt['日期'])
ppmt.head()

在jupyter notebook中运行以上代码,运行结果如下图(后文都会以截图的形式贴出代码运行后的结果):

1.3 数据处理

既然是布林带交易策略,需要计算出其中轨、上下轨。下面是它的计算公式:

中轨线 = N日的移动平均线

上轨线 = 中轨线 + K倍的标准差

下轨线 = 中轨线 - K倍的标准差

一般而言,N取值为20,K取值为2。将其算出后直接保存到变量ppmt中。可以发现,因为以20日移动均线为基准,所以前20个交易日是没有布林带数据的。

# 先创建3列数据,分别存放布林带上、中、下轨。并设定默认值为NaN
ppmt['ma20'] = np.nan
ppmt['upper'] = np.nan
ppmt['lower'] = np.nan

# 计算布林带,并将其保存到变量ppmt
for i in range(20,ppmt.shape[0]):
    ppmt['ma20'][i] = ppmt['收盘'][i-20:i].mean()
for i in range(20,ppmt.shape[0]):
    ppmt['upper'][i] = ppmt['ma20'][i] + 2*ppmt['收盘'][i-20:i].std()
    ppmt['lower'][i] = ppmt['ma20'][i] - 2*ppmt['收盘'][i-20:i].std()
ppmt

K线图画起来代码太繁琐。这里简单画出布林带走势及收盘价曲线,可以发现其股价从年初的90元左右,一路趋势向下&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值