GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

quantopian

zipline – Zipline、Pythonicアルゴリズム取引ライブラリ

投稿日:

Zipline、Pythonicアルゴリズム取引ライブラリ http://www.zipline.io/


ZiplineはPythonicアルゴリズムトレーディングライブラリです。 これはバックテストのためのイベント駆動型システムです。 Ziplineは現在、バックテスティングとライブ取引エンジンとしての生産にQuantopianを使用しています。Quantopianは 、コミュニティ戦略を構築し、実行するためのコミュニティ中心の無料のホスティングプラットフォームです。

特徴

  • 使いさ: Ziplineは、あなたがアルゴリズム開発に集中できるように、道を離れようとします。 コード例については以下を参照してください。
  • “バッテリが含まれている”:移動平均や線形回帰などの多くの一般的な統計情報は、ユーザ作成アルゴリズム内から簡単にアクセスできます。
  • PyData統合:履歴データの入力とパフォーマンス統計の出力は、既存のPyDataエコシステムにうまく統合するためのPandas DataFramesに基づいています。
  • 統計と機械学習ライブラリ: matplotlib、scipy、statsmodels、sklearnなどのライブラリを使用して、最先端の取引システムの開発、分析、視覚化をサポートすることができます。

インストール

pipインストールする

Python以外のすべての依存関係が必要であると仮定して(以下の注を参照)、Ziplineをpipインストールすることができます:

$ pip install zipline

注: pipを使用してZiplineをインストールすることは、平均的なPythonパッケージよりも少し複雑です。 pip install ziplineサイエンスPythonパッケージをインストールしたことがなければ、 pip install ziplineを実行pip install ziplineだけで失敗する可能性があります。

複雑さが増す理由は2つあります。

  1. Ziplineには、CPython C APIへのアクセスを必要とするいくつかのC拡張が含まれています。 C拡張をビルドするために、 pipはあなたのPythonインストール用のCPythonヘッダファイルにアクセスする必要があります。
  2. ZiplineはPythonの数値配列計算のコアライブラリであるnumpyに依存しています。 Numpyは、 LAPACK線形代数ルーチンを利用できるかどうかに依存します。

LAPACKとCPythonヘッダーはバイナリの依存関係であるため、インストールする正しい方法はプラットフォームによって異なります。 Linuxでは、一般的に、ユーザーはaptyum 、またはpacmanようなパッケージマネージャーを介してこれらの依存関係を取得します。 OSXでは、 Homebrewは同様の機能を提供する人気のある選択肢です。

特定のプラットフォームのバイナリ依存関係を取得する方法の詳細については、 Zipline Install Documentationを参照してください。

コンダ

condaをインストールするもう1つの方法は、 Anacondaの一部として提供されるcondaパッケージマネージャーを使用する方法と、 pip install condaです。

セットアップが完了したら、 QuantopianチャンネルからQuantopianインストールすることができます:

$ conda install -c Quantopian zipline

現在サポートされているプラ​​ットフォーム:

  • GNU / Linux 64ビット
  • OSX 64ビット
  • Windows 64ビット

注意

Windows 32ビットが動作するかもしれません。 ただし、現在のところ、継続的な統合テストには含まれていません。

クイックスタート

スタートガイドのチュートリアルをご覧ください。

次のコードは、単純な二重移動平均アルゴリズムを実装しています。

from zipline.api import order_target, record, symbol

def initialize(context):
    context.i = 0
    context.asset = symbol('AAPL')


def handle_data(context, data):
    # Skip first 300 days to get full windows
    context.i += 1
    if context.i < 300:
        return

    # Compute averages
    # data.history() has to be called with the same params
    # from above and returns a pandas dataframe.
    short_mavg = data.history(context.asset, 'price', bar_count=100, frequency="1d").mean()
    long_mavg = data.history(context.asset, 'price', bar_count=300, frequency="1d").mean()

    # Trading logic
    if short_mavg > long_mavg:
        # order_target orders as many shares as needed to
        # achieve the desired number of shares.
        order_target(context.asset, 100)
    elif short_mavg < long_mavg:
        order_target(context.asset, 0)

    # Save values for later inspection
    record(AAPL=data.current(context.asset, 'price'),
           short_mavg=short_mavg,
           long_mavg=long_mavg)

Zipline CLIを使用してこのアルゴリズムを実行できます。 デフォルトのデータバンドルを取り込むには、 Quandl APIキーが必要です。 キーを取得したら、コマンドラインから次のコマンドを実行します。

$ QUANDL_API_KEY=<yourkey> zipline ingest -b quandl
$ zipline run -f dual_moving_average.py --start 2014-1-1 --end 2018-1-1 -o dma.pickle

これにより、quandlから資産価格データのデータがダウンロードされ、指定された期間にわたりアルゴリズムによってストリームされます。 結果のパフォーマンスDataFrameはdma.pickleに保存され、Python内から解析を読み込むことができます。

他の例はzipline/examplesディレクトリにあります。

質問ですか?

バグを見つけたら、問題開いて問題のテンプレートを記入してください。

貢献する

すべての寄稿、バグ報告、バグ修正、ドキュメントの改善、強化、アイデアは大歓迎です。 開発環境の設定方法の詳細は、 開発ガイドラインに記載されています。

Ziplineコードベースの作業を開始するには、GitHubの[Issues]タブに移動し、興味深い問題を調べます。 時には、 初心者フレンドリーまたは募集要請された問題があります。

メーリングリストGitterで質問をしてください







-quantopian
-, , ,

執筆者: