株価シミュレーション(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.javaK-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.txtM-9613.txt
    利用するファイルを指定するため、プログラム中に株価コードを記載する
    月別リータンは月の(終値-始値)/始値で求め、リターンはその平均で
    リスクは標準偏差、相関係数は月別リターンから求めている

 (2) リスク、リターン、相関係数の計算2(3銘柄以上)
    MCorraration.javaP-code.txt
    株価コード(20件以内)はP-code.txtファイルで与える。空白を空けコメント記載可
    例題データは(1)のM-6501.txt、M-9613.txt以外に下記
    M-3402.txtM-5108.txtM-4502.txtM-5401.txtM-7203.txtM-8058.txtM-8316.txtM-9433.txt