A tool for analyzing prices with technical indicators and top-down analysis.
Project description
Metal Analyzer
貴金属(ゴールド等)の市場価格を高度に分析し、トレンド判定や特定のチャートパターン(ダブルトップ等)を検知するためのPythonライブラリです。
特徴
| 特徴 | 説明 |
|---|---|
| 独自のチャート分析ロジック | 4つの主要次元(基調トレンド、モメンタム、ボラティリティ、パターン)を 0-10 のスコアで定量的に評価。 |
| マルチタイムフレーム対応 | 月・週・日・4時・1時・15分足の計6種類の時間足を作成。EMA 20/50/200とボリンジャーバンドを描画し、トレンドを可視化。 |
| 独自の中期理論のモデル化 | ボラティリティ環境に応じた「雪崩」理論等を実装。高ボラティリティ時の押し目買いや警戒シグナルを定量提示。 |
| 長期トレンド・ポートフォリオ | マクロ経済指標(実質金利、通貨価値)と相対価値(金銀レシオ等)に基づき、長期的な推奨配分を算出。 |
インストール
pip install metal-analyzer
クイックスタート
"""yfinanceライブラリを用いて最新のゴールド価格データを取得し、
主要時間足のチャート生成と、刷新された定量トレンド予測を実行します。
"""
import yfinance as yf
import os
import pandas as pd
from metal_analyzer import MetalAnalyzer
def run_multi_timeframe_demo():
"""最新データに基づいた全時間足チャートと定量分析デモを実行する。"""
print("=== Metal Analyzer 総合分析デモ ===")
ticker = "GC=F"
analyzer = MetalAnalyzer(ticker=ticker)
output_dir = os.path.join("examples", "outputs", "candles")
# 取得対象の時間足設定 (名前, 取得インターバル, 期間)
# 4Hスコア算出のために 1h からリサンプリング用に多めに取得
timeframes = [
("Monthly", "1mo", "15y"),
("Weekly", "1wk", "5y"),
("Daily", "1d", "2y"),
("4H", "1h", "3mo"),
("1H", "1h", "2mo"),
("15M", "15m", "1mo"),
]
print(f"\n[1] データ取得およびチャート生成中...")
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for name, interval, period in timeframes:
print(f"--- {name} ({interval}) を処理中 ---")
data = yf.download(ticker, period=period, interval=interval, progress=False)
if data.empty: continue
# yfinanceのマルチインデックス対応(単一銘柄の場合の階層削除)
if isinstance(data.columns, pd.MultiIndex):
data.columns = data.columns.get_level_values(0)
# 4Hの場合は1Hからリサンプリング
if name == "4H":
data = data.resample('4h').agg({
'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last', 'Volume': 'sum'
}).dropna()
analyzer.add_timeframe_data(name, data)
# 主要な時間足のみチャート画像を生成
if name in ["Daily", "1H", "15M"]:
analyzer.plot_candlestick(name, filename=os.path.join(output_dir, f"chart_{name.lower()}.png"))
# [2] 短期トレンド分析 (刷新された総合ダッシュボード)
analyzer.analyze_short_trend()
print(f"=== 全工程が完了しました ===")
if __name__ == "__main__":
run_multi_timeframe_demo()
結果の出力例
【月足】
上昇: 7
下降: 1
EMA乖離度 : 10
ボラティリティ : 10
エントリーリスク: 1
トレンド:上昇傾向7
Wトップ:検知なし
Wボトム:検知なし
--------------------------------------------------
【週足】
上昇: 5
下降: 0
EMA乖離度 : 10
ボラティリティ : 4
エントリーリスク: 1
トレンド:上昇傾向5
Wトップ:検知なし
Wボトム:検知なし
--------------------------------------------------
【日足】
上昇: 3
下降: 1
EMA乖離度 : 10
ボラティリティ : 3
エントリーリスク: 6
トレンド:上昇傾向3
Wトップ:検知なし
Wボトム:検知なし
--------------------------------------------------
【4時間足】
上昇: 5
下降: 2
EMA乖離度 : 3
ボラティリティ : 7
エントリーリスク: 4
トレンド:上昇傾向5
Wトップ:形成中 (ネックライン: 4805.50)
Wボトム:形成中 (ネックライン: 4868.70)
--------------------------------------------------
【1時間足】
上昇: 5
下降: 2
EMA乖離度 : 0
ボラティリティ : 3
エントリーリスク: 4
トレンド:上昇傾向5
Wトップ:形成中 (ネックライン: 4804.60)
Wボトム:完成 (ネックライン突破: 4828.20) (2026-04-17 20:00)
--------------------------------------------------
【15分足】
上昇: 3
下降: 6
EMA乖離度 : 4
ボラティリティ : 6
エントリーリスク: 4
トレンド:下降傾向6
Wトップ:完成 (ネックライン割れ: 4874.60) (2026-04-17 20:45)
Wボトム:形成中 (ネックライン: 4903.10)
--------------------------------------------------
【総合評価】
上昇: 1
下降: 0
エントリーリスク: 8
トレンド:上昇傾向1
=== 全工程が完了しました ===
プロジェクト構成
| パス | ファイル | 説明 |
|---|---|---|
core/ |
analyzer.py |
メインクラス。全時間足の管理、分析、描画。 |
models/ |
chart_analysis.py |
定量チャート分析エンジン(0-10スコアリング)。 |
models/ |
middle_trend_predictor.py |
中期トレンド分析(根雪/雪崩理論)。 |
models/ |
long_trend_predictor.py |
長期トレンド・マクロ分析・推奨配分。 |
models/ |
top_down.py |
マルチタイムフレーム環境認識。 |
patterns/ |
double_top.py |
ダブルトップ検知ロジック。 |
patterns/ |
double_bottom.py |
ダブルボトム検知ロジック。 |
indicators/ |
sma.py, rsi.py, bollinger_bands.py |
各種インジケーター計算。 |
ライセンス
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
metal_analyzer-0.0.4.tar.gz
(18.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metal_analyzer-0.0.4.tar.gz.
File metadata
- Download URL: metal_analyzer-0.0.4.tar.gz
- Upload date:
- Size: 18.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86a21c15bf83be409cb2871fb05207ddb6e565a182f9065af52174c2b227584e
|
|
| MD5 |
f3011f2cb0c132f9bf48e30547c48101
|
|
| BLAKE2b-256 |
ea18c2d1283aa72de7357ea0c25f86959062ba01576694a99ce76ca532fe5076
|
File details
Details for the file metal_analyzer-0.0.4-py3-none-any.whl.
File metadata
- Download URL: metal_analyzer-0.0.4-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6a4d58f7548b6b6113da995fcb93ce60229780f6477fce0a486c64af1507b2e
|
|
| MD5 |
4448fef6f78f153dda46370d764e7b76
|
|
| BLAKE2b-256 |
1834746c6f42c50cde8bb02a99f72c576d40ef346d55ff7efac6ac2881773b65
|