pandas4finance

Pythonのバックテストフレームワーク「PyAlgoTrade」を使ってみる2 〜 チュートリアル編

「Pythonのバックテストフレームワーク「PyAlgoTrade」を使ってみる1 〜 環境構築」の続き。前回はQiitaの記事「pythonのアルゴリズムトレードライブラリ」からのコピペを使って稼働確認しただけだったので、今回は少し調べてみた。 といっても少しだけ。も…

Pythonのバックテストフレームワーク「PyAlgoTrade」を使ってみる1 〜 環境構築

ziplineのインストールで躓いて、「環境問題めんどくせーなー。とりあえず躓かないライブラリにしよう。」なんてことを思っている軟弱者です。 「Pythonのバックテストフレームワーク「zipline」を使ってみる1 〜 環境構築」で辛うじてziplineを導入出来た…

Pythonのバックテストフレームワーク「zipline」を使ってみる1 〜 環境構築

環境は次。 ・JetBrains PyCharm Community Edition 2016.2.3 ・python 2.7.12 ・zipline 1.0.2 今回実施するのは次 1.ziplineをpipを使ってインストールする 2.condaを使ってziplineをインストールする ・2−1.AnacondaからMinicondaが必要なのでイン…

pandasを使用して個別株の累積リターンと指数の累積リターンをチャートに描く

個別株の累積リターンと指数の累積リターンを同じグラフ描く。 特にコメントは無い。 #coding:utf-8 import pandas as pd import numpy as np import datetime as dt import pandas_datareader.data as pdd ######## Define Method ######## def getMultiSto…

pandasとscikits.statsmodelsを使用してリターンのOLSを求める

「pandasを使用して2つの銘柄の日次リターンの時系列相関を求める」の続きっぽいやつ。「scikits.statsmodels」が必要だったので、importした。 特にコメントは無いw。 #coding:utf-8 import pandas as pd import numpy as np import datetime as dt import…

pandasを使用して2つの銘柄の日次リターンの時系列相関を求める

ここでは「1803 清水建設」と「8698 マネックスグループ」の時系列相関を求める。移動平均やヒストリカルボラティリティを求めるのと殆ど同じ方法で求められる。 pandas.DataFrame.rollingを使用して、その結果にcorr関数を作用させるだけ。 rolling_corr = …

pandasを使用してヒストリカルボラティリティを計算する

これ、「Pythonでヒストリカルボラティリティの計算」にも書いたのとほぼ同じなので軽く流す。 shift関数使わずにpct_change関数使っている分だけ幾分簡潔になったかも。 #coding:utf-8 import pandas as pd import numpy as np import datetime as dt impor…

pandasを使用して株価の日次リターン、累積リターン、リターン分布、正規Q-Qプロットを行う

以前、Rを使って試したことと同様のことをpythonで試す。 ・「urcaパッケージを使用した定常性検定」 ・「urcaパッケージを使用した定常性検定 〜 続編」 主なお題は次。 ・日次リターンの計算 ・日次リターンから累積リターンを求める ・リターン分布を描く…

pandas.DataFrame型で保持した株価データの可視化2 〜 ローソク足の作成

「pandas.DataFrame型で保持した株価データの可視化1」の続き。株価データをローソク足で描くのが今回のテーマ。 最初にソースコードを載せて、次に解説していく。その前に今回使用する主なAPIの紹介と、それに関する注意点を述べておく。◎今回使用する主な…

pandas.DataFrame型で保持した株価データの可視化1

「pandas.DataFrame型で保持した株価データを取得する」で取得したデータを可視化する。これまで可視化は下記のエントリーで触れた。そこと重なる内容も多々あるが、復習もかねる。 ・Pythonでのプロットと可視化(matplotlib編) 〜 まとめ ・Pythonでのプ…

pandas.DataFrame型で保持した株価データを取得する

