ゴールデンクロスをSQLで判定する
ゴールデンクロス/デッドクロスをSQLで判定する試みを実施
5日移動平均と25日移動平均を軸にゴールデンクロスが発生していることを確認する条件
単純理解
- 5日移動平均線が25日移動平均線を下から上に突き抜けるとゴールデンクロス
### さらにゴールデンクロスを分解
- 5日移動平均が1つ前の5日移動平均より上であること
- 25日移動平均が1つ前の25日移動平均より上であること
- 5日移動平均線が25日移動平均線より上であること
この3つを満たす必要がある
とりあえず移動平均を出す
SELECT date, close FROM (
SELECT
date,
close,
ROUND(AVG(close) OVER (ORDER BY date ASC ROWS BETWEEN 4 PRECEDING AND current ROW), 2) as _5moving_average,
ROUND(AVG(close) OVER (ORDER BY date ASC ROWS BETWEEN 24 PRECEDING AND current ROW), 2) as _25moving_average,
ROUND(AVG(close) OVER (ORDER BY date ASC ROWS BETWEEN 74 PRECEDING AND current ROW), 2) as _75moving_average
FROM
nikkei225
ORDER BY
date DESC) AS T1
WINDOW
w AS (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND current ROW)
WHERE
date >= '2023-01-01'
;