経済指標カレンダーが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の中身で今日の経済指標一覧を表示
しかし、これだと先週のデータのため表示されないので
今週のものを試す