Autonomous trading decision engine - signal evaluation, regime filtering, and trade orchestration.
jgtagentic receives signals from scanners, evaluates them through regime detection and multi-factor scoring, and generates executable entry scripts. It is AUTONOMOUS - containing all decision logic internally with no SANDBOX dependencies.
jgtagentic --help
# Full spiral: scan โ analyze โ decide โ generate scripts
jgtagentic orchestrate --signal_json <path> --entry_script_dir <dir> --log <logfile>
# Same via dedicated CLI
agentic-orchestrator --signal_json <path> --entry_script_dir <dir>
# Scan specific timeframe
jgtagentic fdbscan --timeframe H4
# Scan with instrument filter
agentic-fdbscan scan --timeframe H4 --instrument EUR-USD
# Full ritual sequence
jgtagentic fdbscan --all
# Add --real flag to invoke actual jgtml fdbscan (requires jgtml installed)
agentic-fdbscan scan --timeframe m15 --instrument EUR-USD --real
# Parse trader analysis from .jgtml-spec files
jgtagentic spec path/to/spec.jgtml-spec
# See docs/Trader_Analysis_to_Spec.md for spec file format
# Convert signal JSON to executable trading scripts
entry-script-gen --signal_json signals.json --output_dir ./scripts
from jgtagentic import RegimeDetector, SignalScorer, RegimeAwareDecider, DataLoader
import pandas as pd
# Initialize components
data_loader = DataLoader()
regime_detector = RegimeDetector(adx_threshold=25)
scorer = SignalScorer()
decider = RegimeAwareDecider(adx_threshold=25)
# Load data
df = data_loader.load_cds("EUR-USD", "H4", dataset="current")
# Detect regime
regime = regime_detector.detect(df)
print(f"Regime: {regime.regime}, ADX: {regime.adx}, Direction: {regime.trend_direction}")
# Score signals
scored = scorer.score(df, regime, instrument="EUR-USD", timeframe="H4")
print(f"Score: {scored.score}/100, Direction: {scored.direction}")
# Make decision
signal = {
'instrument': 'EUR-USD',
'timeframe': 'H4',
'direction': 'LONG',
'strength': 0.8,
'signal_group': 'mfi_signals'
}
decision = decider.decide(signal, df)
print(f"Action: {decision['action']}, Reason: {decision['reason']}")
jgtagentic/
โโโ regime.py # Market regime detection (ADX/EMA)
โโโ scoring.py # Multi-factor signal scoring
โโโ regime_aware_decider.py # Main decision orchestrator
โโโ agentic_decider.py # Base decision logic
โโโ data_loader.py # jgt-data-server integration
โโโ fdbscan_agent.py # FDB signal scanning
โโโ enhanced_fdb_scanner.py # Enhanced FDB logic
โโโ entry_script_gen.py # Executable script generation
โโโ agentic_entry_orchestrator.py # Workflow orchestration
โโโ jgtagenticcli.py # CLI gateway
# Set data server URL
export JGT_DATA_SERVER_URL="http://localhost:5555"
# DataLoader automatically connects
python -m jgtagentic.regime_aware_decider
# Set local data path
export JGTPY_DATA="/src/jgtml/data"
# DataLoader falls back to local files
python -m jgtagentic.regime_aware_decider
JGT_DATA_SERVER_URL - jgt-data-server API endpoint (default: http://localhost:5555)JGTPY_DATA - Local data file path (default: /src/jgtml/data)FDBSCAN_AGENT_REAL - Run real fdbscan vs dry-run (default: 0)| Direction | Function | Components |
|---|---|---|
| EAST (Vision) | Signal Detection | fdbscan_agent, enhanced_fdb_scanner |
| SOUTH (Growth) | Analysis | regime.py, scoring.py |
| WEST (Reflection) | Decision | regime_aware_decider, agentic_decider |
| NORTH (Wisdom) | Execution | entry_script_gen, orchestrator |
jgtagentic is SELF-CONTAINED:
โI am the decider. I receive signals from scanners, context from data servers, and wisdom from regime analysis. I filter the noiseโskipping ranges, rejecting counter-trend setups, scoring alignments. When conditions align, I generate action. I am autonomous, decisive, and accountable for every trade recommendation I make.โ