FX Viewer
- ダウンロード商品¥ 100

# FX Data Dashboard — 使用マニュアル(日本語) USD/JPYなどの為替レート履歴を取得し、CSV保存とグラフ表示を行う2つのツールです。 どちらもプルダウンで通貨ペアと期間を選び、UI内で日本語⇔英語を切り替えられます。 | | Python版 | HTML版 | |---|---|---| | ファイル | `main.py`、`static/index.html` 等一式 | `fx_dashboard.html` 単体 | | 必要環境 | Python 3.9+(ローカルにインストール) | 不要(ブラウザだけ) | | データ元 | Yahoo Finance(`yfinance`経由) | Frankfurter API(ECB日次公表レート) | | データ粒度 | 日次〜1分足まで | 日次のみ | | 通貨カバー範囲 | JPYクロス全18種類(TWD含む) | 18種類中17種類(TWD非対応) | | 向いている用途 | 精度重視、分足など細かいデータ、自動化 | セットアップ不要、さっと確認、ファイル共有 | どちらを使うか迷ったら: **HTML版**は何もインストールせずレートを確認したり CSVをすぐ手に入れたいときに最速です。**Python版**は分足などの詳細データや TWD/JPYが必要なとき、あるいは今後カスタマイズしていきたいとき向けです (お使いのノートブックと同じ`yfinance`を使っています)。 --- ## 1. Python版 ### セットアップ ```bash cd fx_dashboard ./start.sh ``` これで`requirements.txt`の依存関係がインストールされ、サーバーが起動します。 ブラウザで **http://localhost:8000** を開いてください。`start.sh`を使わず 手動で起動する場合: ```bash pip install -r requirements.txt python3 main.py ``` ### 使い方 1. **通貨ペア (Ticker)** — JPYクロスを選択(例:`EURJPY=X`) 2. **間隔 (Interval)** — 足の粗さ(`1d`、`1h`、`5m`など)。分足・時間足を 選ぶと、Yahoo Financeが保持している履歴の長さに応じて**期間**の選択肢が 自動的に絞り込まれます: - `1m`/`2m`/`5m`/`15m`/`30m` → 期間は`1d`または`5d`まで(最大7日) - `60m`/`90m`/`1h` → 期間は`1d`/`5d`/`1mo`まで(最大60日程度) - `1d`以上の粗さ → `max`まで任意の期間 3. **期間 (Period)** — どこまで遡って取得するか 4. **最新データを取得**をクリックすると: - Yahoo Financeから履歴データをダウンロード - `data/`フォルダに日時付きCSVとして保存(例: `EURJPYX_1y_1d_20260905_120000.csv`) - 終値をグラフ表示(MA5/MA25の重ね表示オプションあり) - 最新値・前回比・変化率・データ件数を表示 5. **CSVをダウンロード**をクリックすると、同じファイルをブラウザ経由でも 保存できます。 **デモモード**のチェックボックス:実際の通信を行わず合成(ダミー)データを 表示します。UIの動作確認用に使えるほか、実際のYahoo Finance取得が何らかの 理由で失敗した場合にアプリが自動的にこちらへ切り替わり、理由を示す警告 バナーが表示されます。 **言語切り替え**:右上の **EN / 日本語** ボタンで、ラベル・プルダウン・ エラーメッセージがすべて即座に切り替わります。データの再取得は不要で、 表示中の結果はそのまま残ります。 ### ファイルの保存場所 CSVは`fx_dashboard/data/`に溜まっていきます。自動削除はされないため、 不要になったファイルは適宜手動で削除してください。 ### トラブルシューティング - **「データが取得できませんでした」** — 通常はティッカー/期間/間隔の組み 合わせにデータが存在しないことが原因です(間隔の制限に反している、その 通貨ペアがYahoo Financeに存在しない、など)。間隔を粗くするか期間を短く してみてください。 - **デモデータの警告バナー** — Yahoo Financeに接続できず(オフライン、 ネットワーク遮断、Yahoo側の一時的な問題など)自動的に合成データへ 切り替わっています。インターネット接続を確認してください。 - **`RuntimeError: Directory 'static' does not exist`** — 間違ったフォルダ から`main.py`を実行しているか、`static/`フォルダが分離してしまって います。`fx_dashboard/`ディレクトリの中で、`static/`と同じ階層から `python3 main.py`を実行してください。 --- ## 2. HTML版(`fx_dashboard.html`) ### 開き方 ファイルをダブルクリックする(またはブラウザにドラッグする)だけです。 インストールもサーバー起動も不要です。ブラウザ自身のネットワーク接続を 使って、公開の為替レートAPI(Frankfurter — 下記「データ元」参照)から 直接データを取得します。 ### 使い方 1. **通貨ペア**・**期間**のプルダウン(Python版と同じJPYクロス一覧、 TWDを除く — 下記の制約を参照) 2. **最新データを取得**をクリックすると: - ブラウザから直接、日次の過去レートを取得(サーバーを介しません) - CSVのダウンロードが自動的に始まります - レートをグラフ表示(MA5/MA20の重ね表示オプションあり) - 最新レート・前回比・変化率・データ件数・最終更新日を表示 3. **CSVをダウンロード**ボタンでいつでも同じデータを再保存できます。 4. **EN / 日本語** ボタンでUI全体を即座に切り替えられます。 ### データ元と制約 このHTML版にはサーバーがないため、ブラウザから直接`yfinance`/Yahoo Financeを呼び出すことができません(ブラウザのクロスオリジン制限で ブロックされます)。代わりに、欧州中央銀行(ECB)の日次公表レートを 配信している[Frankfurter API](https://frankfurter.dev)を利用しています。 無料・APIキー不要で、ブラウザからのクロスオリジンリクエストも明示的に 許可されています。 Python版との違い(制約): - **日次データのみ** — 分足・時間足などのイントラデイデータはありません - **営業日のみ** — 土日・EUの祝日はデータがありません - **TWD(台湾ドル)は非対応** — 台湾はECBの公表対象通貨に含まれていません。 `TWDJPY=X`を選ぶと明確なエラーメッセージが表示され、Python版の利用を 案内します - **yfinance/Yahoo Financeとは値がわずかに異なります** — データ提供元も 基準時刻も異なるためです ### スマートフォンでの利用 画面幅が約640px以下になると自動的にレイアウトが調整されます (操作項目が縦積み・全幅表示になりタップしやすいサイズに、統計欄は 2列表示、グラフも画面に収まるサイズに縮小)。特別な設定は不要で、 同じファイルをそのまま開くだけです。 ### トラブルシューティング - **「通信エラー: Failed to fetch」** — ブラウザの汎用的なネットワーク エラーで、原因はいくつか考えられます。エラーバナューには実際に試した URLと、それを新しいタブで直接開いて確認するリンクが表示されます: - リンクを新しいタブで開いても**失敗する**場合 → ネットワーク自体の 問題(オフライン、社内プロキシ、`frankfurter.dev`をブロックする ファイアウォールなど) - リンクは新しいタブで**開けるのに**アプリ内ではエラーになる場合 → ブラウザ拡張機能(広告ブロッカー、トラッキング防止系、プライバシー 系拡張機能など)がこのページの通信だけをブロックしている可能性が 高いです。拡張機能を無効化するか、シークレット/プライベートウィンドウ で試してみてください - **TWDのエラー** — 想定通りの動作です。このデータソースはTWDを カバーしていないため、その通貨ペアにはPython版をご利用ください - **今日のデータが古い・おかしく見える** — ECBの公表レートは営業日1回 (中央ヨーロッパ時間16:00頃)のみの更新であり、リアルタイムの ライブフィードではありません --- ## リファレンス表(両バージョン共通) ### 通貨ペア | Ticker | ペア | Python (yfinance) | HTML (Frankfurter) | |---|---|---|---| | `JPY=X` | USD/JPY | ○ | ○ | | `EURJPY=X` | EUR/JPY | ○ | ○ | | `GBPJPY=X` | GBP/JPY | ○ | ○ | | `AUDJPY=X` | AUD/JPY | ○ | ○ | | `CADJPY=X` | CAD/JPY | ○ | ○ | | `CHFJPY=X` | CHF/JPY | ○ | ○ | | `NZDJPY=X` | NZD/JPY | ○ | ○ | | `ZARJPY=X` | ZAR/JPY | ○ | ○ | | `TRYJPY=X` | TRY/JPY | ○ | ○ | | `SGDJPY=X` | SGD/JPY | ○ | ○ | | `HKDJPY=X` | HKD/JPY | ○ | ○ | | `KRWJPY=X` | KRW/JPY | ○ | ○ | | `CNYJPY=X` | CNY/JPY | ○ | ○ | | `TWDJPY=X` | TWD/JPY | ○ | ×(Frankfurter非対応) | | `THBJPY=X` | THB/JPY | ○ | ○ | | `IDRJPY=X` | IDR/JPY | ○ | ○ | | `PHPJPY=X` | PHP/JPY | ○ | ○ | | `INRJPY=X` | INR/JPY | ○ | ○ | ### 期間(Python版) `1d`、`5d`、`1mo`、`3mo`、`6mo`、`1y`、`2y`、`5y`、`10y`、`ytd`、`max` ### 間隔(Python版のみ — HTML版は日次のみ) `1m`、`2m`、`5m`、`15m`、`30m`、`60m`、`90m`、`1h`、`1d`、`5d`、`1wk`、`1mo`、`3mo` --- *両ツールとも個人利用・分析目的で作成しています。表示される為替レートは 参考情報であり、リアルタイムの取引判断には利用しないでください。*
