Help us understand the problem. What is going on with this article?

Pythonで投資アルゴリズムを開発してみる 1

More than 1 year has passed since last update.

はじめに

Smart Tradeという、株式投資をPythonで行うための、プラットフォームの使い方をメモ。

Smart Tradeとは

top.png

Smart Tradeはエンジニアの皆さんに最先端の株式投資システムトレード環境を基本無料でご提供します。開発したアルゴリズムはご自身のトレードに、またはSmart Tradeのマーケットプレイスで販売できる予定です。

https://beta.smarttrade.co.jp/

まだβ版で使える機能も限定されていますが、いまはすべて無料で公開されています。将来的には、App Storeみたいになるのかな?

2018/1/11追記:開発者向け正式版URL https://quantx.io/developer

なにができるの?

日本や中国の過去の株価データをPythonで分析することができます。売買しても良さそうなタイミングがあれば、Smart TradeのAPIを利用して注文することで、どのくらい利益が出たか、という事をシミュレートすることができます(これを「バックテスト」といいます)。

また、簡単なBIツール的な機能がありますので、単純に株価をチャートで表示したり、計算した各種テクニカル指標の値を確認できたり、実際の売買タイミングがどのようになっていたかをビジュアル的に確認することができます。

どうやって分析するの?

分析はPythonでプログラムを書きます。WebIDEが用意されていますので、ブラウザ上でプログラムを書いて実行することで、そのまま結果を確認することができます。

各種データは、Smart Tradeのプラットフォームで用意されていますので、使いたいデータを宣言するだけで、簡単に使えるようになります。実際のデータの操作はpandasが採用されているので、pandasを使える人であれば、比較的簡単に試すことができるのではないかと思います。

Hello System Trade!

まずは、Hello World的に、9984(ソフトバンク)の株価をチャートに表示してみます。
Python Coding画面で、下記のようなコードを書いて、実行してみます。

def initialize(ctx):
    # アルゴリズムの設定
    ctx.configure(
      target="jp.stock.daily",    # 日本株の日足を対象としたアルゴリズム
      channels={
        "jp.stock": {
          "symbols": [
            "jp.stock.9984",      # ソフトバンクのデータを利用する
          ],
          "columns": [
            "close_price",        # 終値
            "close_price_adj",    # 終値(株式分割調整後)
          ]
        }
      }
    )

def handle_signals(ctx, date, current):
    '''
    current: pd.DataFrame
    '''
    pass

実行すると、

summary.png

チャートがでてきました。凹凸がありませんが、これは売買を行っていないので、資産はなにも変動していない、ということです。銘柄の詳細を見てみると、

detail.png

きちんと出ていますね!

次回は移動平均を表示してみます。

参考情報

2018/1/11追記 正式版URL:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした