zoukankan      html  css  js  c++  java
  • PyalgoTrade 技术组合计算(四)

    可以各种技术可以组合起来。它们被建模为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
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    cookie标准话
    thinkphp关联查询
    jq获取表单值与赋值代码
    Github使用.gitignore文件忽略不必要上传的文件 (转)
    python 库 Numpy 中如何求取向量范数 np.linalg.norm(求范数)(向量的第二范数为传统意义上的向量长度),(如何求取向量的单位向量)
    word 使用中 上标符号的实现
    python 编程中的一个关于图片的库 imageio (读取照片RGB内容,转换照片格式)
    交叉熵代价函数(作用及公式推导) ------转载
    cousera 深度学习 吴恩达 第一课 第二周 学习率对优化结果的影响
    python3 读入一个jpg格式的图片,并转换长宽像素个数,然后进行绘制
  • 原文地址:https://www.cnblogs.com/zhanglong8681/p/7569209.html
Copyright © 2011-2022 走看看