How does QuantDinger use Jev? As a gate in front of entry orders. A strategy decides to buy or sell, then Jev answers six questions and the code decides whether the order goes out. It's a safer design than the bots in part 1 that let Jev decide everything: exits never go through the AI, and the decision rules live in code, not in a prompt. But the gate lets orders through whenever it can't decide, and there's no way to backtest it. That last point is what made me run my own test.
Part 2 covered QuantDinger as a platform. Jev is an optional feature on top of it, switched on per strategy or for manual "Quick Trade" orders.
Everything below comes from reading the source at commit 96cec2d (21 Sep 2026), mainly ai_decision_filter.py and ai_decision_context.py. I didn't run the platform; it needs Docker, Postgres and Redis, and I only wanted to know how the gate decides.
In this order:
It only runs on live strategies, not in backtests or paper trading.
Six multiple-choice questions, sent together:
| Question | Choices |
|---|---|
| Is the data good enough to decide? | sufficient / partial / insufficient |
| Does the signal agree across timeframes? | aligned / mixed / conflict / insufficient |
| Does the market regime suit this entry? | favorable / neutral / adverse / insufficient |
| Size, leverage, drawdown, losing streak | clear / caution / block / insufficient |
| Fresh price, valid SL/TP? | clear / caution / block / insufficient |
| Final decision | pass / reject |
The order goes out only when the final answer is pass, neither the risk nor the execution check says block, and the timeframes don't show conflict in an adverse regime at the same time. The state it sends is compact: a summary of up to 120 bars on two or three timeframes (returns, MAs, RSI, MACD, ATR, support and resistance, data age), open positions, and the strategy's recent results.
Four places, in the order I'd fix them.
It lets trades through when unsure. If Jev's confidence on the key questions is below 0.55 (the default), the platform treats that as an error and asks a different, uncalibrated LLM. If that isn't configured, the trade goes through. So the moments when the AI is least sure are exactly the moments the filter stops filtering.
Running out of credits switches it off. With no credits left, orders pass without any check. A user can believe the filter is on when it isn't doing anything.
The prompt leans towards "pass". It tells the model that missing evidence alone must not reject and to reject only on concrete evidence. Together with the fail-open paths, the gate only blocks when the model is confident something is wrong.
You can't backtest it. The filter runs only live. There's no way to replay history and see whether it would have helped or hurt, and the README gives no numbers either.
Two smaller ones. The data-quality answer is collected but never used in the decision. And caution on risk or execution doesn't reduce position size; it's treated the same as clear.
Everything above assumes Jev reads the market the right way round. The gate can only help if, when Jev says adverse or conflict, the trade really is worse than average. If Jev reads the evidence backwards, the gate blocks good entries and passes bad ones, and because it only runs live, nobody would see that until the P&L did.
How much damage that would do depends on how often the gate says no, and the prompt leans towards pass. That's also something you can't measure without a backtest.
So I stopped reading code and asked the simpler question directly: given clean indicators on data it has never seen, can Jev tell which way a market is about to move? That's the experiment in part 5.
If I put an AI gate in front of an MT5 EA, I'd keep QuantDinger's two best ideas (exits never go through the model, and the rule lives in code) and change three things:
caution cuts the lot size.
Next in this series: the experiment. I gave Jev 12 indicators on 1,500 Bitcoin candles it had never seen and compared it with a plain model.
Originally published at moonthetrain.com.