gmailから予定の抽出とDB格納

経済指標カレンダーがgmailで購読しているメルマガに掲載されているので、そこから抽出したい。 この経済指標カレンダーを自動売買に組み込みたい

🧩 全体構成
① Gmail APIでメールを取得
* google-api-python-client でGmail APIを使って、メルマガ(特定の送信者や件名)を定期的に取得
② 経済指標カレンダー部分の抽出
* HTML構造をパースして、経済指標情報(日付・時間・国・指標名・前回・予想・結果など)を抽出
* BeautifulSoup や正規表現を併用
③ データベース or CSVに保存(SQLiteなど)
* 抽出したデータを SQLite に保存
* 過去データの参照やトリガー管理が容易
④ 自動売買スクリプトに連携
* 経済指標発表前後のトリガー条件をPythonで定義
* 例: 「米国雇用統計の5分前にポジションをクローズする」など

実験的にメルマガの内容をテキストファイルにまとめた これから抽出してほしい
として
Gmail.txtで実験したらできた

まずはメルマガから抽出する実験をする
ダメなら
同じようにGPTでcsvファイルを作成する
これでも対処はできる

cp ~/Downloads/economic_events_20250714.* .

で作成した
Csv、JSONファイルを移動

とりあえず経済指標はGPTで抽出する

date,time,country,event,importance,type
2025-07-15,11:00,中,第2四半期GDP,,経済指標
2025-07-15,11:00,中,鉱工業生産,,経済指標
2025-07-15,11:00,中,小売売上高,,経済指標
2025-07-15,11:00,中,固定資産投資,,経済指標
2025-07-15,18:00,独,ZEW景況感調査,,経済指標
2025-07-15,21:30,加,消費者物価指数,,経済指標
2025-07-15,29:00,英,ベイリーBOE総裁の発言,,発言
2025-07-15,20時頃,米,JPモルガン・チェース決算,★,決算
2025-07-15,21:30,米,消費者物価指数&【コア】,★,経済指標
2025-07-15,21:30,米,NY連銀製造業景気指数,★,経済指標
2025-07-15,22:15,米,ボウマンFRB副議長の発言(投票権あり),★,発言
2025-07-15,23時頃,米,シティグループ決算,★,決算
2025-07-15,25:45,米,バーFRB理事の発言(投票権あり),★,発言
2025-07-15,26:00,米,バーキン:リッチモンド連銀総裁の発言(投票権なし),★,発言
2025-07-15,27:45,米,コリンズ:ボストン連銀総裁の発言(投票権あり),★,発言
2025-07-16,15:00,英,消費者物価指数&【コア】,,経済指標
2025-07-16,15:00,英,小売物価指数&【コア】,,経済指標
2025-07-16,21:15,加,住宅着工件数,,経済指標
2025-07-16,08:45,米,ローガン:ダラス連銀総裁の発言(投票権なし),★,発言
2025-07-16,20:00,米,MBA住宅ローン申請指数,★,経済指標
2025-07-16,21:00,米,バーキン:リッチモンド連銀総裁の発言(投票権なし),★,発言
2025-07-16,21時頃,米,ゴールドマン・サックス決算,★,決算
2025-07-16,21時頃,米,モルガン・スタンレー決算,★,決算
2025-07-16,21:30,米,生産者物価指数&【コア】,★,経済指標
2025-07-16,22:15,米,鉱工業生産/設備稼働率,★,経済指標
2025-07-16,22:15,米,ハマック:クリーブランド連銀総裁の発言(投票権なし),★,発言
2025-07-16,23:00,米,バーFRB理事の発言(投票権あり),★,発言
2025-07-16,23:30,米,週間原油在庫,★,経済指標
2025-07-16,27:00,米,地区連銀経済報告(ベージュブック),★,経済指標
2025-07-17,10:30,豪,失業率&新規雇用者数,,経済指標
2025-07-17,15:00,英,失業率&失業保険申請件数,,経済指標
2025-07-17,06:30,米,ウィリアムズ:NY連銀総裁の発言(投票権あり),★,発言
2025-07-17,21:30,米,新規失業保険申請件数,★,経済指標
2025-07-17,21:30,米,小売売上高&【除自動車】,★,経済指標
2025-07-17,21:30,米,フィラデルフィア連銀景況指数,★,経済指標
2025-07-17,21:30,米,輸入物価指数,★,経済指標
2025-07-17,23:00,米,企業在庫,★,経済指標
2025-07-17,23:00,米,NAHB住宅市場指数,★,経済指標
2025-07-17,23:00,米,クーグラーFRB理事の発言(投票権あり),★,発言
2025-07-17,23:30,米,週間天然ガス貯蔵量,★,経済指標
2025-07-17,25:45,米,デイリー:サンフランシスコ連銀総裁の発言(投票権なし),★,発言
2025-07-17,26:30,米,クックFRB理事の発言(投票権あり),★,発言
2025-07-17,29:00,米,対米証券投資【ネット長期フロー】&【ネットフロー合計】,★,経済指標
2025-07-17,米株引後,米,ネットフリックス決算,★,決算
2025-07-18,08:30,日,全国消費者物価指数&【除生鮮】,,経済指標
2025-07-18,07:30,米,ウォラーFRB理事の発言(投票権あり),★,発言
2025-07-18,21:30,米,住宅着工件数/建設許可件数,★,経済指標
2025-07-18,23:00,米,ミシガン大学消費者信頼感指数【速報値】,★,経済指標

という内容で

economic_events_20250714.csv	

を作成

これをsqliteに入れてDBにする

 vim calendar_csv_in_sql.py

でファイルを作成

import pandas as pd
import sqlite3

# CSVファイルの読み込み
csv_path = "economic_events_20250714.csv"  # ファイルパスは必要に応じて変更
df = pd.read_csv(csv_path)

# SQLiteデータベースに接続(なければ作成)
conn = sqlite3.connect("economic_events.db")  # 出力ファイル名も変更可能

# データをeventsテーブルに保存(既存なら上書き)
df.to_sql("events", conn, if_exists="replace", index=False)

# テーブル構成確認(任意)
cursor = conn.cursor()
cursor.execute("PRAGMA table_info(events)")
columns = cursor.fetchall()
for col in columns:
    print(f"{col[1]} ({col[2]})")

# 接続を閉じる
conn.close()

で保存

実行すると

date (TEXT)
time (TEXT)
country (TEXT)
event (TEXT)
importance (TEXT)
type (TEXT)

となる

次に経済指標で
DBの中身で今日の経済指標一覧を表示

しかし、これだと先週のデータのため表示されないので
今週のものを試す

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です