GMIG is already included in NIJA. No additional installation required!
# Verify installation
python -c "from bot.gmig import GMIGEngine; print('β GMIG installed')"
For enhanced central bank data:
# Get free API key from: https://fred.stlouisfed.org/docs/api/api_key.html
# Add to .env file
echo "FRED_API_KEY=your_api_key_here" >> .env
from bot.gmig import GMIGEngine
# Initialize GMIG
gmig = GMIGEngine()
# Run full analysis
report = gmig.run_full_analysis()
# View results
print(f"Regime: {report['macro_regime']['regime']}")
print(f"Signal: {report['positioning_signals']['primary_signal']}")
print(f"Alert: {report['crisis_assessment']['alert_level']}")
# Test the entire GMIG system
python test_gmig.py
Expected output:
Tests Passed: 6/6
β PASS Central Bank Monitor
β PASS Interest Rate Analyzer
β PASS Yield Curve Modeler
β PASS Liquidity Stress Detector
β PASS Crisis Warning System
β PASS GMIG Engine (Full)
π ALL TESTS PASSED - GMIG is operational!
from bot.gmig import GMIGEngine
from bot.trading_strategy import TradingStrategy
# Initialize both systems
gmig = GMIGEngine()
strategy = TradingStrategy()
# Get macro intelligence
macro_report = gmig.run_full_analysis()
# Adjust trading based on macro regime
regime = macro_report['macro_regime']['regime']
risk_adj = macro_report['risk_adjustments']
# Apply risk adjustments
if regime == 'crisis':
# Emergency defensive mode
strategy.stop_all_new_trades()
strategy.reduce_positions(multiplier=0.20)
elif regime == 'pre_recession':
# Defensive mode
strategy.reduce_positions(multiplier=0.50)
elif regime == 'risk_on':
# Aggressive mode
strategy.increase_exposure(multiplier=1.20)
# Apply position size adjustments
position_multiplier = risk_adj['position_size_multiplier']
strategy.set_position_size_multiplier(position_multiplier)
from bot.gmig import GMIGEngine
import schedule
gmig = GMIGEngine()
def daily_macro_check():
"""Run daily at market open"""
report = gmig.run_full_analysis()
# Log to file or database
with open('gmig_daily_log.txt', 'a') as f:
f.write(f"{report['timestamp']}: {report['summary']}\n")
# Send alert if crisis warning
if report['crisis_assessment']['alert_level'] in ['orange', 'red']:
send_alert(f"β οΈ GMIG Alert: {report['summary']['key_recommendation']}")
# Schedule daily at 9:00 AM
schedule.every().day.at("09:00").do(daily_macro_check)
from bot.gmig import GMIGEngine
import time
gmig = GMIGEngine()
def monitor_crisis():
"""Monitor for crisis signals every 5 minutes"""
while True:
crisis_check = gmig.run_crisis_check()
if crisis_check['action_required']:
print(f"π¨ ALERT: {crisis_check['alert_level']}")
print(f"Crisis Probability: {crisis_check['crisis_probability']:.1%}")
# Take defensive action
time.sleep(300) # 5 minutes
# Run in background
import threading
monitor_thread = threading.Thread(target=monitor_crisis, daemon=True)
monitor_thread.start()
from bot.gmig import YieldCurveAIModeler, LiquidityStressDetector
# Just yield curve analysis
yc = YieldCurveAIModeler()
yc_data = yc.analyze_curve()
if yc_data['recession_probability'] > 0.50:
print("β οΈ High recession probability - reduce risk")
# Just liquidity monitoring
liquidity = LiquidityStressDetector()
liq_data = liquidity.detect_stress()
if liq_data['overall_stress_level'] == 'red':
print("π¨ Liquidity crisis - emergency defensive")
| Regime | What It Means | Your Action |
|---|---|---|
crisis |
Financial crisis active | Move to cash/safe havens |
pre_recession |
Recession likely in 6-18mo | Reduce risk, increase cash |
risk_off |
Market stress elevated | Defensive positioning |
tightening |
Central banks raising rates | Cautious, favor value |
easing |
Central banks cutting rates | Bullish for risk assets |
risk_on |
Favorable conditions | Aggressive positioning |
transitional |
Mixed signals | Balanced approach |
| Level | Crisis Prob | Action |
|---|---|---|
| π’ Green | < 20% | Normal operations |
| π‘ Yellow | 20-40% | Increase monitoring |
| π Orange | 40-60% | Reduce positions 50% |
| π΄ Red | > 60% | Emergency defensive |
| Signal | Meaning | Position Size |
|---|---|---|
maximum_defensive |
Crisis mode | 20% of normal |
reduce_risk |
High risk | 50% of normal |
defensive |
Elevated risk | 70% of normal |
cautious |
Moderate risk | 75% of normal |
neutral |
Balanced | 100% (normal) |
bullish |
Favorable | 120% of normal |
aggressive |
Strong conditions | 150% of normal |
# Full mode (all features, default)
gmig = GMIGEngine(config={'mode': 'full'})
# Essential mode (core features only, faster)
gmig = GMIGEngine(config={'mode': 'essential'})
# Crisis-only mode (just crisis detection)
gmig = GMIGEngine(config={'mode': 'crisis_only'})
# Ultra (most advanced, default)
gmig = GMIGEngine(config={'intelligence_level': 'ultra'})
# Advanced (good balance)
gmig = GMIGEngine(config={'intelligence_level': 'advanced'})
# Standard (faster, less sophisticated)
gmig = GMIGEngine(config={'intelligence_level': 'standard'})
gmig = GMIGEngine(config={
'update_frequency_minutes': 15, # Full analysis every 15 min
'crisis_check_frequency_minutes': 5 # Crisis check every 5 min
})
test_gmig.py to verify setup.env: FRED_API_KEY=your_keymode='essential' for faster analysistest_gmig.pyReady to start? Run python test_gmig.py now! π