はじめに
過去記事は「auカブコム証券のkabuステーションREST APIに関する記事一覧」。
チャート表示をいろいろ選んでみて、パラボリックがいい感じなので、計算してみたが、なかなか大変だった。
仕様
とにかく仕様があいまいで、『EPとはイクストリーム・ポイントといって買い持ちしている間の高値、売り持ちしている間の安値をいいます。』を解釈した。
他の証券会社では『EP(極大値)については、上げ相場なら一定期間内の高値、下げ相場なら安値を用いる。』と説明しているが、この一定期間って何本分なんだよ。。。
さらに他のサイト『EP(極大値):SARが買いシグナルを示している期間は、その期間の最高値。SARが売りシグナルを示している期間は、その期間の最安値。』。
どうやら、一定期間=買いor売りと見なしてよいようだ。
実装
実際にチャートで表示してみて、
下の例では10:45にベアからブルに転換されたので、SARの差=25625.80-25615.00=10.8から、AF=0.02として10.8/0.02=540から、EP=25615+540=26155から、10:45の高値26155を使って11:45のSARを計算したのだろう。。。
2022/10/03 10:45:00 26025 26155 26015 26095 7113 25615.00
2022/10/03 11:45:00 26095 26130 26055 26080 3075 25625.80
かなり手作業で調べて、結果が一致したぽいソースが以下のソースで、一度消したら、元通りに作り直せる自信はない。。。
private void calcParabolic(List<MergeChartInfo_r10> chartList) {
if (chartList.size() < 1) {
return;
}
MergeChartInfo_r10 ci = chartList.get(0);
double sar = ci.openPrice;
boolean bBull = true;
int ep = ci.openPrice;
int eph = ep;
int epl = ep;
int af = 0;
indicatorList.add(new CalcIndicatorInfo_r10(ci, sar, bBull ? 1 : -1, ep, af));
for (int i = 1; i < chartList.size(); i++) {
MergeChartInfo_r10 ci0 = chartList.get(i - 1);
MergeChartInfo_r10 ci1 = chartList.get(i);
int high0 = ci0.highPrice;
int low0 = ci0.lowPrice;
int high1 = ci1.highPrice;
int low1 = ci1.lowPrice;
if (low0 < epl) {
epl = low0;
}
if (eph < high0) {
eph = high0;
}
if (bBull) {
if (ep < high0) {
ep = high0;
af += 2;
}
} else {
if (low0 < ep) {
ep = low0;
af += 2;
}
}
if (af <= 0) {
af = 2;
} else if (af > 20) {
af = 20;
}
sar = (ep - sar) * af / 100 + sar;
if (bBull) {
if (low1 < sar) {
sar = ep;
ep = eph;
eph = epl;
epl = eph;
af = 0;
bBull = !bBull;
}
} else {
if (sar < high1) {
sar = ep;
ep = epl;
epl = eph;
eph = epl;
af = 0;
bBull = !bBull;
}
}
indicatorList.add(new CalcIndicatorInfo_r10(ci1, sar, bBull ? 1 : -1, ep, af));
}
}
組み込み
クラスをv38.c.CalcIndicator7_r10を作成し、ファクトリー設定ファイル(CalcIndicatorFactory_r10.properties)に追加する。
7=v38.c.CalcIndicator7_r10
テスト
画面に表示した値を手入力したもの(日時、始値、高値、安値、終値、売買高、SAR値)。
2022/09/30 08:45:00 26215 26265 26055 26075 8568 26276.31
2022/09/30 09:45:00 26070 26105 25980 26020 5749 26261.54
2022/09/30 10:45:00 26025 26085 25925 25960 4821 26239.01
2022/09/30 11:45:00 25955 25990 25925 25945 3177 26207.61
2022/09/30 12:45:00 25940 25945 25800 25855 5605 26179.35
2022/09/30 13:45:00 25850 25910 25805 25880 5231 26133.83
2022/09/30 14:45:00 25875 26010 25845 26010 4632 26093.77
2022/09/30 16:30:00 26150 26150 26095 26120 2692 25800.00 BULL
2022/09/30 17:30:00 26125 26170 26075 26100 2218 25807.00
2022/09/30 18:30:00 26095 26130 26070 26105 1803 25821.52
2022/09/30 19:30:00 26105 26115 25995 26050 1857 25835.46
2022/09/30 20:30:00 26050 26100 25975 26080 2081 25848.84
2022/09/30 21:30:00 26075 26080 25955 26010 3340 25861.69
2022/09/30 22:30:00 26015 26115 25970 26095 3995 25874.02
2022/09/30 23:30:00 26090 26250 26085 26210 2960 25885.86
2022/10/01 00:30:00 26210 26230 26055 26085 1876 25907.71
2022/10/01 01:30:00 26085 26125 26055 26095 1213 25928.24
2022/10/01 02:30:00 26095 26095 25990 26000 1371 25947.55
2022/10/01 03:30:00 26005 26025 25920 25980 1415 26250.00 BEAR
2022/10/01 04:30:00 25985 25995 25905 25920 1494 26243.40
2022/10/01 05:30:00 25920 25920 25870 25875 343 26229.88
2022/10/03 08:45:00 25850 25850 25615 25660 11733 26208.27
2022/10/03 09:45:00 25660 26040 25615 26025 9348 26160.81
2022/10/03 10:45:00 26025 26155 26015 26095 7113 25615.00 BULL
2022/10/03 11:45:00 26095 26130 26055 26080 3075 25625.80
2022/10/03 12:45:00 26085 26115 26015 26085 3203 25636.38
2022/10/03 13:45:00 26085 26125 26045 26125 2581 25646.76
2022/10/03 14:45:00 26125 26255 26125 26235 3841 25656.92
2022/10/03 16:30:00 26190 26205 26080 26115 2096 25680.84
2022/10/03 17:30:00 26115 26210 26105 26200 1908 25703.81
2022/10/03 18:30:00 26205 26225 26175 26215 1323 25725.86
2022/10/03 19:30:00 26215 26275 26190 26265 1252 25747.02
2022/10/03 20:30:00 26265 26365 26265 26365 1690 25778.70
2022/10/03 21:30:00 26365 26445 26350 26410 2066 25825.61
2022/10/03 22:30:00 26410 26550 26335 26510 4157 25887.55
2022/10/03 23:30:00 26515 26575 26510 26545 1905 25967.04
2022/10/04 00:30:00 26550 26595 26505 26565 1456 26052.15
2022/10/04 01:30:00 26565 26630 26550 26605 1073 26139.01
2022/10/04 02:30:00 26610 26675 26600 26670 796 26227.39
2022/10/04 03:30:00 26665 26715 26645 26675 694 26316.91
2022/10/04 04:30:00 26670 26680 26595 26620 1142 26396.53
2022/10/04 05:30:00 26620 26625 26610 26610 124 26460.22
ツールが出力したもの(日時、終値、フラグ、SAR値、LorS、EP値、AF値)。
2022/09/30 08:45:00,26075,1,26276.31,S,26030.00,0.06
2022/09/30 09:45:00,26020,1,26261.54,S,26030.00,0.06
2022/09/30 10:45:00,25960,1,26239.01,S,25980.00,0.08
2022/09/30 11:45:00,25945,1,26207.61,S,25925.00,0.10
2022/09/30 12:45:00,25855,1,26179.35,S,25925.00,0.10
2022/09/30 13:45:00,25880,1,26133.83,S,25800.00,0.12
2022/09/30 14:45:00,26010,1,26093.77,S,25800.00,0.12
2022/09/30 16:30:00,26120,1,25800.00,L,25800.00,0.00
2022/09/30 17:30:00,26100,1,25807.00,L,26150.00,0.02
2022/09/30 18:30:00,26105,1,25821.52,L,26170.00,0.04
2022/09/30 19:30:00,26050,1,25835.46,L,26170.00,0.04
2022/09/30 20:30:00,26080,1,25848.84,L,26170.00,0.04
2022/09/30 21:30:00,26010,1,25861.69,L,26170.00,0.04
2022/09/30 22:30:00,26095,1,25874.02,L,26170.00,0.04
2022/09/30 23:30:00,26210,1,25885.86,L,26170.00,0.04
2022/10/01 00:30:00,26085,1,25907.71,L,26250.00,0.06
2022/10/01 01:30:00,26095,1,25928.24,L,26250.00,0.06
2022/10/01 02:30:00,26000,1,25947.55,L,26250.00,0.06
2022/10/01 03:30:00,25980,1,26250.00,S,26480.00,0.00
2022/10/01 04:30:00,25920,1,26243.40,S,25920.00,0.02
2022/10/01 05:30:00,25875,1,26229.86,S,25905.00,0.04
2022/10/03 08:45:00,25660,1,26208.27,S,25870.00,0.06
2022/10/03 09:45:00,26025,1,26160.81,S,25615.00,0.08
2022/10/03 10:45:00,26095,1,25615.00,L,25615.00,0.00
2022/10/03 11:45:00,26080,1,25625.80,L,26155.00,0.02
2022/10/03 12:45:00,26085,1,25636.38,L,26155.00,0.02
2022/10/03 13:45:00,26125,1,25646.76,L,26155.00,0.02
2022/10/03 14:45:00,26235,1,25656.92,L,26155.00,0.02
2022/10/03 16:30:00,26115,1,25680.84,L,26255.00,0.04
2022/10/03 17:30:00,26200,1,25703.81,L,26255.00,0.04
2022/10/03 18:30:00,26215,1,25725.86,L,26255.00,0.04
2022/10/03 19:30:00,26265,1,25747.02,L,26255.00,0.04
2022/10/03 20:30:00,26365,1,25778.70,L,26275.00,0.06
2022/10/03 21:30:00,26410,1,25825.61,L,26365.00,0.08
2022/10/03 22:30:00,26510,1,25887.55,L,26445.00,0.10
2022/10/03 23:30:00,26545,1,25967.04,L,26550.00,0.12
2022/10/04 00:30:00,26565,1,26052.15,L,26575.00,0.14
2022/10/04 01:30:00,26605,1,26139.01,L,26595.00,0.16
2022/10/04 02:30:00,26670,1,26227.39,L,26630.00,0.18
2022/10/04 03:30:00,26675,1,26316.91,L,26675.00,0.20
2022/10/04 04:30:00,26620,1,26396.53,L,26715.00,0.20
2022/10/04 05:30:00,26610,1,26460.22,L,26715.00,0.20
githubソース