ゴールデンクロスをSQLで判定する

ゴールデンクロスをSQLで判定する

Twitter LINEで送る Facebook はてなブログ

ゴールデンクロス/デッドクロスをSQLで判定する試みを実施

5日移動平均と25日移動平均を軸にゴールデンクロスが発生していることを確認する条件

単純理解

  1. 5日移動平均線が25日移動平均線を下から上に突き抜けるとゴールデンクロス

### さらにゴールデンクロスを分解

  1. 5日移動平均が1つ前の5日移動平均より上であること
  2. 25日移動平均が1つ前の25日移動平均より上であること
  3. 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' 
;