pyalgotrade相比于zipline而言,对于多个标的的投资,似乎是薄弱了一点,但也并不是不行呀。既然是多标的策略,那么肯定有多个csv的add,其实逻辑是很简单,就直接上demo吧,反正很好理解。

# coding=utf-8
from pyalgotrade import strategy
from pyalgotrade.barfeed.csvfeed import GenericBarFeed
from pyalgotrade.bar import Frequency
from pyalgotrade.stratanalyzer import returns
from pyalgotrade.stratanalyzer import sharpe
from pyalgotrade.utils import statsclass MyStrategy(strategy.BacktestingStrategy):def __init__(self, feed):super(MyStrategy, self).__init__(feed, 10000000)self.__position = Nonedef onEnterOk(self, position):execInfo = position.getEntryOrder().getExecutionInfo()self.info("BUY at %.2f" % (execInfo.getPrice()))def onEnterCanceled(self, position):self.__position = Nonedef onExitOk(self, position):execInfo = position.getExitOrder().getExecutionInfo()self.info("SELL at $%.2f" % (execInfo.getPrice()))self.__position = Nonedef onExitCanceled(self, position):self.__position.exitMarket()def onBars(self, bars):# 1.我们弄一个简单的策略来假装一下day = bars.getDateTime().date().dayif day == 5:self.__position = self.enterLong('a', 1, True)elif day == 10:self.__position = self.enterLong('b', 1, True)elif day == 15:self.__position = self.enterLong('c', 1, True)elif day == 20:self.__position = self.enterLong('d', 1, True)# 2.读取csv文件.
feed = GenericBarFeed(Frequency.DAY, None, None)
feed.addBarsFromCSV("a", "a.csv")
feed.addBarsFromCSV("b", "b.csv")
feed.addBarsFromCSV("c", "c.csv")
feed.addBarsFromCSV("d", "d.csv")myStrategy = MyStrategy(feed)# 3.加入分析器
retAnalyzer = returns.Returns()
myStrategy.attachAnalyzer(retAnalyzer)
sharpeRatioAnalyzer = sharpe.SharpeRatio()
myStrategy.attachAnalyzer(sharpeRatioAnalyzer)# 4.运行策略
myStrategy.run()# 5.输出结果
print "Final portfolio value: $%.2f" % myStrategy.getResult()
print "Anual return: %.2f %%" % (retAnalyzer.getCumulativeReturns()[-1] * 100)
print "Average daily return: %.2f %%" % (stats.mean(retAnalyzer.getReturns()) * 100)
print "Std. dev. daily return: %.4f" % (stats.stddev(retAnalyzer.getReturns()))
print "Sharpe ratio: %.2f" % (sharpeRatioAnalyzer.getSharpeRatio(0))

pyalgotrade教程5--多标的策略相关推荐

  1. SCCM 2007系列教程之六使用组策略实现SCCM客户端

    SCCM 2007 安装光盘上提供了名为 ConfigMgr2007Installation.adm 的组策略管理模板,可用于配置客户端计算机的安装属性. 1.使用 Windows 组策略对象编辑器等 ...

  2. 转:量化交易零基础入门教程之——量化交易策略基本框架

    感谢原作者:JoinQuant-TWist 转自:JoinQuant 原文链接:https://www.joinquant.com/view/community/detail/13151 重要提示:聚 ...

  3. python alpha策略_量化策略系列教程:04阿尔法策略

    Alpha.Alpha,天天就知道Alpha,今天就给你们上阿尔法喽~ 此处,添加一个掘金的论坛证经社量化社区 - 证经社地址,貌似更新的还蛮快的~ 1. 策略原理: 阿尔法策略:投资者在市场交易中面 ...

  4. Pyalgotrade量化交易回测框架

    现在就开始干活了.先要测试一下pyalgotrade回测数据对不对.我找了个参照标准:在聚宽上开通了个账号,按入门教程写了个策略:2016-2018年每个交易日买入100股平安银行(000001),回 ...

  5. 【数据】【自动化交易】Python编写策略模拟股票交易

    [数据][自动化交易]Python编写策略模拟股票交易 这节我就用上节提到的pyalgotrade来编写回测策略程序,模拟股票交易.本篇文章里用的是SMA均线策略. 数据 数据我使用的是 大恒科技(6 ...

  6. 一个支付案例,学会策略模式!

    点击关注公众号,Java干货及时送达 作者 | 叁滴水 来源 | https://blog.csdn.net/qq_30285985/ 前言 在开发时,总会遇到支付的需求,但是支付的方式有很多,支付宝 ...

  7. SQL Server 2008基于策略的管理

    基于策略的管理(Policy Based Management),使DBA们可以制定管理策略,并将这些策略应用到服务器.数据库以及数据环境中的其他对象上去.经过精心设计的管理策略可以帮助DBA们对数据 ...

  8. linux 关闭密码复杂化,Linux系统设置复杂密码策略方法

    用户帐号管理是系统管理员最重要的工作之一.而密码安全是系统安全中最受关注的一块.本文将为大家介绍如何在 Linux 上设置系统用户密码复杂度策略. 假设你已经在你的 Linux 系统上使用了 PAM ...

  9. centos7设置密码策略_Linux系统设置复杂密码策略方法总结

    假设你已经在你的 Linux 系统上使用了 PAM (Pluggable Authentication Modules,插入式验证模块),因为这些年所有的 Linux 发行版都在使用它. 一.准备工作 ...

最新文章

  1. 人工智能对地球环境科学的推进
  2. 前松鼠拼拼产品总监吴天:做一个接地气的产品经理
  3. hadoop的三大核心组件之HDFS和YARN
  4. ASP.NET Core MVC 2.1 顶级参数验证
  5. mysql 避免重复添加_MySql三种避免重复插入数据的方法
  6. 二叉树最小单元结点的实现
  7. php表单的提交方法有什么,php – 确定哪个表单已提交的最佳方法是什么?
  8. 「leetcode」234. 回文链表:【数组模拟】【翻转后半部分】详解
  9. 软件测试中的缺陷分析与管理
  10. python之 turtle好例子集锦
  11. java编程规范之java命名规范
  12. 极光尔沃3D打印《英雄联盟》精美手板
  13. LimeSDR实验教程(3) GSM基站
  14. 耐克官网一直显示无法连接服务器,nikeapp无法连接服务器是什么原因 nikeapp怎么抢鞋子...
  15. 卡1有信号 卡2无服务器,为什么卡1无服务卡2有
  16. 使用JS监听键盘按下事件
  17. 我说CMMI2.0之产品集成
  18. 002--软考程序员之硬件组成原理
  19. java虚拟函数_java实现多态中的虚函数相关概念
  20. Python代码写好了怎么运行?

热门文章

  1. 模拟电子技术——本征半导体
  2. keil MDK 调试运行中程序
  3. 用于深层时空图建模的 Graph WaveNet
  4. 看了10款文档编辑器之后...
  5. Java程序员春招三面蚂蚁金服,开源掌机玩java
  6. 企业如何理性看待移动CRM?
  7. Cortex-M0 LPC11C14中断控制器
  8. 坦克大战--chapter01
  9. 数据库中的多对多的查询
  10. Linux歌词显示插件