AMD AI DevMaster Hackathon 2026 · Track 2: Agentic AI

Automate the workflow.Focus on the market.

The next-generation quantitative agent platform that turns Chinese natural language into risk-checked trading strategies — trained, served, and backtested entirely on AMD Radeon GPUs.

AMD ROCm 7.2vLLMQwen2.5-7B PEFTDifyFastAPI PyTorchGradio
autoquant · strategy console — NL → DSL → backtest → risk veto
ROCm 7.2 · gfx1100
① Natural-language strategy input
写一个沪深300双均线策略,ema_fast 上穿 ema_slow 时买入,加止损与仓位限制
RAG → Qwen2.5-7B · LoRA → canonicalizer
② Generated DSL · 100% parseable
{ "strategy": { "name": "CN_EMA_20_50", "market": { "exchange": "cn_stock", "lot_size": 100 }, "entry": { "long": "ema_fast > ema_slow" }, "constraints": { "t_plus_one": true, "price_limit": 0.1 }, "risk": { "stop_loss": -0.05, "max_drawdown": -0.15 } } }
✓ PASS
backtest+3.42%
maxDD-1.28%
sharpe1.84
lot100
T+1on
0/24
Eval pass rate
0%
Token accuracy
0
Tests passing
0%
AMD GPU stack
0
Dify nodes
0min
LoRA training
Why we built this

Generic agents don't survive China's market

Constraints break "plug-and-play"

T+1 settlement, 100-share lot sizes, and ±10% price limits invalidate strategies built for US or crypto markets. A domestic-market agent must encode these rules natively.

Risk is an afterthought

Most demo agents generate strategies but never enforce a decision. Ours ends every pipeline with an independent PASS / REVIEW / REJECT risk veto.

NVIDIA lock-in is a choice

The LLM stack shouldn't depend on CUDA. With ROCm, AMD Radeon is a first-class citizen for inference, fine-tuning, and backtesting.

What if one agent handled all of it — on AMD hardware?

What it does

Full-chain autonomy, six capabilities

🗣️

Natural-Language Strategy Input

Describe your idea in Chinese; the agent writes the executable strategy DSL.

📚

RAG Market-Rule Retrieval

Seven domestic-market constraint rules injected at inference time.

⚙️

DSL Canonicalization

Auto-fix lot_size, short, exchange, and risk fields; 100% parseable output.

📊

Constraint-Aware Backtesting

T+1, 100-share lots, no short, ±10% limits, fees & slippage.

🛡️

Independent Risk Veto

A dedicated risk agent decides PASS / REVIEW / REJECT before any execution.

🖥️

Everything on AMD

vLLM serving + LoRA training + backtest on one gfx1100 GPU.

Architecture

One pipeline, eight auditable steps

01User Natural Language
02RAG Retrieval
03LLM Generation
04DSL Canonicalization
05Validation
06Simulated Backtest
07Risk Report
08PASS / REVIEW / REJECT
Dify Workflow · 6 nodes
InputChinese NL query
RAG7 CN-market rules
LLMQwen2.5-7B · LoRA on ROCm
CodeDSL canonicalizer
Backtestconstraint-aware sim
AnswerPASS / REVIEW / REJECT
AMD ROCm GPU Layer
vLLM · port 8000Qwen2.5-7B · ~8.5 s/req · ~16 GB VRAM
LoRA Training400 pairs · r=64 · ~10 min
FastAPI · port 8080backtest & risk endpoints

Inference, fine-tuning, RAG, and backtesting all execute on AMD Radeon gfx1100 — no NVIDIA CUDA.

Tech deep dive

Measured, not claimed

400
NL→DSL pairs
0.2848
Final loss
98.1%
Token accuracy
16.2 GB
Peak VRAM
Training loss · 39 steps · ~10 min on gfx1100
0.2848

Qwen2.5-7B · rank 64 / alpha 128 · 3 epochs · FP16 LoRA

{
  "strategy": {
    "name": "CN_EMA_20_50",
    "market": {
      "exchange": "cn_stock",
      "instrument": "510300.SH",
      "timeframe": "1d"
    },
    "indicators": [
      {"name": "ema_fast", "type": "EMA", "params": {"period": 20}},
      {"name": "ema_slow", "type": "EMA", "params": {"period": 50}}
    ],
    "entry": {"long": "ema_fast > ema_slow", "short": null},
    "exit": {"long": "ema_fast < ema_slow", "short": null},
    "constraints": {
      "t_plus_one": true,
      "price_limit": 0.1,
      "allow_short": false,
      "lot_size": 100
    },
    "risk": {
      "stop_loss": -0.05,
      "max_position_pct": 0.3,
      "max_drawdown": -0.15
    }
  }
}
China market constraints, built in
  • T+1 settlement no same-day sell
  • 100-share lot size orders round to lots
  • No naked shorting entry.short = null
  • ±10% price limits price_limit = 0.1
  • Commission & stamp duty included in backtest
  • Slippage modeled per trade
Canonicalizer impact · per-metric pass rate, before → after
JSON parseable
75% → 100%
Instrument match
70.8% → 100%
Short disabled
70.8% → 100%
Constraints valid
45.8% → 100%

Overall evaluation pass rate improved from 45.83% to 100%24/24 across 4 ETFs × 6 strategy templates, after the DSL canonicalizer was introduced.

Proof

The system is verified, not aspirational

0
✓ ALL PASS
Agent coreDSL validatorTranspiler Multi-agentRAG retrievalE2E Compute engineMemory consistency

285 unit & integration tests passing · 2 async integration checks documented separately

Evaluation matrix · 4 ETFs × 6 templates = 24/24

All green — hover a cell for the ETF × template pair.

Live demo · Open WebUI chat

Try the running agent: natural-language strategy → DSL → backtest → risk decision. Register and chat in the hosted Open WebUI (the fine-tuned model runs on the AMD ROCm box — see the demo video).

Open Live Demo
FAQ

Questions judges might ask

AMD ROCm is a first-class target here — vLLM, PEFT, Dify, and the entire pipeline run on gfx1100. Zero CUDA dependency by design, with training and inference both measured on the same GPU.

Deterministic synthetic OHLCV provides reproducible system-closure demos; a paper-trading API is available for execution. Sources and timestamps are disclosed in every response.

An independent veto: REJECT blocks execution at the boundary. It validates instrument legality, hard constraints (T+1, no short, lot size), and risk parameters before any decision is emitted.

Full pipeline is in the repo: train_qlora.py → merge → serve. The 400-pair dataset and all configs are version-controlled.

A full-chain trading agent.
One AMD GPU. Zero CUDA.

From Chinese words to a risk-vetoed, backtested strategy — entirely on AMD Radeon.