GitHubじゃ!Pythonじゃ!

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

backtrader

backtrader – Pythonトレーディング戦略のためのバックテストライブラリ

投稿日:

Pythonトレーディング戦略のためのバックテストライブラリ https://www.backtrader.com

バックトレーラー

Yahoo API注

それを使用しないでください。 ヤフーは元のAPIを削除し、Yahooが導入した不具合(列交換など)のために別の方法が失敗する傾向があります。

切符売場

それが問題ではない場合(バグなど)、問題として投稿しないでください。 自動的に閉じます。

フィードバック/質問/ … コミュニティを使用する

ここでは、Simple Moving Average CrossOverのスニペットを示します。 それはいくつかの異なる方法で行うことができます。 ドキュメント(および例)を使用する

from datetime import datetime
import backtrader as bt

class SmaCross(bt.SignalStrategy):
    def __init__(self):
        sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)
        crossover = bt.ind.CrossOver(sma1, sma2)
        self.signal_add(bt.SIGNAL_LONG, crossover)

cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)

# **NOTE**: Read the note about the Yahoo API above. This sample is kept for
# historical reasons. Use any other data feed.

data0 = bt.feeds.YahooFinanceData(dataname='YHOO', fromdate=datetime(2011, 1, 1),
                                  todate=datetime(2012, 12, 31))
cerebro.adddata(data0)

cerebro.run()
cerebro.plot()

フル機能のチャートを含む。 試してみる! これはsigsmacross/sigsmacross2.pyというサンプルに含まれています。 それに沿ってsigsmacross.pyはコマンドラインからパラメータ化することができます。

特徴:

Pythonで書かれたライブトレーディングとバックテストプラットフォーム。

  • ライブデータフィードとの取引
    • インタラクティブブローカー( IbPyを必要とし、インストールされたpytzから大きな利益をpytz
    • ビジュアルチャート (プルリクエストがリリースに統合され、 pytzメリットが得られるまでpytzフォークが必要)
    • Oandaoandapyが必要)(REST APIのみ – v20は実装時にストリーミングをサポートしていませんでした)
  • csv /ファイル、オンラインソース、またはパンダ火災からのデータフィード
  • 日中のバーを塊に分割して日中をシミュレートするか、レンコのレンガで作業するような、データ用のフィルタ
  • 複数のデータフィードと複数の戦略がサポートされています
  • 一度に複数の時間枠
  • 統合リサンプリングとリプレイ
  • ステップバイステップのバックテストまたは一度に(戦略の評価を除いて)
  • インジケータの統合バッテリ
  • TA-Libインジケータのサポート(python ta-lib / docsのチェックが必要)
  • カスタムインジケータの容易な開発
  • アナライザ(例:TimeReturn、Sharpe Ratio、SQN)とpyfolio統合
  • コミッションスキームの柔軟な定義
  • マーケットクローズリミットストップストップ リミットストップ トレイルストップ トレイル リミット *および* OCOの注文、ブラケットの注文、滑り、ボリューム充填戦略および将来のような機器のための継続的な現金調整
  • 自動ステーキング用サイザー
  • チート・オン・クローズとチート・オン・オープン・モード
  • スケジューラ
  • トレーディングカレンダー
  • プロット(matplotlibが必要)

ドキュメンテーション

ブログ:

詳細は、次のWebサイトを参照してください。

組み込みインジケータのリスト(122)

Python 2/3のサポート

  • Python 2.7
  • Python 3.2 / 3.3 / 3.4 / 3.5 / 3.6
  • また、 pypypypy3pypypypy3 (プロットなし – matplotlibpypyではサポートされていません)

互換性は開発中に2.73.5でテストされます

他のバージョンはTravisで自動的にテストされます。

インストール

backtraderは外部依存関係なしで自己完結型です(プロットしたい場合を除いて)

ピピから:

  • pip install backtrader

  • pip install backtrader[plotting]

    matplotlibがインストールされておらず、プロットを行う場合

注意

matplotlibの最小バージョンは1.4.1

IBデータフィード/取引の例:

  • IbPyIbPy存在しないようである。 次のいずれかを行います。

    pip install git+https://github.com/blampe/IbPy.git
    

    または(あなたのシステムでgitが利用できない場合):

    pip install https://github.com/blampe/IbPy/archive/master.zip
    

Visual ChartOandaTA-Libなどの他の機能については、ドキュメントの依存関係を確認してください。

ソースから:

  • プロジェクト内のソースにあるバックトレーダーディレクトリを配置します

バージョン番号

XYZI

  • X:メジャーバージョン番号。 大きなものが変更されない限り、安定していなければなりません。
  • Y:マイナーバージョン番号。 完全な新機能を追加するときに変更するか、互換性のないAPI変更を(神は禁じます)。
  • Z:リビジョンのバージョン番号。 ドキュメントの更新、小さな変更、小さなバグ修正のために変更する
  • I:既にプラットフォームに組み込まれている指標の数

代替案

ドキュメントといくつかのサンプル(ブログも参照してください)を見てから、これがあなたのお茶ではないと感じる場合は、いつも同じようなPythonプラットフォームを見ることができます:







-backtrader
-, , , ,

執筆者: