PyAlgoTrade 0.20 中文文档(一)(4)

简介: PyAlgoTrade 0.20 中文文档(一)

PyAlgoTrade 0.20 中文文档(一)(3)https://developer.aliyun.com/article/1524142

CSV 支持

class pyalgotrade.feed.csvfeed.``Feed(dateTimeColumn, dateTimeFormat, converter=None, delimiter=', ', timezone=None, maxLen=None)

基类:pyalgotrade.feed.csvfeed.BaseFeed

一个从 CSV 格式文件加载值的数据源。

参数:
  • dateTimeColumn (string.) – 具有日期时间信息的列的名称。
  • dateTimeFormat (string.) – 日期时间格式。将使用 datetime.datetime.strptime 来解析列。
  • converter (function.) – 具有两个参数(列名和值)的函数,用于将字符串值转换为其他值。默认转换器将尝试将值转换为浮点数。如果失败,则返回原始字符串。
  • delimiter (string.) – 用于分隔值的字符串。
  • timezone (一个 pytz 时区.) – 用于本地化日期时间的时区。检查 pyalgotrade.marketsession
  • maxLen (int.) – 每个 pyalgotrade.dataseries.DataSeries 将保存的值的最大数量。一旦有界长度已满,当添加新项时,相应数量的项将从另一端丢弃。如果为 None,则使用 dataseries.DEFAULT_MAX_LEN。

|

addValuesFromCSV(path)

从文件中加载值。

参数: path (string.) – CSV 文件的路径。

CSV 支持示例

以下是格式如下的文件

Date,USD,GBP,EUR
2013-09-29,1333.0,831.203,986.75
2013-09-22,1349.25,842.755,997.671
2013-09-15,1318.5,831.546,993.969
2013-09-08,1387.0,886.885,1052.911
.
.
.

可以这样加载:

from __future__ import print_function
from pyalgotrade.feed import csvfeed
feed = csvfeed.Feed("Date", "%Y-%m-%d")
feed.addValuesFromCSV("quandl_gold_2.csv")
for dateTime, value in feed:
    print(dateTime, value) 

输出应该是这样的:

1968-04-07 00:00:00 {'USD': 37.0, 'GBP': 15.3875, 'EUR': ''}
1968-04-14 00:00:00 {'USD': 38.0, 'GBP': 15.8208, 'EUR': ''}
1968-04-21 00:00:00 {'USD': 37.65, 'GBP': 15.6833, 'EUR': ''}
1968-04-28 00:00:00 {'USD': 38.65, 'GBP': 16.1271, 'EUR': ''}
1968-05-05 00:00:00 {'USD': 39.1, 'GBP': 16.3188, 'EUR': ''}
1968-05-12 00:00:00 {'USD': 39.6, 'GBP': 16.5625, 'EUR': ''}
1968-05-19 00:00:00 {'USD': 41.5, 'GBP': 17.3958, 'EUR': ''}
1968-05-26 00:00:00 {'USD': 41.75, 'GBP': 17.5104, 'EUR': ''}
1968-06-02 00:00:00 {'USD': 41.95, 'GBP': 17.6, 'EUR': ''}
1968-06-09 00:00:00 {'USD': 41.25, 'GBP': 17.3042, 'EUR': ''}
.
.
.
2013-07-28 00:00:00 {'USD': 1331.0, 'GBP': 864.23, 'EUR': 1001.505}
2013-08-04 00:00:00 {'USD': 1309.25, 'GBP': 858.637, 'EUR': 986.921}
2013-08-11 00:00:00 {'USD': 1309.0, 'GBP': 843.156, 'EUR': 979.79}
2013-08-18 00:00:00 {'USD': 1369.25, 'GBP': 875.424, 'EUR': 1024.964}
2013-08-25 00:00:00 {'USD': 1377.5, 'GBP': 885.738, 'EUR': 1030.6}
2013-09-01 00:00:00 {'USD': 1394.75, 'GBP': 901.292, 'EUR': 1055.749}
2013-09-08 00:00:00 {'USD': 1387.0, 'GBP': 886.885, 'EUR': 1052.911}
2013-09-15 00:00:00 {'USD': 1318.5, 'GBP': 831.546, 'EUR': 993.969}
2013-09-22 00:00:00 {'USD': 1349.25, 'GBP': 842.755, 'EUR': 997.671}
2013-09-29 00:00:00 {'USD': 1333.0, 'GBP': 831.203, 'EUR': 986.75}

目录

  • feed – 基本 feeds
  • CSV 支持
  • CSV 支持示例

barfeed – 条形提供者

原文:gbeced.github.io/pyalgotrade/docs/v0.20/html/barfeed.html

class pyalgotrade.barfeed. BaseBarFeed(frequency, maxLen=None)

基类:pyalgotrade.feed.BaseFeed

