ArrayList ですべての極小値を見つけようとしています。基本的な考え方は、株式のすべてのサポート レベルを見つけることです。
サポートレベルとは、これを下回ると歴史的に株価が下落するのが困難になった価格レベルを指します。これは、買い手が在庫に入る傾向があるレベルです。
下にスクリーンショットを添付しました。これは、株式のすべてのサポートレベルを示しています。
画像では、以下に示すように、3 つのサポート レベルと、アルゴリズムを使用して取得したこれらのサポート ポイントを強調表示しています。
SEGMENT_SIZE = 4;
localMinSkipCount = 0;
noOfSkipSegments = 3;
for(i = 0; i < datapoints.size(); i = i + SEGMENT_SIZE) {
int endIndex = i + SEGMENT_SIZE;
if (endIndex > datapoints.size()) {
endIndex = datapoints.size();
}
// Finds the min point in the segment
double localMin = findLocalMin(i, endIndex);
if (localMins.size() > 0) {
lastLocalMin = localMins.get(localMins.size() - 1);
if ( localMin > lastLocalMin ) {
if (localMinSkipCount > noOfSkipSegments) {
localMins.add(localMin);
localMinSkipCount = 0;
}
localMinSkipCount++;
} else {
// update the local min here
localMins.set(localMins.size() - 1, localMin);
localMinSkipCount = 0;
}
} else {
localMins.add(localMin);
}
}
このアルゴリズムはほとんど機能しますが、常に最適であるとは限りません。株式のサポートレベルを見つけるためのより良いアルゴリズム、またはこのアルゴリズムを最適化するための提案があるかどうかを知りたい.