Skip to main content

Metal Analyzer

貴金属(ゴールド等)の市場価格を高度に分析し、トレンド判定や特定のチャートパターン(ダブルトップ等)を検知するためのPythonライブラリです。

特徴

特徴 説明
独自のチャート分析ロジック 4つの主要次元(基調トレンド、モメンタム、ボラティリティ、パターン)を 0-10 のスコアで定量的に評価。
マルチタイムフレーム対応 月・週・日・4時・1時・15分足の計6種類の時間足を作成。EMA 20/50/200とボリンジャーバンドを描画し、トレンドを可視化。
独自の中期理論のモデル化 ボラティリティ環境に応じた「雪崩」理論等を実装。高ボラティリティ時の押し目買いや警戒シグナルを定量提示。
長期トレンド・ポートフォリオ マクロ経済指標(実質金利、通貨価値)と相対価値(金銀レシオ等)に基づき、長期的な推奨配分を算出。

インストール

pip install metal-analyzer

クイックスタート

demo.py

"""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

Metadata

Release files for metal-analyzer 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for metal-analyzer 0.0.4
File Size Uploaded
metal_analyzer-0.0.4.tar.gz 18.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for metal-analyzer 0.0.4
File Interpreter ABI Platform
metal_analyzer-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 41.8 kB

Release files / metal_analyzer-0.0.4.tar.gz

Download URL metal_analyzer-0.0.4.tar.gz
Size 18.8 kB
Tags Source
SHA-256 checksum
How to use checksums
86a21c15bf83be409cb2871fb05207ddb6e565a182f9065af52174c2b227584e
BLAKE2b-256 checksum
How to use checksums
ea18c2d1283aa72de7357ea0c25f86959062ba01576694a99ce76ca532fe5076
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / metal_analyzer-0.0.4-py3-none-any.whl

Download URL metal_analyzer-0.0.4-py3-none-any.whl
Size 23.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a6a4d58f7548b6b6113da995fcb93ce60229780f6477fce0a486c64af1507b2e
BLAKE2b-256 checksum
How to use checksums
1834746c6f42c50cde8bb02a99f72c576d40ef346d55ff7efac6ac2881773b65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page