提供源的 pyalgotrade.bar.Bar 的基类。

参数:
  • frequency – 条的频率。在pyalgotrade.bar.Frequency中定义的有效值。
  • maxLen (int.) – pyalgotrade.dataseries.bards.BarDataSeries 将保存的值的最大数量。一旦有限长度满了,当添加新项目时,相应数量的项目将从对立端丢弃。如果为 None,则使用 dataseries.DEFAULT_MAX_LEN。

|

这是一个基类,不应直接使用。

getNextBars()

重写以返回源中的下一个 pyalgotrade.bar.Bars ,如果没有条则返回 None。

这是给 BaseBarFeed 子类的,不应直接调用。

getCurrentBars()

返回当前的pyalgotrade.bar.Bars

getLastBar(instrument)

返回给定仪器的最后一个 pyalgotrade.bar.Bar ,或 None。

getDefaultInstrument()

返回最后一个注册的仪器。

getRegisteredInstruments()

返回注册的仪器名称列表。

getDataSeries(instrument=None)

返回给定仪器的 pyalgotrade.dataseries.bards.BarDataSeries

参数: instrument (string.) – 仪器标识符。如果为 None,则返回默认仪器。
返回类型: pyalgotrade.dataseries.bards.BarDataSeries

CSV

class pyalgotrade.barfeed.csvfeed. BarFeed(frequency, maxLen=None)

基类:pyalgotrade.barfeed.membf.BarFeed

基类为基于 CSV 文件的 pyalgotrade.barfeed.BarFeed

这是一个基类,不应直接使用。

class pyalgotrade.barfeed.csvfeed. GenericBarFeed(frequency, timezone=None, maxLen=None)

基类:pyalgotrade.barfeed.csvfeed.BarFeed

一个从 CSV 文件加载条的 BarFeed,格式如下:

Date Time,Open,High,Low,Close,Volume,Adj Close
2013-01-01 13:59:00,13.51001,13.56,13.51,13.56,273.88014126,13.51001
参数:
  • frequency – 条的频率。检查pyalgotrade.bar.Frequency
  • timezone (A pytz timezone.) – 用于本地化条形图的默认时区。请检查 pyalgotrade.marketsession
  • maxLen (int.) – pyalgotrade.dataseries.bards.BarDataSeries 将保存的值的最大数量。一旦有界长度满了,当添加新项时,相应数量的项将从另一端丢弃。如果为 None,则使用 dataseries.DEFAULT_MAX_LEN。

|

注意

  • CSV 文件必须在第一行中具有列名。
  • 如果Adj Close列为空,也没关系。
  • 当使用多个工具时:
  • 如果加载的所有工具都位于相同的时区,则可能不需要指定时区参数。

  • 如果加载的任何工具位于不同的时区,则应设置时区参数。

addBarsFromCSV(instrument, path, timezone=None, skipMalformedBars=False)

从 CSV 格式文件中加载给定工具的条形图。该工具将在条形图数据源中注册。

参数:
  • instrument (string.) – 工具标识符。
  • path (string.) – CSV 文件的路径。
  • timezone (A pytz timezone.) – 用于本地化条形图的时区。请检查 pyalgotrade.marketsession
  • skipMalformedBars (boolean.) – 设置为 True 以跳过解析条形图时的错误。

|

setDateTimeFormat(dateTimeFormat)

设置要与 strptime 一起使用的格式字符串以解析日期时间列。## 雅虎财经

class pyalgotrade.barfeed.yahoofeed.``Feed(frequency=86400, timezone=None, maxLen=None)

基类:pyalgotrade.barfeed.csvfeed.BarFeed

从从雅虎财经下载的 CSV 文件中加载条形图的pyalgotrade.barfeed.csvfeed.BarFeed

参数:
  • frequency – 条形图的频率。仅支持 pyalgotrade.bar.Frequency.DAYpyalgotrade.bar.Frequency.WEEK
  • timezone (A pytz timezone.) – 用于本地化条形图的默认时区。请检查 pyalgotrade.marketsession
  • maxLen (int.) – pyalgotrade.dataseries.bards.BarDataSeries 将保存的值的最大数量。一旦有界长度满了,当添加新项时,相应数量的项将从另一端丢弃。如果为 None,则使用 dataseries.DEFAULT_MAX_LEN。

|

注意

雅虎财经 CSV 文件缺乏时区信息。当使用多个工具时:

  • 如果加载的所有仪器都在同一个时区,则可能不需要指定时区参数。

  • 如果加载的任何仪器处于不同的时区,则必须设置时区参数。

addBarsFromCSV(instrument, path, timezone=None)

从 CSV 格式文件中加载给定仪器的条形图。该仪器将在条形图 feed 中注册。

