株価シミュレーション(Javaソースコード)
2011/10/05 後 保範 (Ushiro Yasunori、早稲田大学)
2011/11/23 追加更新
1. ファイルからデータ入力
(1) 株価データサンプル(日付降順:日付,始値,高値,安値,終値,売買数量)
kabuka.txt
(2) ファイル入出力(上記のkabuka.txtを同一フォルダー置いて使用)
FileIO.java
(3) 移動平均の計算(上記のkabuka.txtを同一フォルダー置いて使用)
FileComp1.java
2. インターネットの株価サイトからデータ取得
(1) 上記株価データサンプルの取得とファイル出力
HttpIn.java、
"http://ushiro.jp/program/stock/kabuka.txt"の株価データをプログラム
と同じフォルダ上にファイル名"kabuka.txt"で作成
(2) 時系列データ(1年間の日足)の取得とファイル出力
HttpRead.java、
株価コードの入力が必要
時系列データは"http://k-db.com/site/jikeiretsu.aspx"より取得している
株価コードは
Yahoo ファイナンス
を参照
(3) 複数の時系列データ(1年間の日足)の取得とファイル出力
HttpMRead.java、
K-code.txt
株価コード(30件以内)はK-code.txtファイルで与える。空白を空けコメント記載可
(4) 時系列データ(4年以内の月足)の取得とファイル出力
HttpRead1.java、
株価コードの入力が必要、プログラムで開始と終了の年,月を与える
データはYahoo ファイナンスから取得している
(5) 時系列データ(4年以上の月足)の取得とファイル出力
HttpRead2.java、
株価コードの入力が必要、プログラムで終了の年,月と取得月数を与える
3. グラフの作成
(1) グラフ出力の基本
Graph.java、
説明資料(Graph.txt)
4. テクニカル分析
(1) Web上の参考資料
参考資料(Technical.txt)
(2) ボリンジャー・バンドによる売買シミュレーション(単一パラメータ)
BollBand.java、
2.の(2),(3)で得られる日足データ(T-xxxx.txt)を与える
利用するファイルの指定と1口単位の株数を画面から与える
プログラムで、移動平均日数、バンド幅、投資可能口数を与える
終値で計算したボリンジャー・バンドの上下限で翌日の指値を入れる
現物取引とし、売れ残った株式は最終日に終値で売却(成行き)する
損益には売買手数料は含めていない
(3) ボリンジャー・バンドによる売買シミュレーション(複数パラメータ)
MBollBand.java、
2.の(2),(3)で得られる日足データ(T-xxxx.txt)を与える
移動平均日数(10,15,20,25,35日)、バンド幅(1.7σから0.1σ単位)
(4) ボリンジャー・バンドによる売買シミュレーション(バンド幅自動調整)
ABollBand.java、
2.の(2),(3)で得られる日足データ(T-xxxx.txt)を与える
バンド幅を保有株数に応じて与えた範囲で自動調整する
保有株数が少ないと下半幅(買い)は狭く、上半幅(売り)は広くする
保有株数が多いと下半幅(買い)は広く、上半幅(売り)は狭くする
移動平均日数(10,15,20,25,35,40,45,50日)
(5) RSI(相対力指数)による売買シミュレーション(単一パラメータ)
RSI.java、
2.の(2),(3)で得られる日足データ(T-xxxx.txt)を与える
利用するファイルの指定と1口単位の株数を画面から与える
プログラムで、RSI計算日数、買い基準RSI、投資可能口数を与える
売り基準RSIは(100-買い基準RSI)で求める、RSIの単位は%である
終値で計算したRSIと基準値を比較し翌日の始値(成行き)で売買する
プログラムでhiに正の値(1.0以下)を与えて指値を与えることも可能
現物取引とし、売れ残った株式は最終日に終値で売却(成行き)する
損益には売買手数料は含めていない
(6) RSI(相対力指数)による売買シミュレーション(複数パラメータ)
MRSI.java、
2.の(2),(3)で得られる日足データ(T-xxxx.txt)を与える
RSI計算日数(10,15,20,25日)、買い基準RSI(15,20,25,30,35)
5. ポートフォリオ
(1) リスク、リターン、相関係数の計算1(2銘柄)
Correlation.java、
2.の(4),(5)で得られる月足データ(M-xxxx.txt)を与える
例題データM-6501.txt、
M-9613.txt
利用するファイルを指定するため、プログラム中に株価コードを記載する
月別リータンは月の(終値-始値)/始値で求め、リターンはその平均で
リスクは標準偏差、相関係数は月別リターンから求めている
(2) リスク、リターン、相関係数の計算2(3銘柄以上)
MCorraration.java、
P-code.txt
株価コード(20件以内)はP-code.txtファイルで与える。空白を空けコメント記載可
例題データは(1)のM-6501.txt、M-9613.txt以外に下記
M-3402.txt、
M-5108.txt、
M-4502.txt、
M-5401.txt、
M-7203.txt、
M-8058.txt、
M-8316.txt、
M-9433.txt