LoginSignup
0

posted at

updated at

【v37】テクニカル指標計算ツールとリアルタイム監視ツールに売買高を対象にする

はじめに

過去記事は「auカブコム証券のkabuステーションREST APIに関する記事一覧」。

前回42番目の記事で、マージデータに売買高を追加したので、テクニカル指標計算ツールと、マージデータのリアルタイム監視ツールに売買高を含んだファイルを対応する。

ベースとなるソース

v27.CalcIndicatorChartInfo_r3は、ほとんどv36.MergeChartInfo_r5と同じなので、統合する。
v27.CalcIndicatorIndicatorInfo_r3をベースに、v37.CalcIndicatorInfo_r9を作成する。
v33._r7をベースに、v37._r9を作成する。
v34._r8をベースに、v37._r9を作成する。
v34.MainWatchChartData_r2をベースに、v37.MainWatchChartData_r3を作成する。

ゴール

読み込むマージデータは、r4とr5でカラム数が異なるが、テクニカル指標を計算した結果は同じはずなので、全ファイルの比較を行う。

実装

既存のエンティティの修正

MergeChartInfo_r3とCalcIndicatorChartInfo_r3の2つあるが、微妙に異なっていた。

MergeChartInfo_r3(String date)とCalcIndicatorChartInfo_r3(String date)は同じ。
MergeChartInfo_r3(String[] cols)はflag=1、CalcIndicatorChartInfo_r3(String[] cols)はcols[i]の整数。
MergeChartInfo_r3(String date, int price)はflag=2、CalcIndicatorChartInfo_r3(String date, int price)はflag=3。

共通に使えるように、v36.MergeChartInfo_r5を修正する。
String[]の引数を受け取るものは、カラム数で分岐する。

	public MergeChartInfo_r5(String[] cols) {
		int i = 0;
		this.tradeVolume = StringUtil.parseInt(cols[i++]);
		if (cols.length == MAX_DB_COLS) { // MainMergeChartData向け
			this.flag = 1;
		} else { // MainCalcIndicator向け
			this.flag = StringUtil.parseInt(cols[i++]);
		}
	}

新たにflagを渡すものを追加する。

	public MergeChartInfo_r5(String date, int price, int volume, int flag) {
		this.flag = flag;
	}

新規作成クラス

ベースとなるクラスをコピーして、r9に変えていくと、コンパイルエラーとなるので、クラス名を修正していく。
特に売買高を参照した計算や出力は元々ないので、ファイルからクラスが初期化できれば、同じ処理が実行される。

テスト

v31.MainMergeChartData_r4を実行
v34.MainCalcIndicator_r8を実行
v34.MainWatchChartData_r2を実行、停止
C:\tmp\chartを退避

v36.MainMergeChartData_r5を実行
v37.MainCalcIndicator_r9を実行
v37.MainWatchChartData_r3を実行、停止
WinMergeで退避したフォルダと、C:\tmp\chartを比較

すべての*.outファイルが一致したので、問題ないとみなす。

追記:CalcIndicatorCommon_r9に共通化

マージツールのMergeChartDataCommon_r5クラスと同様に、共通メソッドをCalcIndicatorCommon_r9クラスにまとめる。

追記:ソースをarchiveブランチへ移動

最新版に移行し、もう使われることはないので、アーカイブする。

githubソース

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0