株のシステムトレードをしよう - 1から始める株自動取引システムの作り方

株式をコンピュータに売買させる仕組みを少しずつ作っていきます。できあがってから公開ではなく、書いたら途中でも記事として即掲載して、後から固定ページにして体裁を整える方式で進めていきます。

過去のうち、指定した日時に最も近い歩み値を返すSQL

今日はSQLの検証をする。以前調べた過去の記事でまとめた内容が正しいか、PostgreSQLでも使用できるかを確かめる。

how-to-make-stock-trading-system.dogwood008.com

検証の結果、そのまま参考にできそうなことがわかった。

例1

指定した日時が存在するとき。

/* 入力 */
SELECT *
FROM stock_7974
WHERE datetime <= '2021-09-09 14:59:56'
ORDER BY datetime DESC
LIMIT 1;
# 出力
      datetime       | volume | price 
---------------------+--------+-------
 2021-09-09 14:59:56 |    400 | xx370
(1 row)

例2

指定した日時が存在せず、1秒前に存在するとき。

SELECT *
FROM stock_7974
WHERE datetime <= '2021-09-09 14:59:49'
ORDER BY datetime DESC
LIMIT 1;
      datetime       | volume | price 
---------------------+--------+-------
 2021-09-09 14:59:48 |    100 | xx390

例3

指定した日時が存在せず、4秒前に存在するとき。

SELECT *
FROM stock_7974
WHERE datetime <= '2021-09-09 14:28:14'
ORDER BY datetime DESC
LIMIT 1;
      datetime       | volume | price 
---------------------+--------+-------
 2021-09-09 14:28:10 |   1600 | xx380

(C) 2020 dogwood008 禁無断転載 不許複製 Reprinting, reproducing are prohibited.