Overview
MagicTradeBotの精密コンフィギュレーション(Precision Configuration)システムは、シグナルの質と量を完全に制御できる機能を提供します。15種類以上の各シグナルタイプには tradesettings.yaml 内に専用の設定セクションがあり、ハイフリークエンシーでノイズの多い攻撃的設定から、低頻度で高信頼度の保守的設定まで、パラメータを細かく調整できます。この高度な制御により、数千の銘柄をスキャンし、あなたのリスクプロファイルに合致する最良のチャンスのみを抽出することが可能になります。
品質 vs 量 のトレードオフ
シグナル厳格度スペクトラム
攻撃的 ←――――――――――――――――――――――――――――――――――→ 保守的 (量が多い) (質が高い) シグナル数が多い シグナル数が少ない 勝率が低い 勝率が高い リスクが高い リスクが低い アクティブトレード 選択的トレード
重要原則:閾値を厳しくするとシグナルは減少しますが、成功確率は上がります。閾値を緩めるとシグナルは増えますが、誤シグナル(false positive)が増加します。
設定理念
各シグナルパラメータは以下の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