参数:
  • instrument (string.) – 仪器标识符。
  • path (string.) – CSV 文件的路径。
  • timezone (一个 pytz 时区.) – 用于本地化条形图的时区。查看pyalgotrade.marketsession

| ## Google Finance

class pyalgotrade.barfeed.googlefeed.``Feed(frequency=86400, timezone=None, maxLen=None)

Bases: pyalgotrade.barfeed.csvfeed.BarFeed

从 Google Finance 下载的 CSV 文件加载条形图的pyalgotrade.barfeed.csvfeed.BarFeed

参数:
  • frequency – 条形图的频率。目前仅支持pyalgotrade.bar.Frequency.DAY
  • timezone (一个 pytz 时区.) – 用于本地化条形图的默认时区。查看pyalgotrade.marketsession
  • maxLen (int.) – pyalgotrade.dataseries.bards.BarDataSeries将保存的值的最大数量。一旦达到有界长度,当添加新项时,相应数量的项将从另一端丢弃。如果为 None,则使用 dataseries.DEFAULT_MAX_LEN。

|

注意

Google Finance csv 文件缺少时区信息。在处理多个仪器时:

  • 如果加载的所有仪器都在同一个时区,则可能不需要指定时区参数。

  • 如果加载的任何仪器处于不同的时区,则必须设置时区参数。

addBarsFromCSV(instrument, path, timezone=None, skipMalformedBars=False)

从 CSV 格式文件中加载给定仪器的条形图。该仪器将在条形图 feed 中注册。

参数:
  • instrument (string.) – 仪器标识符。
  • path (string.) – CSV 文件的路径。
  • timezone (一个 pytz 时区.) – 用于本地化条形图的时区。查看pyalgotrade.marketsession
  • skipMalformedBars (boolean.) – 如果在解析条形图时跳过错误,则为 True。

| ## Quandl

class pyalgotrade.barfeed.quandlfeed.``Feed(frequency=86400, timezone=None, maxLen=None)

Bases: pyalgotrade.barfeed.csvfeed.GenericBarFeed

从 Quandl 下载的 CSV 文件加载 bars 的 pyalgotrade.barfeed.csvfeed.BarFeed

参数:
  • frequency – bars 的频率。仅支持 pyalgotrade.bar.Frequency.DAYpyalgotrade.bar.Frequency.WEEK
  • timezone一个 pytz 时区。)– 用于本地化 bars 的默认时区。请查看 pyalgotrade.marketsession
  • maxLen整数。)– pyalgotrade.dataseries.bards.BarDataSeries 将保存的值的最大数量。一旦有限长度满了,当添加新项时,将从另一端丢弃相应数量的项。如果为 None,则使用 dataseries.DEFAULT_MAX_LEN。

|

注意

在处理多个仪器时:

  • 如果加载的所有仪器都位于同一时区,则可能不需要指定时区参数。

  • 如果加载的任何仪器位于不同的时区,则必须设置时区参数。 ## Ninja Trader

pyalgotrade.barfeed.ninjatraderfeed. Feedfrequencytimezone=NonemaxLen=None

基类:pyalgotrade.barfeed.csvfeed.BarFeed

一个从 NinjaTrader 导出的 CSV 文件加载 bars 的 pyalgotrade.barfeed.csvfeed.BarFeed

参数:
  • frequency – bars 的频率。仅支持 pyalgotrade.bar.Frequency.MINUTEpyalgotrade.bar.Frequency.DAY
  • timezone一个 pytz 时区。)– 用于本地化 bars 的默认时区。请查看 pyalgotrade.marketsession
  • maxLen整数。)– pyalgotrade.dataseries.bards.BarDataSeries 将保存的值的最大数量。一旦有限长度满了,当添加新项时,将从另一端丢弃相应数量的项。如果为 None,则使用 dataseries.DEFAULT_MAX_LEN。

|

addBarsFromCSVinstrumentpathtimezone=None

从 CSV 格式文件加载给定仪器的 bars。该仪器将在 bar feed 中注册。

参数:
  • instrument字符串。)– 仪器标识符。
  • path字符串。)– 文件的路径。
  • timezone一个 pytz 时区。)– 用于本地化 bars 的时区。请查看 pyalgotrade.marketsession

|

目录

  • barfeed – Bar providers
  • CSV
  • Yahoo! Finance
  • 谷歌财经
  • Quandl
  • 忍者交易员

技术 - 技术指标

原文:gbeced.github.io/pyalgotrade/docs/v0.20/html/technical.html

class pyalgotrade.technical.``EventWindow(windowSize, dtype=, skipNone=True)

基类:object

一个 EventWindow 类负责在一系列值的移动窗口上进行计算。

参数:
  • windowSizeint.) - 窗口的大小。必须大于 0。
  • dtype数据类型.) - 数组的期望数据类型。
  • skipNone布尔.) - 如果 None 值不应包含在窗口中,则为 True。

|

注意

这是一个基类,不应直接使用。

getValue()

重写以使用窗口中的值计算值。

getValues()

返回一个具有窗口中值的 numpy.array。

getWindowSize()

返回窗口大小。

class pyalgotrade.technical.``EventBasedFilter(dataSeries, eventWindow, maxLen=None)

基类:pyalgotrade.dataseries.SequenceDataSeries

EventBasedFilter 类负责捕获 pyalgotrade.dataseries.DataSeries 中的新值,并使用 EventWindow 计算新值。

参数:
  • dataSeriespyalgotrade.dataseries.DataSeries.) - 正在过滤的 DataSeries 实例。
  • eventWindowEventWindow.) - 用于计算新值的 EventWindow 实例。
  • maxLenint.) - 要保持的最大值数。一旦有限长度已满,添加新项时,将从对端丢弃相应数量的项。如果为 None,则使用 dataseries.DEFAULT_MAX_LEN。

|

示例

以下示例显示如何组合 EventWindowEventBasedFilter 来构建自定义过滤器:

from __future__ import print_function
from pyalgotrade import dataseries
from pyalgotrade import technical
# An EventWindow is responsible for making calculations using a window of values.
class Accumulator(technical.EventWindow):
    def getValue(self):
        ret = None
        if self.windowFull():
            ret = self.getValues().sum()
        return ret
# Build a sequence based DataSeries.
seqDS = dataseries.SequenceDataSeries()
# Wrap it with a filter that will get fed as new values get added to the underlying DataSeries.
accum = technical.EventBasedFilter(seqDS, Accumulator(3))
# Put in some values.
for i in range(0, 50):
    seqDS.append(i)
# Get some values.
print(accum[0])  # Not enough values yet.
print(accum[1])  # Not enough values yet.
print(accum[2])  # Ok, now we should have at least 3 values.
print(accum[3])
# Get the last value, which should be equal to 49 + 48 + 47.
print(accum[-1]) 

PyAlgoTrade 0.20 中文文档(一)(5)https://developer.aliyun.com/article/1524144

相关文章
|
Unix 索引 Python
BackTrader 中文文档(一)(2)
BackTrader 中文文档(一)
477 0
|
Shell 网络安全 开发工具
Tabby终端工具的配置和使用
Tabby终端工具的配置和使用
8595 0
|
存储 Java 测试技术
JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)
JAVA-MAVEN初学者教程(配置、pom.xml、依赖管理等)
2750 0
成功解决A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,co
成功解决A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,co
|
算法 Oracle 关系型数据库
PyAlgoTrade 0.20 中文文档(一)(1)
PyAlgoTrade 0.20 中文文档(一)
216 0
|
8月前
|
关系型数据库 Linux 数据库
PostgreSQL 入门指南:安装、配置与基本命令
本文从零开始,详细介绍如何在 Windows、Linux 和 macOS 上安装和配置 PostgreSQL,涵盖30+个实操代码示例。内容包括安装步骤、配置远程访问和用户权限、基础数据库操作命令(如创建表、插入和查询数据),以及常见问题的解决方案。通过学习,你将掌握 PostgreSQL 的基本使用方法,并为后续深入学习打下坚实基础。
8244 1
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
2355 6
|
人工智能 JavaScript 程序员
vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持
vue中内置指令v-model的作用和常见使用方法介绍以及在自定义组件上支持
1527 0
|
NoSQL 数据可视化 Linux
2022 年超详细步骤讲解 CentOS 7 安装Redis 。解决Redis Desktop Manager 图形化工具连接失败解决 ;connection failed处理。开机自启Redis
这篇文章提供了在CentOS 7上安装Redis的详细步骤,包括上传Redis安装包、解压安装、编译、安装、备份配置文件、修改配置以支持后台运行和设置密码、启动Redis服务、使用客户端连接Redis、关闭Redis服务、解决Redis Desktop Manager图形化工具连接失败的问题、设置Redis开机自启动,以及Redis服务的启动和停止命令。
2022 年超详细步骤讲解 CentOS 7 安装Redis 。解决Redis Desktop Manager 图形化工具连接失败解决 ;connection failed处理。开机自启Redis
|
开发工具 git
成功解决:fatal: detected dubious ownership in repository at ‘E:/workspace/CSMarket‘。如何使用git工具通过命令行的形式
这篇文章分享了作者在使用Git工具初始化本地仓库时遇到的权限问题,提供了通过命令行解决Git仓库权限问题的方案,并介绍了如何使用Git命令行初始化项目、添加文件、提交以及关联远程仓库的步骤。
成功解决:fatal: detected dubious ownership in repository at ‘E:/workspace/CSMarket‘。如何使用git工具通过命令行的形式
下一篇
开通oss服务