如果一个股票的k线是一条水平线,没法赚钱。
有波动,才有赚钱机会。
股票A,最近30天,每天的平均波动是5%,股票B,最近30天,每天的平均波动是1%,那么,A比B的赚钱机会要多。
如果一个股票的波动率,从日均1%上升到日均5%,表明交易开始活跃,有一波行情。
因此需要计算股票的波动率,根据波动率选择标的。
一个比较稳妥的方案,是计算上证50或者沪深300的股票,在1、3、7、21、28天的日k平均波动,以及最大波动。
日K波动:今天最高价15块,最低价10块,那么今天日K的最大波动是50%。
日K平均波动:若干天内的“日K波动”的平均值。
日K最大波动:若干天内的最高价除以这些天内的最低价。
代码如下:
import tushare as ts
import numpy as np
import pandas as pd
def test2():
"""
获取上证50名单,返回值形如:
date code name
0 2019-12-20 600000 浦发银行
1 2019-12-20 600009 上海机场
2 2019-12-20 600016 民生银行
"""
sz50 = ts.get_sz50s()
"""
获取沪深300名单,返回值形如:
date code name weight
0 2019-11-29 600000 浦发银行 1.12
1 2019-11-29 600004 白云机场 0.14
2 2019-11-29 600009 上海机场 0.58
"""
hs300 = ts.get_hs300s()
# #一些测试
# print(hs300)
# #输出前5个记录
# print('head:\n', sz50.head(), '\n\n')
# #输出后3个记录
# print('tail:\n', sz50.tail(3), '\n\n')
# #index,每条记录的序号
# print('index:\n', [i for i in sz50.index], '\n\n')
# #columns
# print('columns:\n', [i for i in sz50.columns], '\n\n')
# #打印一列
# print(sz50[sz50.columns[0]])
# #打印一行
# print(sz50[0:1])
# #打印特定位置
# print(sz50.loc[0:3, ['date', 'name']])
# #打印特定位置,注意,要清楚知道坐标,index必须是整数
# print(sz50.iloc[0, 1])