python量化分析数据导入01

这是个人第一次在CSDN上发BLOG,主要想记录自己学习量化的过程,并督促自己能坚持下来。

本节是使用backtrader回测的数据如何导入,主要内容为:

  • 本地数据csv导入
  • tushare数据导入
  • pd.DataFrame数据导入注意事项

知识点补短板:
1、from future import print_function。是什么意思?
python2.X - python3.X新旧版本的兼容性方面存在差异,处理方法是按照最新的特性来处理。将future可以看成Python的一个专门存放新特性的模块。
from future import print_function。其实这句函数之后,即使在低版本的python2.X,当使用print函数时,须python3.X那样加括号使用。tips:python2.X中print不需要括号,而在python3.X中则需要。
对于所有的from future import _,则意味着在新旧版本的兼容性方面存在差异,处理方法是按照最新的特性来处理。可以将future看成Python的一个专门存放新特性的模块。除了print_function,还有absolute_import,division,unicode_literals。
主要目的还是实现代码引用时,在低版本上能够使用新版上的功能
2、os.path.realpath(file) 获取当前目录及文件名称
os.path.dirname() 获取上级目录(即当前文件所在文件夹名)
os.path.join (当前目录, 加入目录)添加目录
print(os.path.realpath(file)) #获取当前文件路径
print(os.path.dirname(os.path.realpath(file))) # 获取当前文件上级目录
os.path.dirname(os.path.dirname(os.path.realpath(file))) # 获取当前文件上上级目录


# 目录打印的结果是  C:/study/project
project_path = os.path.dirname(os.path.dirname(__file__))
# 拼接后的路径是:C:/study/project\datas
data_path = os.path.join(project_path,'datas')
#--------------------------------------
# 如果想让项目目录变为\形式,使用adspath (注:在python下是没有必要这样处理的,现在仅提供了一种改为\形式的方法而已)
project_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 这个时候的路径是:C:\study\project\datas
data_path = os.path.join(project_path,'datas')

CSV数据导入路径为:
方法1

# 先找到脚本文件的位置
modepath = os.path.dirname(__file__)
# 然后根据脚本与数据的相对关系找到数据位置,这样脚本从任意地方被调用,都可以正确地访问到数据
datapath = modepath+'/data/000998.SZ.csv'

注:python 脚本文件在C:/Users/PycharmProjects/pythonProject 文件夹中

C:/Users/PycharmProjects/pythonProject
C:/Users/PycharmProjects/pythonProject/data/000998.SZ.csv

方法2

# 先找到脚本文件的位置
modepath = os.path.dirname(__file__)
# 然后根据脚本与数据的相对关系找到数据位置,这样脚本从任意地方被调用,都可以正确地访问到数据
# datapath = modepath+'/data/000998.SZ.csv'
datapath = os.path.join(modepath, './data/000998.SZ.csv')   # ./ 代表当前所在的目录

C:/Users/PycharmProjects/pythonProject
C:/Users/PycharmProjects/pythonProject./data/000998.SZ.csv

方法3

# 先找到脚本文件的位置
modepath = os.path.dirname(__file__)
# 然后根据脚本与数据的相对关系找到数据位置,这样脚本从任意地方被调用,都可以正确地访问到数据
# datapath = modepath+'/data/000998.SZ.csv'
# datapath = os.path.join(modepath, './data/000998.SZ.csv')
datapath = os.path.join(modepath, 'data/000998.SZ.csv')

C:/Users/PycharmProjects/pythonProject
C:/Users/PycharmProjects/pythonProject\data/000998.SZ.csv

以上3种方案的数据 GenericCSVData均可以导入

import backtrader as bt    # 引入backtrader 框架
import datetime
import pandas as pd
import numpy as np
import os                 # 用于路径管理 数据导入时使用# 创建策略
class TestStrategy(bt.Strategy):def log(self, txt, dt=None):"""日志函数"""dt = dt or self.datas[0].datetime.date(0)print('%s, %s' % (dt.isoformat(), txt))def __init__(self):self.dataclose = self.datas[0].closedef next(self):self.log('Close,%.2f' % self.dataclose[0])# 创建cerebro实例
cerebro = bt.Cerebro()
# 添加策略
cerebro.addstrategy(TestStrategy)
# 先找到脚本文件的位置
modepath = os.path.dirname(__file__)
# 然后根据脚本与数据的相对关系找到数据位置,这样脚本从任意地方被调用,都可以正确地访问到数据
# datapath = modepath+'/data/000998.SZ.csv'
# datapath = os.path.join(modepath, './data/000998.SZ.csv')
datapath = os.path.join(modepath, 'data/000998.SZ.csv')# data feeds 创建
data = bt.feeds.GenericCSVData(dataname=datapath,fromdate=datetime.datetime(2020, 8, 13),todate=datetime.datetime(2021, 8, 13),nullvalue=0.0,dtformat='%Y-%m-%d',       # 自动把index数据中的符合日期的格式变成datetime类型datetime=0,open=2,high=3,low=4,close=5,volume=9,openinterest=-1
)# dataframe = pd.read_csv('dfqc.csv', index_col=0, parse_dates=True)
# dataframe['openinterest'] = 0
# data = bt.feeds.PandasData(dataname=dataframe,
#                            fromdate=datetime.datetime(2015, 1, 1),
#                            todate=datetime.datetime(2016, 12, 31)
#                            )
# 在cerebro中添加价格数据
cerebro.adddata(data)
# 设置启动资金
cerebro.broker.setcash(100000.0)
# 打印开始资金
print('Starting Portfolio Value:%.2f' % cerebro.broker.getvalue())
# 遍历所有数据
cerebro.run()
# 打印最后结果
print('Final Portfolio Value:%.2f' % cerebro.broker.getvalue())

