MagicTradeBot 精密設定ガイド — 技術シグナルと取引精度を微調整

Overview

MagicTradeBotの精密コンフィギュレーション(Precision Configuration)システムは、シグナルの質と量を完全に制御できる機能を提供します。15種類以上の各シグナルタイプには tradesettings.yaml 内に専用の設定セクションがあり、ハイフリークエンシーでノイズの多い攻撃的設定から、低頻度で高信頼度の保守的設定まで、パラメータを細かく調整できます。この高度な制御により、数千の銘柄をスキャンし、あなたのリスクプロファイルに合致する最良のチャンスのみを抽出することが可能になります。

品質 vs 量 のトレードオフ

シグナル厳格度スペクトラム

攻撃的 ←――――――――――――――――――――――――――――――――――→ 保守的
(量が多い)                                              (質が高い)

シグナル数が多い                                         シグナル数が少ない
勝率が低い                                                勝率が高い
リスクが高い                                              リスクが低い
アクティブトレード                                        選択的トレード

重要原則:閾値を厳しくするとシグナルは減少しますが、成功確率は上がります。閾値を緩めるとシグナルは増えますが、誤シグナル(false positive)が増加します。

設定理念

各シグナルパラメータは以下の3つの軸で調整できます:

  1. 感度 – シグナルがどれだけ簡単に発生するか(閾値)
  2. 確認条件 – いくつの条件が同時に成立する必要があるか(多要素確認)
  3. フィルタリング – 追加で満たすべき条件(出来高、ボラティリティなど)

設定構造

すべてのシグナル設定は tradesettings.yaml に集約されています:

yaml
signals:
  rsi:
    enabled: true
    oversold_threshold: 30
    overbought_threshold: 70
    # ... RSI の追加設定
  
  macd:
    enabled: true
    fast_period: 12
    slow_period: 26
    # ... MACD の追加設定
  
  # ... その他すべてのシグナル設定

各セクションは独立して設定可能であり、一部のシグナルは攻撃的に、他のシグナルは保守的にといった組み合わせが可能です。


シグナル別コンフィギュレーション

RSI シグナル設定

目的:過買い/過売り感度およびダイバージェンス検出の調整

yaml
rsi:
  enabled: true
  period: 14

  # 閾値設定
  oversold_threshold: 30
  overbought_threshold: 70

  # 品質フィルター
  require_volume_confirmation: true
  min_volume_multiplier: 1.5

  # ダイバージェンス設定
  enable_divergence_detection: true
  divergence_lookback: 20
  divergence_min_strength: 0.6

  # シグナルフィルタリング
  ignore_in_strong_trends: true
  min_price_move_percent: 0.5

調整ガイド:

  • シグナル数を増やす: oversold=40, overbought=60, require_volume=false
  • より高品質なシグナル: oversold=20, overbought=80, require_volume=true, min_strength=0.8

MACD シグナル設定

目的:クロスオーバー感度およびヒストグラム閾値の微調整

yaml
macd:
  enabled: true

  # 期間設定
  fast_period: 12
  slow_period: 26
  signal_period: 9

  # シグナルトリガー
  trigger_on_crossover: true
  trigger_on_histogram_flip: true
  trigger_on_divergence: true

  # 品質フィルター
  min_histogram_value: 0.0001
  require_momentum_confirmation: true
  min_bars_since_last_signal: 5

  # ダイバージェンス
  divergence_lookback: 15
  divergence_min_strength: 0.65

  # 市場環境フィルター
  ignore_choppy_markets: true
  choppiness_threshold: 61.8

調整ガイド:

  • シグナル数を増やす: fast=8, slow=17, min_histogram=0, ignore_choppy=false
  • より高品質なシグナル: fast=16, slow=35, min_histogram=0.0005, min_bars=10

ボリンジャーバンドの設定

目的: ボラティリティ感度と平均回帰の厳密性を制御する

yaml
bollinger_bands:
  enabled: true

  period: 20
  std_dev: 2.0

  trigger_on_touch: true
  trigger_on_break: false
  require_reversal_candle: true

  min_band_width_percent: 2.0
  max_band_width_percent: 10.0
  require_volume_spike: true
  min_volume_ratio: 1.3

  enable_squeeze_alerts: true
  squeeze_threshold: 1.5
  squeeze_breakout_multiplier: 2.0

  require_price_return_to_middle: false

調整ガイド:

  • より多くのシグナル: std_dev=1.5, trigger_on_break=true, require_reversal=false
  • より良いシグナル: std_dev=2.5, min_band_width=3.0, require_volume=true

ATRシグナルの設定

目的: ボラティリティ拡張の閾値とブレイクアウト基準を定義する

yaml
atr:
  enabled: true
  period: 14

  breakout_multiplier: 1.5
  min_atr_expansion_percent: 20
  lookback_for_expansion: 10

  require_volume_confirmation: true
  min_volume_multiplier: 1.8
  require_directional_close: true
  close_position_percent: 0.8

  min_bars_in_consolidation: 5
  max_prior_volatility: 2.5

  ignore_gaps: true
  ignore_news_hours: true

調整ガイド:

  • より多くのシグナル: multiplier=1.2, min_expansion=10, min_bars=3
  • より良いシグナル: multiplier=2.0, min_expansion=30, min_bars=8, volume=2.0x

ボリュームシグナルの設定

目的: 異常な取引量の検出のための閾値を設定する

yaml
volume:
  enabled: true

  lookback_period: 20
  spike_multiplier: 2.0

  detect_buying_volume: true
  detect_selling_volume: true
  detect_climax_volume: true

  min_candle_body_percent: 40
  require_price_confirmation: true
  min_price_move_percent: 1.0

  climax_multiplier: 4.0
  climax_lookback: 50
  signal_reversal_after_climax: true

  use_volume_profile: true
  significant_level_volume_ratio: 1.5

  ignore_low_liquidity_symbols: true
  min_dollar_volume: 100000

調整ガイド:

  • より多くのシグナル: multiplier=1.5, min_body=30, min_move=0.5
  • より良いシグナル: multiplier=3.0, min_body=60, climax=5.0, dollar_volume=500k

モメンタム / 速度シグナル設定

目的: 変化率の加速を検出する

yaml
momentum_velocity:
  enabled: true

  momentum_period: 10
  velocity_lookback: 5

  min_momentum_percent: 2.0
  min_velocity_increase: 1.5

  require_sustained_momentum: true
  min_consecutive_periods: 3
  require_volume_increase: true

  enable_momentum_divergence: true
  divergence_lookback: 15
  divergence_sensitivity: 0.7

  ignore_choppy_conditions: true
  max_directional_changes: 2
  require_trend_alignment: true
  trend_timeframe_multiplier: 4

チューニングガイド:

  • シグナルを増やす: period=5, min_momentum=1.0, consecutive=2, require_trend=false
  • シグナルを最適化: period=20, min_momentum=3.0, consecutive=5, velocity=2.0

RSIダイバージェンス設定

目的: ダイバージェンスの感度を微調整する

yaml
rsi_divergence:
  enabled: true

  lookback_period: 20

  min_pivot_strength: 3
  min_pivots_required: 2

  min_divergence_angle: 15
  min_rsi_difference: 5
  min_price_difference_percent: 1.0

  require_volume_confirmation: true
  volume_must_decrease: true
  require_trend_context: true

  detect_hidden_divergence: true
  hidden_requires_stricter_rules: true

  ignore_in_consolidation: true
  min_atr_for_signal: 0.5

チューニングガイド:

  • シグナルを増やす: lookback=10, pivot=2, angle=10, volume=false
  • シグナルを最適化: lookback=30, pivot=5, angle=25, rsi_diff=8

VWAP & バンド設定

目的: VWAP偏差バンドのロジックを構成する

yaml
vwap:
  enabled: true

  reset_period: "daily"
  use_cumulative: true

  enable_bands: true
  band_1_std_dev: 1.0
  band_2_std_dev: 2.0
  band_3_std_dev: 3.0

  trigger_on_band_touch: true
  trigger_level: 2
  require_rejection_candle: true

  min_distance_from_vwap_percent: 0.5
  require_volume_at_level: true
  volume_percentile_threshold: 70

  require_return_toward_vwap: true
  min_reversion_percent: 30
  max_bars_for_reversion: 5

  ignore_trending_markets: false
  min_time_from_reset: 60

チューニングガイド:

  • シグナルを増やす: trigger_level=1, min_distance=0.2, rejection=false
  • シグナルを最適化: trigger_level=3, min_distance=1.0, volume_percentile=80

CVD(累積ボリュームデルタ)設定

目的: 圧力の不均衡を検出する

yaml
cvd:
  enabled: true

  lookback_period: 100

  enable_divergence_signals: true
  divergence_lookback: 20
  min_divergence_strength: 0.7

  cvd_trend_period: 20
  min_cvd_trend_strength: 0.6

  trigger_on_divergence: true
  trigger_on_trend_change: true
  trigger_on_exhaustion: true

  min_cvd_change_percent: 10
  require_price_confirmation: true
  min_price_move_percent: 0.8

  exhaustion_lookback: 10
  exhaustion_threshold: 0.3
  require_volume_divergence: true

  ignore_low_volume_periods: true
  min_volume_for_valid_cvd: 1.5

チューニングガイド:

  • シグナルを増やす: lookback=50, min_change=5, exhaustion=0.5
  • シグナルを最適化: lookback=200, min_change=20, strength=0.8, volume_divergence=true

マルチタイムフレーム整合設定

目的: 複数のチャート時間枠にわたる整合ルールを定義する

yaml
multi_timeframe:
  enabled: true

  base_timeframe: "5m"
  higher_timeframes:
    - "15m"
    - "1h"
    - "4h"

  require_all_aligned: false
  min_alignment_percent: 75

  primary_signals:
    - "RSI"
    - "MACD"
    - "MOMENTUM"

  confirmation_signals:
    - "TREND_DIRECTION"
    - "REGIME"

  trend_indicator: "EMA"
  trend_periods:
    fast: 20
    slow: 50

  require_higher_tf_trend: true
  min_higher_tf_strength: 0.6
  ignore_conflicting_signals: true

  weight_by_timeframe: true
  timeframe_weights:
    "5m": 1.0
    "15m": 1.5
    "1h": 2.0
    "4h": 3.0

チューニングガイド:

  • シグナルを増やす: alignment=50, require_higher_tf_trend=false, check 2 TF
  • シグナルを最適化: alignment=100, require_all=true, check 4+ TF

市場状況検出設定

目的: トレンド、レンジ、ボラティリティ、または安定した市場条件を検出する

yaml
market_regime:
  enabled: true

  lookback_period: 50

  trend_indicator: "ADX"
  trend_threshold: 25

  range_indicator: "CHOPPINESS"
  range_threshold: 61.8

  volatility_measure: "ATR_PERCENTILE"
  high_volatility_threshold: 70
  low_volatility_threshold: 30

  signal_on_regime_change: true
  require_confirmation_bars: 3

  adjust_other_signals: true

  regime_adjustments:
    trending:
      rsi_overbought: 80
      rsi_oversold: 20
      follow_trend_only: true
    
    ranging:
      bb_std_dev: 1.5
      enable_mean_reversion: true
      disable_breakout_signals: true
    
    volatile:
      atr_multiplier: 2.5
      reduce_position_size: 0.5
    
    calm:
      atr_multiplier: 1.2
      increase_position_size: 1.2

チューニングガイド:

  • シグナルを増やす: lookback=20, trend_threshold=20, confirm=1
  • シグナルを最適化: lookback=100, trend_threshold=30, confirm=5

BTCに対する相対力 (Relative Strength) 設定

目的: 比較指標とアウトパフォーマンス閾値を設定する

BTCに対する相対力 (Relative Strength) 設定

目的: 比較指標とアウトパフォーマンス閾値を設定する

relative_strength:
  enabled: true
  
  # RS 計算
  lookback_period: 20            # 20期間でRSを計算
                                 # 短期 = 10, 長期 = 50
  
  comparison_symbol: "BTCUSDT"   # デフォルト比較資産
  
  # 力の閾値
  min_outperformance_percent: 5  # ≥5% 上回る必要がある
                                 # 積極的 = 2, 保守的 = 10
  
  min_consecutive_periods: 3     # 3連続バーでアウトパフォーマンス
  
  # 品質フィルター
  require_volume_confirmation: true
  min_relative_volume: 1.2       # シンボルの出来高 > BTCの相対出来高の1.2倍
  
  require_absolute_gain: true    # シンボルとBTC両方がプラスである必要あり(強気市場)
  allow_absolute_loss_outperformance: false # 両方下落時はシグナルを出さない
  
  # ダイバージェンス検出
  detect_rs_divergence: true     # 価格が弱まるがRSが強化される場合
  divergence_lookback: 15
  
  # トレンド整合性
  require_btc_trend_agreement: false # BTCと逆のシグナルを許可
  btc_trend_threshold: 0.5       # 必要な場合、BTCのトレンド強度
  
  # ブレイクアウト検出
  detect_rs_breakout: true       # RSが過去高値を突破
  rs_breakout_lookback: 50
  rs_breakout_buffer: 0.95       # 過去高値の95%以上を超える必要あり

チューニングガイド:

  • シグナル数を増やす: min_outperformance=2, consecutive=2, require_absolute=false
  • 精度を高める: min_outperformance=10, consecutive=5, require_volume=true

オーダーフロー不均衡 (OFI) 設定

目的: 注文板の不均衡検出感度を設定する

order_flow_imbalance:
  enabled: true
  
  # OFI 計算
  calculation_window: 5          # 5ティック/バーで不均衡を測定
                                 # 超高速 = 3, 標準 = 5, 遅め = 10
  
  # 不均衡閾値
  min_imbalance_ratio: 2.0       # 買い/売り比率 > 2.0 または < 0.5
                                 # 積極的 = 1.5, 保守的 = 3.0
  
  min_imbalance_volume: 10000    # 有効OFIシグナルの最小出来高
  
  # 品質フィルター
  require_sustained_imbalance: true
  min_sustained_periods: 3       # 不均衡が3計算ウィンドウ持続する必要あり
  
  require_price_confirmation: true
  min_price_move_with_ofi: 0.1   # OFI方向に価格が≥0.1%動く必要あり
  
  # 疲弊検出
  detect_ofi_exhaustion: true    # OFI弱化 = 反転
  exhaustion_ratio_threshold: 1.2 # 不均衡が1.2未満に低下
  
  # コンテキストフィルター
  ignore_low_liquidity: true
  min_order_book_depth: 50000    # 最良買値/売値で$50k以上の深さ
  
  ignore_spread_widening: true   # スプレッドが通常より広い場合はシグナルをスキップ
  max_spread_multiplier: 2.0
  
  # 時間ベースフィルター
  ignore_market_open_close: true # セッションの最初/最後5分をスキップ
  open_close_buffer_minutes: 5

チューニングガイド:

  • シグナル数を増やす: window=3, ratio=1.5, sustained=2, price_move=0.05
  • 精度を高める: window=10, ratio=3.0, sustained=5, depth=100k

チョッピネス指数 (Choppiness Index) 設定

目的: トレンド市場とレンジ市場を識別する閾値を設定する

choppiness_index:
  enabled: true
  
  # チョップ計算
  period: 14                     # 標準 = 14, 高速 = 7, 遅め = 21
  
  # レジーム閾値
  choppy_threshold: 61.8         # Chop > 61.8 = レンジ/ボラティリティ高
  trending_threshold: 38.2       # Chop < 38.2 = 強いトレンド
                                 # 積極的: 55/45, 保守的: 65/35
  
  # シグナル生成
  signal_on_transition: true     # 閾値を越えた時にシグナル
  require_confirmation_bars: 2   # 越えた後2バー待機
  
  signal_direction_from:         # 売買方向の決定方法
    method: "PRICE_MOMENTUM"     # オプション: "PRICE_MOMENTUM", "BREAKOUT_DIRECTION", "CUSTOM"
    lookback: 10
  
  # 品質フィルター
  min_time_in_chop: 10           # ブレイクアウト前に≥10バーチョッピーである必要
  max_time_in_chop: 50           # チョッピーが50バー以上の場合はシグナルを出さない
  
  require_volume_expansion: true # ブレイクアウト時に出来高増加
  min_volume_multiplier: 1.5
  
  # 統合使用
  use_as_filter_only: false      # True = 他のシグナルをフィルタのみ、自身は生成しない
  
  filter_other_signals_in_chop: true # チョッピー時に特定シグナルを無効化
  signals_to_disable_in_chop:
    - "BREAKOUT"
    - "MOMENTUM"
    - "TREND_FOLLOWING"
  
  signals_to_enable_in_chop:
    - "MEAN_REVERSION"
    - "RANGE_TRADING"

チューニングガイド:

  • シグナル数を増やす: thresholds=55/45, confirmation=1, min_time=5
  • 精度を高める: thresholds=65/35, confirmation=3, min_time=15, max_time=30

一目均衡表 (Ichimoku Cloud) 設定

目的: 一目均衡表の各コンポーネントとシグナル厳格性を設定

ichimoku:
  enabled: true
  
  # 一目均衡表期間
  tenkan_period: 9               # 転換線(短期)
  kijun_period: 26               # 基準線(中期)
  senkou_b_period: 52            # 先行スパンB(長期)
  displacement: 26               # 雲の前方シフト
  
  # 伝統的: 9/26/52, 積極的: 7/22/44, 保守的: 12/30/60
  
  # シグナル条件
  require_price_above_cloud: true      # 買いシグナル用
  require_price_below_cloud: true      # 売りシグナル用
  require_tk_cross: true               # 転換線/基準線クロス
  require_positive_chikou: true        # 遅行線が価格上
  require_future_cloud_agreement: true # 未来雲の色がシグナルと一致
  
  # 厳格性レベル
  strictness: "moderate"         # オプション: "loose", "moderate", "strict", "extreme"
  
  # 厳格性定義
  # loose: 1条件必要
  # moderate: 3条件必要
  # strict: 4条件必要
  # extreme: 5条件すべて必要
  
  # 品質フィルター
  min_cloud_thickness_percent: 0.5 # 雲の厚さ ≥0.5%
  ignore_thin_clouds: true
  
  min_distance_from_cloud: 0.3   # 価格が雲端から≥0.3%離れる必要あり
  
  require_volume_confirmation: true
  min_volume_on_signal: 1.3
  
  # トレンド強度
  measure_trend_strength: true
  min_trend_strength: 0.6        # すべてのコンポーネントが強度≥0.6で整合
  
  # コンテキストフィルター
  ignore_conflicting_components: true # コンポーネントが不一致の場合はスキップ
  max_conflicting_components: 1  # 最大1コンポーネントまで不一致許可

チューニングガイド:

  • シグナル数を増やす: periods=7/22/44, strictness="loose", require_only_2_conditions
  • 精度を高める: periods=12/30/60, strictness="extreme", min_strength=0.8

📎 Related Topics