「pandasで複数銘柄の株価データ(pandas.DataFrame型)をpandas.DataFrame型で保持する」からの続き。まず、前回の復習。 前回は次のようにして、複数の株価データをpandas.DataFrame型として取得した。 #coding:utf-8 import pandas as pd import datetime…

pandasで複数銘柄の株価データ(pandas.DataFrame型)をpandas.DataFrame型で保持する

同様の内容は以前も扱った。 ・Pythonでの時系列データの扱い7 〜 まとめ(WEBからの株価データ取得、プロット、移動平均の作成) ・pandas_datareader.dataのDataReaderを使用して株価を取得する 〜 pandas.Panel型で取得したデータ構造からpandas.Panel.m…

pandasで時系列データを扱う(pandas.Seriesとpandas.DataFrameを使って時系列データを扱う)2

「pandasで時系列データを扱う(pandas.Seriesとpandas.DataFrameを使って時系列データを扱う)1」の続き。全部で下記を実施予定。 1.時系列データとDatetimeIndex 2.指定した頻度の時系列データを作成する方法 3.日付のoffsetsを使用して新しい日付…

pandasで時系列データを扱う(pandas.Seriesとpandas.DataFrameを使って時系列データを扱う)1

話題は変わるが、「pandasによるStackingとUnstacking」の続き。時系列データについては、これまで以下で扱ったので重複する部分もあると思うが反復練習ということで気にしない。 ・Pythonでの時系列データの扱い1 〜 文字列とdatetimeの変換 ・Pythonでの…

pandasによるStackingとUnstacking

「pandasによるpivot 〜 複数行に渡って重複しているデータを、重複しているデータ毎に集計する」の続き。pandas.DataFrame.stackを使うと列から行へのpivotができる。 unstackはその逆。前回使用したコードにstack部分を追加する。 #coding:utf-8 import nu…

pandasによるpivot 〜 複数行に渡って重複しているデータを、重複しているデータ毎に集計する

「pandas.DataFrameの結合」の続き。例によってAAPLとMSFTの株価データを題材に色々試す。1.株価データ取得 途中、pandas.DataFrame.insertを使用して列を追加していることに注意。 #coding:utf-8 import numpy as np import pandas as pd import datetime…

pandas.DataFrameの結合

「pandas.DataFrameの連結」の続き。pandas.mergeとpandas.concatの違いは、pandas.mergeはインデックスのラベルを使用するのではなく共通のカラムデータを元に結合すること。次のように動作する。 1.マージに使用するカラムデータが探される 2.1で探し…

pandas.DataFrameの連結

「pandas.DataFrameでのデータ作成・データへのアクセス」の続き。・株価データの取得 #coding:utf-8 import numpy as np import pandas as pd import datetime import pandas_datareader.data as pdd # 期間設定 date_from = datetime.date(2016, 9, 24) da…

pandas_datareader.dataのDataReaderを使用して株価を取得する 〜 pandas.Panel型で取得したデータ構造からpandas.Panel.minor_xsを使用して特定の銘柄のDataFrameを取得する

これ、以前に「Pythonでの時系列データの扱い7 〜 まとめ(WEBからの株価データ取得、プロット、移動平均の作成)」で同様のことを実施して、yahoo financeやgoogleから株価データを取得した。実は1つだけ分からないことがあったけど、そのまま放置してい…

pandas.DataFrameでのデータ作成・データへのアクセス

「pandas.Seriesでのデータ作成・データへのアクセス」の続き。 次のコードで色々試してみた。 ########### DataFrame ########### #### データフレームの作成 #1-1.numpyからdataFrameを作成 print np.array( [ [10, 11], [20, 21] ] ) df = pd.DataFrame( …

pandas.Seriesでのデータ作成・データへのアクセス

次のコードで色々試してみた。 #coding:utf-8 import numpy as np import pandas as pd ### Series ### ## 1-1.Seriesデータの作成 np.random.seed(1) s = pd.Series(np.random.randn(100)) print s ## 1-1-1.select from Series #スカラーとして1要素を取…