可以各种技术可以组合起来。它们被建模为DataSeries。例如,在收盘价之上获得RSI以上的计算SMA,是非常简单的:

from pyalgotrade import strategy
from pyalgotrade.barfeed import yahoofeed
from pyalgotrade.technical import ma
from pyalgotrade.technical import rsi class MyStrategy(strategy.BacktestingStrategy):
def __init__(self, feed, instrument):
super(MyStrategy, self).__init__(feed)
self.__rsi = rsi.RSI(feed[instrument].getCloseDataSeries(), 14)
self.__sma = ma.SMA(self.__rsi, 15)
self.__instrument = instrument def onBars(self, bars):
bar = bars[self.__instrument]
self.info("%s %s %s" % (bar.getClose(), self.__rsi[-1], self.__sma[-1])) # Load the yahoo feed from the CSV file
feed = yahoofeed.Feed()
feed.addBarsFromCSV("orcl", "orcl-2000.csv") # Evaluate the strategy with the feed's bars.
myStrategy = MyStrategy(feed, "orcl")
myStrategy.run()

如果您运行脚本,您应该在屏幕上看到一系列值:

  • 前14个RSI值为空。这是因为我们需要至少15个值才能获得RSI值。
  • 前28个SMA值为空。这是因为前14个RSI值为空,第15个是SMA滤波器接收到的第一个非空值。只有当我们有15个不是空值时,我们才能计算出SMA(15)。
    2000-01-03 00:00:00 strategy [INFO] 118.12 None None
    2000-01-04 00:00:00 strategy [INFO] 107.69 None None
    2000-01-05 00:00:00 strategy [INFO] 102.0 None None
    2000-01-06 00:00:00 strategy [INFO] 96.0 None None
    2000-01-07 00:00:00 strategy [INFO] 103.37 None None
    2000-01-10 00:00:00 strategy [INFO] 115.75 None None
    2000-01-11 00:00:00 strategy [INFO] 112.37 None None
    2000-01-12 00:00:00 strategy [INFO] 105.62 None None
    2000-01-13 00:00:00 strategy [INFO] 105.06 None None
    2000-01-14 00:00:00 strategy [INFO] 106.81 None None
    2000-01-18 00:00:00 strategy [INFO] 111.25 None None
    2000-01-19 00:00:00 strategy [INFO] 57.13 None None
    2000-01-20 00:00:00 strategy [INFO] 59.25 None None
    2000-01-21 00:00:00 strategy [INFO] 59.69 None None
    2000-01-24 00:00:00 strategy [INFO] 54.19 23.5673530141 None
    2000-01-25 00:00:00 strategy [INFO] 56.44 25.0687519877 None
    2000-01-26 00:00:00 strategy [INFO] 55.06 24.7476577095 None
    2000-01-27 00:00:00 strategy [INFO] 51.81 23.9690136517 None
    2000-01-28 00:00:00 strategy [INFO] 47.38 22.9108539956 None
    2000-01-31 00:00:00 strategy [INFO] 49.95 24.980004823 None
    2000-02-01 00:00:00 strategy [INFO] 54.0 28.2484181864 None
    2000-02-02 00:00:00 strategy [INFO] 54.31 28.505177315 None
    2000-02-03 00:00:00 strategy [INFO] 56.69 30.5596770599 None
    2000-02-04 00:00:00 strategy [INFO] 57.81 31.5564353751 None
    2000-02-07 00:00:00 strategy [INFO] 59.94 33.5111056589 None
    2000-02-08 00:00:00 strategy [INFO] 59.56 33.3282358994 None
    2000-02-09 00:00:00 strategy [INFO] 59.94 33.7177605915 None
    2000-02-10 00:00:00 strategy [INFO] 62.31 36.2205441255 None
    2000-02-11 00:00:00 strategy [INFO] 59.69 34.6623493641 29.0368892505
    2000-02-14 00:00:00 strategy [INFO] 62.19 37.4284445543 29.9609620198
    .
    .
    .
    2000-12-27 00:00:00 strategy [INFO] 30.69 51.3196802735 49.8506368511
    2000-12-28 00:00:00 strategy [INFO] 31.06 52.1646203455 49.997518354
    2000-12-29 00:00:00 strategy [INFO] 29.06 47.3776678335 50.0790646925

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

PyalgoTrade 技术组合计算(四)的更多相关文章

  1. GIS开发之计算四参数,七参数

    一.四参数 想要通过控制点计算四参数,首先需要知道四参数的相关原理,推荐这篇文章: http://www.docin.com/p-1197326043.html 根据上面的计算公式,使用最小二乘法计算 ...

  2. 奇点云数据中台技术汇(四)| DataSimba系列之流式计算

    你是否有过这样的念头:如果能立刻马上看到我想要的数据,我就能更好地决策?   市场变化越来越快,企业对于数据及时性的需求,也越来越大,另一方面,当下数据容量呈几何倍暴增,数据的价值在其产生之后,也将随 ...

  3. Linux就业技术指导(四):企业CDN缓存加速原理解密

    1.1 CDN(网站加速) 1.1.1 什么是CDN CDN的全称Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和 ...

  4. SDNLAB技术分享(四):利用ODL下发流表创建VxLAN网络

    邓晓涛,当前就职于江苏省未来网络创新研究院,是CDN团队的一名研发人员,主要从事SDN相关的研发相关工作.曾就职于三星电子于先行解决方案研发组任高级工程师.思科系统于云协作应用技术部(CCATG)任工 ...

  5. [poj 3904] sky code 解题报告(组合计算+容斥原理)

    题目链接:http://poj.org/problem?id=3904 题目大意: 给出一个数列,询问从中取4个元素满足最大公约数为1的方案数 题解: 很显然,ans=总的方案数-最大公约数大于1的4 ...

  6. CNN可视化技术总结(四)--可视化工具与项目

    CNN可视化技术总结(一)-特征图可视化 CNN可视化技术总结(二)--卷积核可视化 CNN可视化技术总结(三)--类可视化 导言: 前面介绍了可视化的三种方法--特征图可视化,卷积核可视化,类可视化 ...

  7. HAWQ技术解析(四) —— 启动停止

            前面已经完毕了HAWQ的安装部署,也了解了HAWQ的系统架构与主要组件,以下開始使用它. HAWQ作为Hadoop上的一个服务提供给用户,与其他全部服务一样.最主要的操作就是启动.停止 ...

  8. Linux的桌面虚拟化技术KVM(四)——虚拟机镜像格式对比与转换

    Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机 Linux的桌面虚拟化技术KVM(二)——远程桌面管理 Linux的桌面虚拟化技术KVM(三)——KVM虚拟机克隆和快照 (1).常用镜像格 ...

  9. 安卓 dex 通用脱壳技术研究(四)

    /*     当第一个类执行到此函数时,我们在dvmDefineClass执行之前,也就是第一个类加载之前     注入我们的dump代码:即DumpClass()函数 */ static void  ...

随机推荐

  1. scikit-learn 中常用的评估模型

    一,scikit-learn中常用的评估模型 1.评估分类模型: ​ 2.评估回归模型: ​ 二.常见模型评估解析: •对于二分类问题,可将样例根据其真实类别和分类器预测类别划分为:(T,F表示预测的 ...

  2. node核心:异步流程控制

    Node.js的异步是整个学习Node.js过程中重中之重. 1)异步流程控制学习重点 2)Api写法:Error-first Callback 和 EventEmitter 3)中流砥柱:Promi ...

  3. 77. Combinations(回溯)

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. Example: I ...

  4. Flask权限管理

    权限管理功能的实现可以分为以下几个小块: 1,新建数据库表Role,里面包括id(Integer,主键)name(String),permission(Integer),default(boolean ...

  5. fileupload上传文件时带参数

    var userID = ""; $('#picture').fileupload({ url: "http://localhost:35708/Handler/File ...

  6. Windows共享文件

    通常局域网中处于同一工作组或同一域的计算机只要右键设置文件夹共享即可,但跨工作组或跨域的共享就需要设置一番了. 一.启用共享 二.关闭共享密码保护 这是英文版系统示例,中文版一样,就是在第一步向下拉一 ...

  7. Windows10下用Anaconda3安装TensorFlow教程【转】

    本文转载自:https://www.cnblogs.com/HongjianChen/p/8385547.html 1. 安装好Anaconda3版本 (1) 注:可以发现最新版本是Anaconda5 ...

  8. Using SQLXML Bulk Load in the .NET Environment

    http://msdn.microsoft.com/en-us/library/ms171878.aspx 1.首先创建一张表 CREATE TABLE Ord ( OrderID ,) PRIMAR ...

  9. mysql导入source数据库

    首先要确保数据库存在,如果不存在则创建 方法1 source 很智能,很方便,很快捷. # mysql -uroot -p Enter password: Welcome to the MySQL m ...

  10. hdu1527威佐夫博弈

    参考博客 https://hrbust-acm-team.gitbooks.io/acm-book/content/game_theory/wei_zuo_fu_bo_yi.html 满足 ,后手必胜 ...