1

外国為替市場向けの自動取引ソフトウェアを設計しています。MYSQL データベースには、5 分間隔で何年にもわたる市場データがあります。このデータには、価格と時間に加えて 5 つの異なる指標があります。

[Time|Price|M1|M2|M3|M4|M5] 
x ~400,0000

Timeが主キーで、M1さまざまM5な指標 (標準偏差や移動平均の傾きなど) があります。

M1、、、、および M5の入力が与えられた場合M2、最も近い 5,000 個の近傍を効率的に見つけるにはどうすればよいでしょうか? 各メトリックは浮動小数点であり、分布/範囲が異なることに注意してください。M3M4

4

1 に答える 1

1

最近隣人をどのように判断するのかわかりません。各メトリック間の絶対値差を実行して合計できるようです。(絶対値がなければ、2 つのメトリックが大きくずれていても、互いに打ち消し合う可能性があります。)

したがって、最も近い隣人は、このクエストで最も低い値を持つものとして定義されます。

ABS(M1 - @M1) + ABS(M2 - @M2) + ABS(M3 - @M3) + ABS(M4 - @M4) + ABS(M5 - @M5)

これが機能する場合、クエリは次のようになります。

SELECT TOP 5000 *
FROM YourTable
ORDER BY ABS(M1 - @M1) + ABS(M2 - @M2) + ABS(M3 - @M3) + ABS(M4 - @M4) + ABS(M5 - @M5)

必要に応じて、各メトリックを別の方法で重み付けすることもできます。

SELECT TOP 5000 *
FROM YourTable
ORDER BY 2 * ABS(M1 - @M1) + 5 * ABS(M2 - @M2) + ABS(M3 - @M3) + 3 * ABS(M4 - @M4) + ABS(M5 - @M5)
于 2011-08-09T14:08:21.967 に答える