zipline-benchmarks.py文件改写

改写原因:在这个模块中的 get_benchmark_returns() 方法回去谷歌财经下载对应SPY(类似于上证指数)的数据,但是Google上下载的数据在最后写入Io操作的时候会报一个恶心的编码的错误,很烦人,时好时坏的那种,就是图下这种报错。

                     

改写方式:

  1.首先去雅虎财经下载SPY.csv文件,然后把这个文件放到你对应的目录下

  2.具体代码如下

#
# Copyright 2013 Quantopian, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import numpy as np
import pandas as pd
import pytz
from datetime import datetimeimport pandas_datareader.data as pd_readerdef get_benchmark_returns(symbol, first_date, last_date):"""Get a Series of benchmark returns from Google associated with `symbol`.Default is `SPY`.Parameters----------symbol : strBenchmark symbol for which we're getting the returns.first_date : pd.TimestampFirst date for which we want to get data.last_date : pd.TimestampLast date for which we want to get data.The furthest date that Google goes back to is 1993-02-01. It has missingdata for 2008-12-15, 2009-08-11, and 2012-02-02, so we add data for thedates for which Google is missing data.We're also limited to 4000 days worth of data per request. If we make arequest for data that extends past 4000 trading days, we'll still onlyreceive 4000 days of data.first_date is **not** included because we need the close from day N - 1 tocompute the returns for day N."""# 源码# data = pd_reader.DataReader(#     symbol,#     'google',#     first_date,#     last_date# )## data = data['Close']## data[pd.Timestamp('2008-12-15')] = np.nan# data[pd.Timestamp('2009-08-11')] = np.nan# data[pd.Timestamp('2012-02-02')] = np.nan## data = data.fillna(method='ffill')# return data.sort_index().tz_localize('UTC').pct_change(1).iloc[1:]# 自己写的代码# parse = lambda x: pytz.utc.localize(datetime.strptime(x, '%Y-%m-%d'))# data = pd.read_csv("SPY.csv", parse_dates=['Date'], index_col=0, date_parser=parse)# data = data['Close']# data = data.fillna(method='ffill')# return data.sort_index().pct_change(1).iloc[0:]

总结:

  1.这次报错后,我习惯性的找到最底层也就是最后两行错误,但是只能知道是编码的错误,但是解决不了。所以以后碰到类似的第三方包的错误,不要急着从最底层开始改,应该适当的想想,我在最开始出错的地方可不可以成功的避免掉,这也是一种思路。

  2.Google财经的SPY数据不全,所以他在这个方法中定义了三列是因为这三天的数据他没有。

 

转载于:https://www.cnblogs.com/wuyongqiang/p/7943499.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css普通压缩不去,使用css-loader的minimize压缩css不起作用?

