セレクターさんによる株価分析プログラムの作り方講座のまとめです。株価データのCSVファイルの読み込み時間や株価データを格納する配列の規模感、株式分割・併合への対応方法等、株価分析プログラムの作成時に役立つ知見を初心者の方にも分かりやすく説明されています。
@moriban こもりばんさん。こんばんは。セレクターです。
— セレクター (@dai516) February 14, 2017
今回はプログラミング言語で株価解析ソフトウェアの作成を検討しているプログラム初心者の方に向けて、どのように進めていけば良いかを情報共有のためツイートしていきます。
@moriban ソフトウェアの作成は面倒かもしれませんが技術的に難しいところはないです。
— セレクター (@dai516) February 14, 2017
実際に作って動かしてみると必ず新しい発見があります。
作成者には最低でも数十万円の価値を生むはずです。
もちろん上限はプライスレスです。
5千万円とか億超えの価値を生むかもしれません。
@moriban Excelは私も使用していますが、ソフトウェアで複数の日付の全株価ファイルを読み込んで、そのデーターを加工しExcelで処理しやすい形のcsvファイルを出力するのも有効と思います。
— セレクター (@dai516) February 14, 2017
@moriban 私はMacbook AirでPerlで株価解析ソフトを作成しています。
— セレクター (@dai516) February 14, 2017
下記がPCのスペックです。
Macbook Air (13-inch, Mid2013)
プロセッサ 1.3GHz Intel Core i5
メモリ 8GB 1600MHz DDR3
@moriban このスペックのPCで2015年から今日までの全株価csv
— セレクター (@dai516) February 14, 2017
ファイル517ファイルを約1分10秒で読み込めています。
@moriban まずはどのプログラミング言語で作るかです。
— セレクター (@dai516) February 14, 2017
私はPerlを使った経験があったのでPerlで作成しましたが
いまならPythonがおすすめかもしれません。
お好みのプログラミング言語で作成してみてください。
@moriban ソフトウェア作成の第一歩はファイルの読み込みです。
— セレクター (@dai516) February 14, 2017
複数のファイルを読み込む前提で設計するのが良いです。
ディレクトリに複数日付の全株価csvファイルを置いて順に読み込こみます。
「Python 複数ファイル 読み込み」でググるといろいろ作成例を入手できます。
@moriban csvファイルの読み込みもググるとカンマ区切り、タブ区切りのデータ読み込みの作成例を入手できます。
— セレクター (@dai516) February 14, 2017
次に読み込んだデータの格納ですが、ここの設計は少し難しいかもしれません。
構造体やクラスを設計するのも良いと思います。
プログラマーの腕の見せ所かもしれません。
@moriban ちなみに私は1つの会社が17個のデータなのでざっくり20、証券コードは4桁なのでざっくり10000、1年の営業日は365*5/7で約260でその3年分でかなり冗長ですが
— セレクター (@dai516) February 14, 2017
20*10000*260*3の巨大な配列を作って読み込んだデータを格納しています;^_^A
@moriban 各会社の売買代金のランキングを算出するのも便利です。
— セレクター (@dai516) February 14, 2017
かなりおおざっぱですがランキング1000位以内が5分足チャートで売買が途切れない感じです。私はランキング1500位を超えていて閑散としている会社の株は基本的には買わないようにしています。
@moriban また、個々の証券コードが最初に出現した日付をチェックできるようにしておくと良いです。
— セレクター (@dai516) February 14, 2017
2016年8月以降に上場とか新規公開株の証券コードを自由に抽出することができます。
今回の連続ツイートは以上になります。
@moriban 読み込んだデータの株式分割、併合の補正も実施します。
— セレクター (@dai516) February 14, 2017
面倒ですがやっておいた方がいいです。
株価が倍や半分になれば分割、併合に気づくかもしれませんが
1:1.2の分割とかもありますので。
株式分割、併合の補正テーブルの作成方法は2月4日にツイートしています。
@moriban ここまでできれば準備完了です。
— セレクター (@dai516) February 14, 2017
あとは各自工夫して株式解析ソフトウェアを完成させてください。
@moriban 私がPerlプログラムで全株価のcsvファイルを扱う際に便利なことがあり、他のユーザーの方にも有効な情報かもと思いました。
— セレクター (@dai516) February 4, 2017
プログラムでもExcelでもcsvファイルを取り込んだあと
株式分割と併合のリストを作成して株価、出来高などを補正する必要があります。
@moriban その時にカブドットコム証券のWebサイトhttps://t.co/MUwCINI7ZC
— セレクター (@dai516) February 4, 2017
の分割と併合のリストが見やすかったです。
株式分割https://t.co/IJ3zqKu6iW
株式併合https://t.co/QYQdQSoBpv
@moriban また、このようなWeb上の表をテキストデータとして取り込むときに
— セレクター (@dai516) February 4, 2017
Firefoxのブラウザを利用すると表の任意の部分を選択して
コピーすることができるのでとても便利です。ご存知の方は多いかもしれませんが。
@moriban Windows版ならCtrlキー、Mac版ならCommandキーを押しながら範囲を表の範囲を選択してコピーできます。
— セレクター (@dai516) February 4, 2017
他のブラウザではできそうでできない機能です。
添付画像の水色の箇所が選択した範囲になります。 pic.twitter.com/DVGhJ50Dun
@moriban それをテキストエディタにペーストして変換テーブルデータに加工しました。
— セレクター (@dai516) February 4, 2017
加工は若干面倒ですが、証券コードと日付を手打ちしないので打ち間違いとデータの抜けなく作成できました。 pic.twitter.com/7tHoheopx2
@moriban 後から考えたら変換プログラムを書いてデーターを読み込んで加工したファイルを生成したほうがはるかに効率的でした。
— セレクター (@dai516) February 4, 2017
Excelで取り込んでVBAで補正用のファイル生成させるのも有効と思います。
以上、情報共有のためツイートしました。