ML Documentation

価格予測ロジック詳細説明書

概要

本システムの価格予測機能は、シンプルなLSTM風の予測モデルを実装しており、リアルタイムの取引データを基に短期価格予測を行います。

1. 予測モデルの構造

1.1 SimpleLSTMPredictor クラス

class SimpleLSTMPredictor:
    def __init__(self, sequence_length: int = 20):
        self.sequence_length = sequence_length  # 過去20データポイントを使用
        self.price_history = deque(maxlen=100)  # 価格履歴(最大100件)
        self.volume_history = deque(maxlen=100) # 取引量履歴(最大100件)

1.2 重み係数(事前定義)

self.weights = {
    'price_weight': 0.7,      # 価格トレンドの重み
    'volume_weight': 0.15,    # 取引量の重み
    'momentum_weight': 0.1,   # モメンタムの重み
    'volatility_weight': 0.05 # ボラティリティの重み
}

2. 特徴量の計算

2.1 価格関連特徴量

2.2 取引量関連特徴量

2.3 テクニカル指標

3. 予測アルゴリズム

3.1 基本予測式

price_change = (momentum_factor + volume_factor + rsi_factor) * time_multiplier
predicted_price = base_price * (1 + price_change)

3.2 各要素の計算

モメンタムファクター

momentum_factor = price_momentum * 0.7

ボリュームファクター

volume_factor = (volume_ratio - 1) * 0.15

RSIファクター

if RSI > 70:
    rsi_factor = -0.01  # 買われすぎ → 下落予測
elif RSI < 30:
    rsi_factor = 0.01   # 売られすぎ → 上昇予測
else:
    rsi_factor = 0      # 中立

時間乗数

time_multiplier = sqrt(interval_minutes / 60)

3.3 信頼度の計算

confidence = max(0.1, 1 - volatility_factor * 10)
confidence = min(0.9, confidence)

3.4 予測範囲(上限・下限)

uncertainty = price_std * time_multiplier
upper_bound = predicted_price + uncertainty
lower_bound = predicted_price - uncertainty

4. 予測の実行フロー

  1. データ収集: リアルタイムで価格と取引量データを蓄積
  2. 特徴量計算: 最新20データポイントから各種指標を計算
  3. 予測計算: 重み付けされた各要素を組み合わせて価格変化を予測
  4. 信頼度評価: ボラティリティを基に予測の信頼度を算出
  5. 結果出力: 予測価格、信頼度、予測範囲を返却

5. 予測精度向上のための工夫

5.1 データの正規化

5.2 時系列性の考慮

5.3 市場状態の反映

6. 制限事項と改善余地

現在の制限

改善可能な点

  1. 実際のLSTM/GRUモデルの実装
  2. より多くのテクニカル指標の追加(MACD、ボリンジャーバンド等)
  3. センチメント分析の統合
  4. バックテストによるパラメータ最適化
  5. アンサンブル学習の導入

7. 使用例

# 予測モデルの初期化
predictor = SimpleLSTMPredictor(sequence_length=20)

# データの追加
predictor.add_data(price=160.5, volume=100.5, timestamp=datetime.now())

# 5分後の価格予測
result = predictor.predict(PredictionInterval.FIVE_MIN)

# 結果の取得
print(f"予測価格: ${result.predicted_price:.2f}")
print(f"信頼度: {result.confidence * 100:.1f}%")
print(f"予測範囲: ${result.lower_bound:.2f} - ${result.upper_bound:.2f}")

まとめ

本システムの価格予測は、従来のテクニカル分析手法とシンプルな機械学習アプローチを組み合わせたハイブリッド型です。リアルタイムデータを活用し、短期的な価格動向を予測することに特化しています。将来的には、より高度な深層学習モデルへの移行を検討していますが、現在の実装でも実用的な予測精度を実現しています。