2021-08-06, Close,23.35
2021-08-09, Close,23.14
2021-08-10, Close,23.35
2021-08-11, Close,22.93
2021-08-12, Close,22.97
Final Portfolio Value:100000.00

学习python量化分析相关推荐

  1. python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据

    python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...

  2. Python 量化分析ETF指数基金投资

    Python 量化分析ETF指数基金. 标签(空格分隔): python 量化 ETF tushare pandas 文章目录 Python 量化分析ETF指数基金. 数据获取 数据分析 在喜马拉雅上 ...

  3. Python量化分析之K线模式识别

    Python量化分析中,基于TA-Lib 的K线的指标分析 转自 https://www.ricequant.com/community/topic/2393 函数名:CDL2CROWS 名称:Two ...

  4. python聚宽量化_今天开始使用聚宽的系统学习python量化交易

    今天开始使用聚宽的系统学习python量化交易 满满的成就感,终于在两个月时间里稍微懂一点程序是怎么了,虽然学习的进度比较慢,但是还是学会了一些东西 # 统计a中元素出现的次数 a = [1,2,3, ...

  5. python量化分析前景_Python3 量化分析笔记从小白到破产-学习路线规划

    文:蓝兔子读难NOTES 图: 配图 来源于网络 Python3 量化分析从小白到破产 学习路线规划 编码:0002 上一次我们安装了 jupyter notebook 作为我们的开发环境,但是我们在 ...

  6. python 量化分析 入门_量化入门-小白到菜鸟的学习路线

    小白到菜鸟的入门学习路线,不要盲目以为多看策略就能学会,要注意学习方法. 本文的主要目的 很多新人面对多如牛毛的策略不知从何下手,在很多较难的帖子下面留言一些最基础的问题.小白不知道该先学什么,后学什 ...

  7. 福利 | 零基础学习Python量化交易 !(深圳)

    文末有数据派独家福利  投资界的人才需求 量化投资在中国已经进入到一个高速发展期.量化人才需求也成为众多金融企业的关注.金融科技企业发现中国目前正面临严重的金融科技专业人才短缺.而量化分析从业者,俗称 ...

  8. python量化分析岗位_量化金融有哪些职位可以选择?

    机会成本 之前写了自己如何从自动化领域转行到金融领域,后台很多朋友私信问自己的背景适不适合转行做量化,或者是如果想做量化需要做什么准备,虽然简单的回答了一些,但是由于平时工作和学习实在太忙,难免相对简 ...

  9. python 量化分析 入门_【合辑·收藏】Python量化从入门到精通

    原标题:[合辑·收藏]Python量化从入门到精通 引言 自2018年9月27日发第一篇推文以来,公众号"Python金融量化"专注于分享Python在金融量化领域的实战应用,坚持 ...

  10. Python 量化分析——基本面选股模型

    摘要 利用Python进行量化分析,AkShare获取股票基本面财务数据.进行基本面数据分析,pe市盈率.ps市销率.pb市净率.总市值等数理统计,以及图表展示.基于莫伦卡选股模型进行编码,对A股30 ...

最新文章

  1. OneGame V1.0.2 发布,让运营游戏不再是梦想
  2. C#调用python文件
  3. Abp vNext异常处理的缺陷/改造方案
  4. html文件怎么导出stl文件,各种3D建模软件导出STL文件的小技巧(一)
  5. java 中 transient关键字
  6. Linux kernel之SMP初始化
  7. Silverlight MMORPG网页游戏开发课程(Game Lesson):目录
  8. 关联 VMware 产品的内部版本号和版本 (1014508)
  9. php删除英文链接词,英语写作词汇大全:转折连接词
  10. $.post 提交文件_PHP表单提交
  11. ActiveMQ的监控
  12. latex中文小标题_latex定制标题样式
  13. windows10 给指定扩展名扩展名添加右键菜单
  14. 网页超链接无法访问本地文件
  15. 几种不同的方式用Python连接数据库
  16. 怎样更改计算机管理员用户名,Administrator怎么修改账户用户名教程
  17. 大前端学习记二开发准备
  18. socket初识和安装
  19. 几分钟私人定制APP全攻略!!
  20. 【arduino--8266】----系列传感器和模块实验目录清单

热门文章

  1. InsecureProgramming-master——abo2
  2. xxl-job 带参数执行和高可用部署
  3. [转载] 北京公交集团新LOGO
  4. 【其它】怎样开启Win7快速启动栏
  5. CSS特效二:按钮动画效果
  6. Wireshark实验 - TCP
  7. 《影响力》 让人顺从的六大原理 [美] Robert B. Cialdini
  8. fsQCA+NCA方法的软件操作及注意事项、论文实证分析部分的写作范式
  9. win10文件服务器ssd当缓存盘,Win10怎么启用设备上的写入缓存|提高固态硬盘性能方法...
  10. Stata | 连续变量to类别变量