Skip to content

Instantly share code, notes, and snippets.

View sawadyrr5's full-sized avatar

さわでぃ sawadyrr5

View GitHub Profile
@sawadyrr5
sawadyrr5 / gist:590be6fc2ffeb4635a9b7c15229df20e
Created March 26, 2020 13:57
Pythonで簡単なモメンタム投資モデルを作る

250日ルックバックでモメンタムがゼロを超えたら買い、逆にゼロを下回ったら売ります。

# -*- coding: utf-8 -*-
import pandas_datareader.data as web
from datetime import datetime
import talib as ta
import matplotlib.pyplot as plt
import pandas as pd
@sawadyrr5
sawadyrr5 / gist:56cc519ffa95587f2e19a9f9baa0a0e8
Created March 26, 2020 13:57
Quantopian APIリファレンス

#この記事について QuantopianのAPIリファレンスについて、気になる部分をメモ代わりに日本語化しておきます。なお筆者は英語が不自由なので文章はお察し。

#必須のメソッド アルゴリズムにはinitializehandle_dataの2つのメソッドを実装しなければなりません。3番めのメソッドとしてbefore_trading_startがありますが、これはオプションです。

##初期化 initialize(context)

バックテストの最初に一度だけ呼び出されます。contextオブジェクトはアルゴリズム内のすべての他のメソッドに渡すことができます。

@sawadyrr5
sawadyrr5 / gist:744b9d2dd550ce224033a3ff4de2d735
Created March 26, 2020 13:56
TOPIX Core30, Large70, Mid400, Smallの構成銘柄かどうか調べたりするクラスを作った

はじめに

この銘柄って大型?中型?小型?と気になるときに、指数の構成銘柄かどうかいう情報があると便利ですね。というわけで、任意の銘柄コードを与えるとTOPIXのサイズ別指数のどれに含まれるかのほか、浮動株比率や構成ウェイトを返すクラスを作りました。 なお元データをオンラインで取ってくるのが難しかったので更新は手動です。つらみ。

用意するもの

クラスと同じ場所に以下のPDFをtxt形式で保存しといてください。(Acrobat Readerでできます)

TOPIX(東証株価指数) | 日本取引所グループ 構成銘柄別浮動株比率及び構成ウエイト一覧

@sawadyrr5
sawadyrr5 / gist:ddd2e8cf2e8abb1fccc09d9a09b558a3
Last active March 26, 2020 13:54
クラウドベースのアルゴリズムトレーディングサービス"Quantopian"を試してみる

この記事について

Pythonでファイナンス関係の情報を探していたところ見つけた"Quantopian"が面白そうだったので試してみます。 Quantopian

Quantopianとは

クラウドベースのアルゴリズムトレーディングプラットフォームです。ユーザはブラウザで専用のIDE(開発環境)を使ってPythonライクなコードでトレーディングアルゴリズムを作成し、バックテストを行うことができます。Interactive Brokers証券に口座がある場合は、接続してリアルトレードを行うこともできるようです。

何がトレードできる?

2002年以降の米国株/ETFのデータを分足ベースで保持しているようです。

#!/usr/local/bin python
# -*- coding: UTF-8 -*-
from pandas_datareader.base import _DailyBaseReader
import pandas as pd
from datetime import datetime
import urllib.request
class StooqDataReader(_DailyBaseReader):
@property
#!/usr/local/bin python
# -*- coding: UTF-8 -*-
from pandas_datareader.base import _DailyBaseReader
import pandas as pd
class TseDataReader(_DailyBaseReader):
@property
def url(self):
return 'http://www.jpx.co.jp/listing/others/margin/tvdivq0000000od2-att/list.xls'
#!/usr/local/bin python
# -*- coding: UTF-8 -*-
from pandas_datareader.base import _DailyBaseReader
from datetime import datetime
import pandas as pd
import urllib.request
import numpy as np
from time import sleep
_SLEEP_TIME = 0.5
#!/usr/local/bin python
# -*- coding: UTF-8 -*-
from pandas_datareader import data
from pandas_datareader.yahoo.daily import YahooDailyReader
from time import sleep
import urllib.request
import urllib.error
import lxml.html
import numpy as np
import pandas as pd