PyAlgoTrade Hello World 第一个程序(一)

本教程的目标是快速介绍PyAlgoTrade。PyAlgoTrade的目标是帮助您实现股票交易策略。假设您有一个交易策略的想法,并且您希望使用历史数据进行评估,并查看其行为方式,那么PyAlgoTrade应该允许您以最小的努力来做到这一点。

本教程是在UNIX环境中开发的,但将其适应Windows环境的步骤应该很简单。

PyAlgoTrade有6个主要组件:

  • 策略(Strategies)
  • 数据集(Feeds)
  • 券商(Brokers)
  • DataSeries
  • 技术指标?
  • 优化

策略

这些是您定义的实现交易逻辑的类。何时购买,何时出售等

数据集

这些是提供抽象的数据。例如,您将使用CSV提要,从CSV(逗号分隔值)格式化的文件中加载条来将数据提供给策略。饲料不限于酒吧。例如,有一个Twitter Feed可以将Twitter事件纳入交易决策。

券商?

经纪人负责执行订单。

DataSeries

数据系列是用于管理时间序列数据的抽象。

技术指标

这些是用于在DataSeries之上进行计算的一组过滤器。例如SMA(简单移动平均),RSI(相对强度指数)等。这些过滤器被建模为DataSeries装饰器。

优化

这些是一组允许您在不同计算机或在同一台计算机中运行的不同进程之间进行回测的方法,或两者??的组合。它们使水平缩放变得容易。
说完这一切,我们需要测试我们的策略的第一件事是一些数据。让我们使用Oracle 2000年的股票价格,我们将使用以下命令下载:

from pyalgotrade.tools import yahoofinance;
yahoofinance.download_daily_bars(‘orcl‘,2000,‘orcl-2000.csv‘)
dw = pd.read_csv("orcl-2000.csv")
dw
Date    Open    High    Low    Close    Volume    Adj Close
0    2000-12-29    30.875000    31.312500    28.6875    29.062500    31702200    26.469546
1    2000-12-28    30.562500    31.625000    30.3750    31.062500    25053600    28.291106
2    2000-12-27    30.375000    31.062500    29.3750    30.687500    26437500    27.949563
3    2000-12-26    31.500000    32.187500    30.0000    30.937500    20589500    28.177258
4    2000-12-22    30.375000    31.984301    30.0000    31.875000    35568200    29.031115
5    2000-12-21    27.812500    30.250000    27.3125    29.500000    46719700    26.868012
6    2000-12-20    28.062500    29.812500    27.5000    28.500000    54440500    25.957232
7    2000-12-19    31.812500    33.125000    30.1250    30.625000    58653700    27.892640
8    2000-12-18    30.000000    32.437500    29.9375    32.000000    61640100    29.144962
9    2000-12-15    29.437500    30.078100    28.1875    28.562500    120004000    26.014156
10    2000-12-14    29.250000    29.937500    27.2500    27.500000    45894400    25.046452
11    2000-12-13    31.937500    32.000000    28.2500    28.375000    37933600    25.843385
12    2000-12-12    31.875000    32.500000    30.4062    30.750000    26481200    28.006487
13    2000-12-11    30.500000    32.250000    30.0000    31.937500    50279700    29.088039
14    2000-12-08    30.062500    30.625000    29.2500    30.062500    40052600    27.380326
15    2000-12-07    29.625000    29.937500    28.1250    28.312500    41088300    25.786461
16    2000-12-06    31.187500    31.625000    29.3125    30.187500    42125600    27.494173
17    2000-12-05    29.437500    31.500000    28.8750    31.500000    59754700    28.689572
18    2000-12-04    26.250000    28.875000    26.1875    28.187500    40710400    25.672613
19    2000-12-01    26.375000    27.875000    25.5000    26.437500    48663500    24.078748
20    2000-11-30    21.750000    27.625000    21.5000    26.500000    84386200    24.135672
21    2000-11-29    23.187500    23.625000    21.8125    22.875000    75409600    20.834094
22    2000-11-28    23.500000    23.812500    22.2500    22.656200    43075300    20.634816
23    2000-11-27    25.437500    25.812500    22.8750    23.125000    45665200    21.061789
24    2000-11-24    23.312500    24.250000    23.1250    24.125000    22443900    21.972569
25    2000-11-22    23.625000    24.062500    22.0625    22.312500    53315300    20.321780
26    2000-11-21    24.812500    25.625000    23.5000    23.875000    58647400    21.744874
27    2000-11-20    24.312500    25.875000    24.0000    24.750000    89778400    22.541807
28    2000-11-17    26.937500    29.250000    25.2500    28.812500    59636000    26.241851
29    2000-11-16    28.750000    29.812500    27.2500    27.375000    37986600    24.932604
...    ...    ...    ...    ...    ...    ...    ...
222    2000-02-14    60.875000    62.250000    58.6250    62.187500    37599800    28.319568
223    2000-02-11    62.500000    64.750000    58.7500    59.687500    55774000    27.181093
224    2000-02-10    60.000000    62.625000    58.0000    62.312500    45288600    28.376492
225    2000-02-09    60.062500    61.312500    58.8125    59.937500    52471600    27.294940
226    2000-02-08    60.750000    61.437500    59.0000    59.562500    55718000    27.124169
227    2000-02-07    59.312500    60.000000    58.8750    59.937500    44691200    27.294940
228    2000-02-04    57.625000    58.250000    56.8125    57.812500    40916000    26.327236
229    2000-02-03    55.375000    57.000000    54.2500    56.687500    55533200    25.814923
230    2000-02-02    54.937500    56.000000    54.0000    54.312500    63933000    24.733371
231    2000-02-01    51.250000    54.312500    50.0000    54.000000    57105600    24.591062
232    2000-01-31    47.937500    50.125000    47.0625    49.953098    68148000    22.748143
233    2000-01-28    51.500000    51.937500    46.6250    47.375000    86394000    21.574103
234    2000-01-27    55.812500    56.687500    50.0000    51.812500    61054000    23.594896
235    2000-01-26    56.750000    58.937500    55.0000    55.062500    47569200    25.074914
236    2000-01-25    55.062500    57.500000    54.8750    56.437500    53059200    25.701075
237    2000-01-24    60.250000    60.375000    54.0000    54.187500    50022400    24.676448
238    2000-01-21    61.500000    61.500000    59.0000    59.687500    50891000    27.181093
239    2000-01-20    59.000000    60.250000    58.1250    59.250000    54526800    26.981860
240    2000-01-19    56.125000    58.250000    54.0000    57.125000    49198400    26.014156
241    2000-01-18    107.875000    114.500000    105.6250    111.250000    66780000    25.331071
242    2000-01-14    109.000000    111.375000    104.7500    106.812500    57078000    24.320674
243    2000-01-13    108.500000    109.875000    103.5000    105.062500    55779200    23.922208
244    2000-01-12    112.250000    112.250000    103.6875    105.625000    83443600    24.050286
245    2000-01-11    112.625000    114.750000    109.5000    112.375000    86585200    25.587228
246    2000-01-10    108.000000    116.000000    105.5000    115.750000    91518000    26.355698
247    2000-01-07    95.000000    103.500000    93.5625    103.375000    91755600    23.537972
248    2000-01-06    100.156197    105.000000    94.6875    96.000000    109880000    21.858722
249    2000-01-05    101.625000    106.375000    96.0000    102.000000    166054000    23.224892
250    2000-01-04    115.500000    118.625000    105.0000    107.687500    116824800    24.519907
251    2000-01-03    124.625000    125.187500    111.6250    118.125000    98114800    26.896

作者:readilen
链接:http://www.jianshu.com/p/18ee2e9a99c0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

时间: 2024-07-30 07:17:20

PyAlgoTrade Hello World 第一个程序(一)的相关文章

java基础--JDK安装、环境变量配置、工具开发第一个程序、数据类型、运算符

**-----Java基础大纲-----**   **-----本章节-----** 1.Java语言的历史.特点及工作原理 2.JRE和JDK的介绍 3.Java运行环境和开发工具 4.Java基础语法 **-----下一章节-----** 5.条件语句 6.循环 7.数组 ============================================== 一:历史及开发准备 1.Java发展历程及来源 (1)发展历程 1996年1月,Sun公司发布了Java的第一个开发工具包(JD

Linux下C++的编程——开发环境搭建与第一个程序

上一篇文章Linux下C++的编程--开偏介绍中我们已经介绍了GUN.GCC.G++等一些重要的概念,现在应该开始动手实践了! 开发工具的安装 环境 Distributions版本:CentOS 6.7 Linux内核片:2.6.32-573.3.1.el6.i686 一般Linux安装完之后默认就已经安装了GCC(GNU Compiler Collection),你可以查看一下gcc和g++的版本号检查gcc和g++是否已经安装. [luowf@luoweifu ~]$ gcc -v gcc

日更第2期-2015-1-15-openFrameworks系列第一讲-手把手制作openFrameworks上的第一个程序!

恩,今天和朋友打球来着,于是今天的案例程序就做一个球吧!O(∩_∩)O哈哈~ 首先,没有看过上一篇教程的同学,还有还没有下载好VS和OpenFrameworks的同学,都去下一下. 传送地址:http://www.cnblogs.com/linongbo/p/4227552.html 那么,开始今天的日更啦! Hello OpenFrameworks! VS的安装部分我就不说了,不过我个人建议——默认是安装在C盘的,不过你要是手动改到别的盘上的话,C盘上 依然会有6G左右的内容.......Σ(

[Fluent NHibernate]第一个程序

目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Fluent Nhibernate的东东,也激起我的兴趣,想对它一探究竟,这里也将Fluent Nhibernate写成一个系列,记录自己的学习过程,关于这东东,也是第一次接触,也只能边摸索,边记录了.如果有描述错误的地方,还望多多包涵. 通过Nhibernate的学习,都觉得Nhibernate的使用映射文件的编写很麻烦,这里通过Fluent Nhi

Android使用AndEngine创建第一个程序

首先要把andengine.jar复制到libs文件夹里 01 package com.hu.anden; 02   03 import org.anddev.andengine.engine.Engine; 04 import org.anddev.andengine.engine.camera.Camera; 05 import org.anddev.andengine.engine.options.EngineOptions; 06 import org.anddev.andengine.

在Win7(64位)使用VS2015运行《OpenGL编程指南》第八版第一章程序的方法

前言:笔者第一次用vs2015来实现<OpenGL编程指南>第八版第一个程序时确实花费了不少时间,按照网上教程,尝试了各种方法,最终花费了两个上午加一个下午的时间, 成功运行了程序,花了这么多时间,确实让人懊恼,现在把运行程序的步骤记录下来,以便查阅. 1.第一步,下载oglpg-8th-edith. 如果去书本上的官网下载,下载的是第九版的,而不是第八版的源码. 去其他网站下载,下载的这个包里面没有第一章的源码,可以网上黏贴其他人的代码,建议下第八版源码,下载网址:链接:http://pan

ExtJS 第一个程序

本篇介绍如何创建一个ExtJS应用程序.并通过创建目录.导入文件.编写代码及分析代码等步骤来解释第一个ExtJS程序. 目录 1. 创建程序 1.1 创建目录建议 1.2 实际目录 1.3 index.html 1.4 运行图 2. 代码分析 2.1 Ext.onReady() 2.2 Ext.create() 1. 创建程序 1.1 创建目录建议 根据官方建议,创建一个ExtJS应用程序的目录推荐如下: - appname | - app | - namespace | - Class1.js

1.2 第一个程序

按照一般的学习惯例,第一个程序自然就是"Hello World". 运行结果如上图.代码: 在主函数中只需4句话即可创建一个新的窗口,并在其中显示文字. ? ? 第1~2行:包含头文件. 在Qt中,每一个类都有一个与该类同名的头文件. 例如主函数中的QApplication类,它的头文件就是<QApplication>,QLabel类的头文件是<QLabel>. 第6行:创建一个QApplication对象. 用到的构造函数:QApplication ( int

JAVA的第一个程序

关于下载安装环境变量的配置网上的教程已经很多了 . 下面附上第一个HelloWorld的代码 /** 这是我的第一个java程序 */ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World !"); } } 没有集成开发环境下 , 你将程序写入记事本 , 并将文件的后缀改为.java 这是java源程序的标准程序 . 在完成之后我们就开始编译了