상품 설명
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`
---
*両ツールとも個人利用・分析目的で作成しています。表示される為替レートは
参考情報であり、リアルタイムの取引判断には利用しないでください。*
모든 리뷰
더보기리뷰 등록
리뷰를 작성하려면 로그인이 필요합니다.
로그인하고 리뷰 쓰기