{ test: /\.(scss|css)$/, use: [!env.production? style-loader: MiniCssExtractPlugin.loader,{ loader: css-loader, options: { modules: true, minimize: true //设置css压缩}},{ loader:…

华为3COM交换机PVLAN配置使用说明

1.  PVLAN的引入   <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /><?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" />在实际应用中有这样一个需求&#xff0c;组网图如上图所示。    …

springboot启动太慢优化

需求缘起&#xff1a;有人在【springboot】微信公众号问&#xff1a;springboot启动慢的问题何时有个分享就好了&#xff0c;谢谢。粉丝的问题还是要认真的回答的。 我们先看看本节的大纲&#xff1a; &#xff08;1&#xff09;组件自动扫描带来的问题&#xff08;SpringBootA…

绑定字符串

Bind("BARAS","{0:F0}")CutString1(DataBinder.Eval(Container.DataItem,"title").ToString(),12)((bool)DataBinder.Eval(Container.DataItem,"IfShow"))?"Yes":"No" 使用 Eval 方法 Eval 方法可计算数据绑定控…

ajax封装 使用,AJAX封装类使用指南

AJAX说起来感觉很难&#xff0c;但是把他封装起来你会发现使用起来很简单了&#xff0c;当然也是简单的应用了&#xff0c;譬如留言板的应用等&#xff0c;这里首先&#xff0c;先送大家一个礼物那就是封装好的AJAX的类&#xff0c;下载地址http://xiazai.jb51.net/201412/yuan…

Linux cpuidle framework

背景Kernel版本&#xff1a;4.14ARM64处理器使用工具&#xff1a;Source Insight 3.5&#xff0c; Visio1. 介绍在Linux OS中&#xff0c;Idle进程的运行会让CPU进入cpuidle状态。当没有其他进程处于运行状态时&#xff0c;Scheduler会选择Idle进程来运行&#xff0c;此时CPU无…

Crystal 语法概述[转]

Crystal 语法概述创建公式时&#xff0c;可以选择使用 Crystal 语法或 Basic 语法。语法规则用于创建正确的公式。几乎任何使用某种语法编写的公式都可以使用另一种语法来编写。报表可以包含使用 Crystal 语法的公式&#xff0c;也可以包含使用 Basic 语法的公式。有关是使用 C…

上传源文件至虚拟服务器,C# 通过WebService上传视频文件到服务器虚拟机下源码...

【实例简介】请参考&#xff1a;http://blog.csdn.net/dwj901125/article/details/23701063这里有相当详尽的实现过程。【实例截图】【核心代码】WebServiceTest├── WebServiceTest│ ├── Backup│ │ ├── StateGrid95598│ │ │ ├── Properties│ …

Linux利器:QEMU!用它模拟开发板能替代真开发板?

不想错过我的推送&#xff0c;记得右上角-查看公众号-设为星标&#xff0c;摘下星星送给我&#xff01;QEMU&#xff0c;搞嵌入式开发的一定不陌生&#xff0c;最近各大群里都讨论疯了&#xff0c;说它是Linux利器一点也不夸张。它是一款知名的而且开源的模拟器&#xff08;官网…

前端模块化(二):模块化编程

所谓的模块化编程就是封装细节&#xff0c;提供使用接口&#xff0c;彼此之间互不影响&#xff0c;每个模块都是相互独立&#xff0c;实现某一特定的功能。如果其他模块想调用的时候&#xff0c;可以暴露我们所希望对外的公开的方法与数据。 1、函数写法 function f1(){ var va…

ASP.NET AJAX - Timer控件之摆放位置的影响

ASP.NET AJAX所提供的Timer 控件是一个服务器控件&#xff0c;它能够定时引发全网页回传&#xff0c;当然&#xff0c;在搭配了UpdatePanel 控件之后&#xff0c;就可以定时引发异步回传并局部更新UpdatePanel 控件的内容。<?xml:namespace prefix o />在此要请大家注意…

CPU怎么认识代码的?

# 语言这个东西&#xff1f;首先说明下&#xff0c;我们正常使用的python、C、C语言等等&#xff0c;我们自己能读得懂的语言&#xff0c;包括汇编语言&#xff0c;CPU都是不认识的&#xff0c;CPU 只认识一种语言&#xff0c;那就是 机器语言&#xff0c;也就是我们很多人&…

ajax 五种状态,ajax的五种状态

ajax的五种状态(readyState )0 &#xff0d; (未初始化)还没有调用send()方法1 &#xff0d; (载入)已调用send()方法&#xff0c;正在发送请求2 &#xff0d; (载入完成)send()方法执行完成&#xff0c;已经接收到全部响应内容3 &#xff0d; (交互)正在解析响应内容4 &#x…

nodeJs的学习之路(1)

一 什么是nodeJs nodeJs是一个后端技术&#xff0c;研究web应用的开发模式&#xff0c;能够开发一些简单的服务器&#xff0c;学会操作数据库等等。官方解释就是&#xff1a;nodeJs是基于谷歌v8引擎的javascript运行环境 nodeJs使用了一个事件驱动&#xff0c;非非阻塞式I/O模型…

u盘病毒之tel.xls.exe

系统症状每次双击盘符出现一个新窗口windows任务管理器出现了一个Excel的程序鼠标右键点盘符出现"Auto"字样无法显示隐藏文件无法 取消或者钩选 隐藏已知文件类型的扩展名 样本信息File size: 49152 bytes MD5: d88f7c6c15585404c30c92a11c429c36 SHA1: af2120915a1e…

节日才需要快乐吗?

---- 当然需要天天快乐2020年的国庆和中秋是挺特别的&#xff0c;也是国庆&#xff0c;也是中秋&#xff0c;而且今天还能看NBA总决赛助兴。这么愉快的节日&#xff0c;祝我们的国家繁荣昌盛&#xff0c;国泰民安&#xff0c;也祝大家中秋快乐&#xff0c;当然中秋后也需要快乐…

大屏幕服务器无信号,关于思讯互动平台大屏幕使用过程中错误的排查

关于思讯互动平台大屏幕使用过程中错误的排查一、错误原因分析 原因具体内容浏览器原因包括但不限于浏览器不兼容、浏览器设置出问题、浏览器安装了不明插件、浏览器有缓存电脑原因电脑性能太差、开启了太多程序进程、电脑系统老旧网络原因断网、多人共同占用网络导致网速过慢人…

我在富士康13年

以下是一个读者朋友的日记---- ???? 有点恨铁不成钢的感觉这个读者跟我一样的年纪&#xff0c;都是89年&#xff0c;好吧&#xff0c;说到这里突然觉得又马上要老一岁了&#xff0c;因为小云跟我说&#xff0c;我马上就要过生日了&#xff0c;我从来就记不清自己的生日&…

《Android源码设计模式》--装饰模式

No1&#xff1a; Activity继承于ContextThemeWrapper&#xff0c;继承于ContextWrapper&#xff0c;继承于Context。 No2&#xff1a; Context中方法的所有实现均由ContextImpl类承担。 No3&#xff1a; 启动一个Activity需要3个非常重要的对象&#xff1a;Application、Contex…

域名服务器的配置文档,dns域名服务器的配置

dns域名服务器的配置 内容精选换一换使用mount命令挂载文件系统到云服务器&#xff0c;云服务器系统提示timed out。原因1&#xff1a;网络状态不稳定。原因2&#xff1a;网络连接异常。原因3&#xff1a;云服务器DNS配置错误&#xff0c;导致解析不到文件系统的域名&#xff0…