可以各种技术可以组合起来。它们被建模为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. 跟我学Makefile(四)

    使用函数:函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $(<function> <arguments>) 或是 ${<function> < ...

  2. bootstrap fileinput api翻译笔记

    bootstrap fileinput HTML标签属性 data-show-preview="false" // 是否显示预览区 multiple // 多文件 data-sho ...

  3. win10用键盘控制鼠标

    打开控制面板 进入轻松使用 更改鼠标的工作方式 勾选启用鼠标键 点击设置鼠标键 应用确定 ctrl+shift+numlock开启鼠标键 小键盘8426上下左右,5类似鼠标单击 ctrl+小键盘加速, ...

  4. 2015ACM/ICPC亚洲区沈阳站 Solution

    A - Pattern String 留坑. B - Bazinga 题意:找一个最大的i,使得前i - 1个字符串中至少不是它的子串 思路:暴力找,如果有一个串已经符合条件,就不用往上更新 #inc ...

  5. 两个星期,用Flutter撸个APP

    前言 Flutter是Google推出的跨平台的解决方案,Slogan是"Design beautiful apps",国内也有知名企业在使用和推广,例如阿里.美团都有在尝试. 个 ...

  6. sql server中的怎么把数值型转换为字符串

    ①select cast(字段 as varchar) from 表名 ②select convert(varchar(50),字段) from 表名  

  7. ubuntu14.04 安装apache+mysql+php

    1.安装apache sudo apt-get update sudo apt-get install apache2 这时http://你机器的ip,就可以访问了. 2.安装mysql sudo a ...

  8. TypeScript 照猫画虎

    定义变量类型 const num: number = 1 定义函数参数类型 const init: (p: str) => void = function(param) { alert(para ...

  9. vim 录制宏,自动循环执行组合操作

    前言 在 vim 中录制宏的意思就是把一段操作录制下来,然后可以重复执行.打个比方,我有一个文本,一共 50000 行,我要在每一行后面加一个英文句号.这个操作如果手动做的话效率非常低.这时候我可以这 ...

  10. Redis之Python 使用 Redis

    Python 使用 Redis 参考文档: http://redis.cn/clients.html#python https://github.com/andymccurdy/redis-py 安装 ...