![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python量化
文章平均质量分 73
python
多凡
一起为技术奋斗吧
展开
-
TA-Lib MA_Type
TA-Lib MA_Type在TA-Lib中有一个参数的类型是MA_Type, 谷歌了一下,把内容贴出来。主要就是使用不一样的加权方式对数据进行处理。import talibfrom talib import MA_TypeMA_Type: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Defaul...原创 2019-09-17 10:28:30 · 1291 阅读 · 0 评论 -
python 画子图股票成交量图像
成交量指的是当天交易日内股票交易成功的数量,以手为单位(1手等于100股)。在技术分析时通常会将价格和成交量相结合来判断主力的动向,比如在主力拉高股价出货时,往往当日的股价会出现“过山车”的走势,同时成交量会出现近期的“天量”。由于K线和成交量是两种类别的技术指标,我们不仅要将它们分别在两个子图上进行显示,而且需要协调两个子图的位置和比例。此处导入matplotlib的gridspec模块创...原创 2019-10-05 00:35:50 · 1984 阅读 · 1 评论 -
python 常用股票走势图绘制
常用股票走势图绘制K线图+移动平均线+成交量+MACD+KDJ例程如下#绘制K线图+移动平均线+成交量+MACD+KDJimport datetimeimport talibimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.gridspec as gridspec#分割子图import mpl_f...原创 2019-10-05 11:03:12 · 3661 阅读 · 2 评论 -
python matplotlib绘图总结
常用绘图工具包,matplotlib.pyplot 用来绘图matplotlib.gridspec 床来创建子图绘图前需要用到数据,数据处理一般用到的包,talib# 用来显示中文标签plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显...原创 2019-10-05 22:44:26 · 802 阅读 · 0 评论 -
python 实现Web版股票行情界面
介绍下pyecharts库的使用,以契合大家对Web版图表显示的需求。Kline方法绘制K线图from pyecharts import Klineimport pandas_datareader.data as webimport datetimedf_stockload = web.DataReader("000001.SS", "yahoo", datetime.datetim...原创 2019-10-06 09:37:23 · 3809 阅读 · 0 评论 -
python 使用Statsmodels回归分析
Statsmodels是Python中一个强大的统计分析包,包含了回归分析、时间序列分析、假设检验等等的功能。使用时需要导入Statsmodels库需要注意的是OLS()未假设回归模型有常数项,需要通过sm.add_constant()在自变量x的左侧加上一列常量1。使用matplotlib库结合Statsmodels库绘制收盘价曲线和回归直线import pandas_dataread...原创 2019-10-06 10:32:09 · 6759 阅读 · 0 评论 -
python 计算走势角度
使用tushare 获取所有上市股票,在通过daily函数获取股票信息,在计算股票走势角度import tushare as tstoken='......'#初始化pro接口pro = ts.pro_api(token)#查询当前所有正常上市交易的股票列表data = pro.stock_basic(exchange='', list_status='L', fields='ts...原创 2019-10-06 10:46:21 · 4241 阅读 · 2 评论 -
python N天择时选股策略
《海龟交易法则》中介绍了一种趋势类的择时策略——N日突破策略。策略的核心思想为:当天收盘价超过N1天内最高价认为上升趋势成立,作为买入信号;当天收盘价低于N2天内最低价格认为下跌趋势成立,作为卖出信号。也就是说,N日趋势突破买入即为N日创新高买入,股价创出阶段性新高或历史新高后,一方面说明该股有资金在运作,相对比较强势,更容易顺势而上,另一方面创新高后近期买入的投资者都有获利,上档的套牢盘比较少...原创 2019-10-07 18:11:18 · 2451 阅读 · 3 评论 -
python 回测设置
本程序是关于回测,策略使用上章择时选股策略,例程代码# N日突破择时策略import pandas_datareader.data as webimport pandas as pdimport numpy as npimport datetimeimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['...原创 2019-10-07 19:22:07 · 1883 阅读 · 0 评论 -
python 收益与风险图表集成
呈现1.盈亏状态的买卖区间及标注上买卖信号点2.资金曲线及资金最大回撤点3.基准收益曲线及使用策略后的收益曲线例程代码import pandas_datareader.data as webimport pandas as pdimport numpy as npimport datetimeimport matplotlib.pyplot as pltimport ma...原创 2019-10-07 19:33:23 · 1346 阅读 · 0 评论 -
python 风险控制
通常交易策略中会融入多个因子协同触发信号,在N日突破择时策略的基础上引入风险管理因子。该因子采用止盈止损机制来管理可能出现的风险,ATR指标则作为止盈止损的基准值。ATR指标的实现ATR指标的计算分为以下两步:第一步为计算真实波幅TR。TR=MAX[(当日最高价-当日最低价)、abs(当日最高价-昨日收盘价)、abs(昨日收盘价-当日最低价)],指的是今日振幅、今日最高价与昨日收盘价之间...原创 2019-10-10 10:42:09 · 1988 阅读 · 0 评论 -
python 用mpl_finance画k线图
例程如下:import datetimeimport pandas_datareader.data as webdf_stockload = web.DataReader("600797.SS", "yahoo", datetime.datetime(2018, 1, 1), datetime.datetime(2019, 1, 1))print(df_stockload.info()...原创 2019-10-04 21:27:15 · 6579 阅读 · 1 评论 -
python 爬虫方式获取数据
urllib.request模块from urllin import requestresp = request.urlopen("http://image.baidu.com/")print(resp.read().decode())<!DOCTYPE html> <!--STATUS OK--> <head> <...原创 2019-10-04 10:10:57 · 1093 阅读 · 0 评论 -
python内置函数 list map filter lambda 优雅使用
# filter 过滤符合条件的值 ,返回由符合条件元素组成的新列表symbols= list((filter(lambda symbol: symbol[0] != '1', symbols)))print(symbols)# map 第一个参数是方法, 第二个是传入方法的参数,一般是list,# 而在运行时,参入第一个参数方法的是一个个list里的元素 list(map(lambd...原创 2019-09-23 21:15:51 · 1309 阅读 · 0 评论 -
python 生成呈正态分布序列
股市波动是不可预知的,但是股票的涨幅概率却呈现了正态分布的特点,那么python如何生成呈正态分布的序列呢?Python内置的random模块和第三方库NumPy的random模块都提供了生成随机漫步序列的方法,接下来我们分别介绍下这两种方法的使用。内置模块random 实现import random# 生成呈正态分布的随机数# print("normalvariate: ", ...原创 2019-10-03 10:59:45 · 13392 阅读 · 0 评论 -
python中NumPy的矢量运算
接下来了解下矢量运算的能力,矢量的特性可以理解为并行化的运算,也就是说在对数组执行复杂计算时会作用到元素级别,这样仅仅用简洁的表达式就可以代替Python的for循环。我们先使用NumPy的random.normalvariate()生成一个平均收盘股价为10元(即期望为10),振幅为1元(即标准差为1),样本数量为1000的正态分布随机数组,如下所示:stock_data = np...原创 2019-10-03 11:08:09 · 3122 阅读 · 0 评论 -
python DataFrame数据生成
前言: DataFrame是一个表格型的数据结构,既有行索引 index也有列索引columns,创建DataFrame的基本方法为df = pd.DataFrame(data, index=index,columns=columns),其中data参数的数据类型可以支持由列表、一维ndarray或Series组成的字典、字典组成的字典、二维ndarray等。如下图所示,基本上可以把DataFra...原创 2019-10-03 12:41:31 · 4455 阅读 · 0 评论 -
python 用matplotlib画一个折线图
函数式绘图例程import numpy as np# 生成一个 等差数列 ,从0.5 ~ 7.5之间包括 0.5,7.5有1000个元素的数组x = np.linspace(0.5, 7.5, 1000)# 对ndarray类型x 进行矢量运算y = np.sin(x)import matplotlib.pyplot as plt# 创建图形并设置大小plt.figure(fi...原创 2019-10-03 14:35:41 · 2009 阅读 · 0 评论 -
python Panads获取股票数据及处理
pandas库在金融量化分析中优势明显,它提供了专门处理金融数据的模块,pandas-datareader包,所以在使用之前需要导入pandas-datareader模块import pandas_datareader.data as web具体获取股票数据的接口为web.DataReader()。下面分别介绍下接口的几个关键参数:第一个参数:指定股票代码,如果是苹果公司这样的...原创 2019-10-03 14:57:59 · 2159 阅读 · 0 评论 -
python 获取股票数据 tushare使用
'''# 本节 讲解 pandas_datareader和tushare包 common 和pro 获取股票数据import pandas_datareader.data as webimport datetime#获取上证指数的2017.1.1日至今的交易数据df_stockload = web.DataReader("000001.SS", "yahoo", datetime.da...原创 2019-10-03 15:35:12 · 6142 阅读 · 0 评论 -
python 全方位访问DataFrame格式数据
1.行/列索引访问在pandas中DataFrame.index可以访问DataFrame全部的行索引,DataFrame.columns可以访问DataFrame全部的列索引我们用DataFrame.axes查看交易数据行和列的轴标签基本信息,DataFrame.axes等价于DataFrame.index结合DataFrame.columns2.行/列元素访问DataFrame.val...原创 2019-10-03 20:16:06 · 3777 阅读 · 0 评论 -
python 计算简单移动平均
简单移动平均使用,window 参数表示使用前20个数据求平均。df_stockload['Ma20'] = df_stockload.Close.rolling(window=20).mean()#增加M20移动平均线print(df_stockload.head())因此前 19行数据不足20个会是NaN空标识删除缺省值的行DataFrame.dropna()方法删除NaN值。其中...原创 2019-10-03 20:46:04 · 11036 阅读 · 1 评论 -
python df遍历的N种方式
for…in 迭代循环首先介绍Python中最常用的for…in循环遍历的方式。for…in循环结构用于遍历列表、元组、字典、字符串、集合、文件等。其实for和in是两个独立的语法,for语句是Python内置的迭代器工具,用于从可迭代容器对象(如列表、元组、字典、字符串、集合、文件等)中逐个读取元素,直到容器中没有更多元素为止,工具和对象之间只要遵循可迭代协议即可进行迭代操作。in的存在使得...原创 2019-10-03 21:37:46 · 18323 阅读 · 0 评论 -
python 枚举法选择最优策略参数
枚举20~60作为移动平均天数参数,选出金额最高的做为参数例程代码import datetimeimport matplotlib.pyplot as pltimport numpy as npimport pandas_datareader as webclass QuantAverBreak: def __init__(self): self.skip...原创 2019-10-10 11:07:41 · 1023 阅读 · 0 评论