可以各种技术可以组合起来。它们被建模为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. 鸟哥linux私房菜学习笔记,U盘安装centos5.3不能正常进入图形界面的问题

    前面说过自己成功引导了centos系统,现在进入启动界面,首次进入会进行相关设置,按照步骤一步一步完成,取消完光盘安装,点击下一步,就进入下面这个界面,没有登录框...没错!怎么蓝屏了,这可是linu ...

  2. 索引查找Java实现

    package 索引查找; import java.util.Scanner; public class IndexSearch { public static long stu[] = { 1080 ...

  3. 2. Add Two Numbers(2个链表相加)

    You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...

  4. VS2010/MFC编程入门之二十(常用控件:静态文本框)

    上一节鸡啄米讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始鸡啄米将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组 ...

  5. 33Sql数据删除与遍历

    数据库的创建.添加.修改.查询.删除都是利用SQL语句和类QSqlQuery的结合. QSqlDatabase::database().可返回当前正在打开的数据库对象. 数据库的删除 //获取删除的名 ...

  6. appium问题解决

    ppium 1.4.16 版本 测试安卓7.0 提示AppiumSettings.Unlock.AndroidInputManager 安装 修改 C:\Program Files (x86)\App ...

  7. struts2.1.8 spring2.5.6 hibernate3.3G 依赖jar包

    ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-"} struts2-spring-p ...

  8. linux内核分析第二周-完成一个简单的时间片轮转多道程序内核代码

    中断时计算机运行的一个非常重要的功能.之所以重要,是因为由于种种原因,计算机不能将一个程序从头执行到尾不间断,而是可能会出现很多像等待输入设备输出设备的过程,如果没有中断系统,CPU只能等待,造成资源 ...

  9. Zynq-Linux移植学习笔记之十-u-boot网络配置

    在zynq开发板zc706上,网络通路由下面三个设备组成: 其中zynq负责对phy进行配置,当zynq上的网络控制器以及phy完成正确配置时,能够看到RJ45上面的黄灯亮,此时表明链路已经通了.如果 ...

  10. phantomjs学习资料

    http://blog.csdn.net/mecho/article/details/45888465 phantomjs的使用说明,尤其是webpage创建,资源加载前后的处理方法.