PO_MIN_CONF

๐Ÿฆ‰ AthenaAI is an AI-powered ensemble machine-learning trading bot for PocketOption, built on BinaryOptionsToolsV2 โ†’ Get it on GitLab
๐Ÿ’ฌ Need help? Join the Chipa Discord ยท โšก Go no-code with ChipaEditor

The minimum model confidence, as a fraction between 0 and 1, required for a prediction to pass the first signal gate.

Typefloat (fraction, 0โ€“1)
Default0.63
RequiredNo
Maps toBotConfig.min_confidence
Read inmain.py (build_config())

What it does

build_config() parses it with float(env("PO_MIN_CONF", "0.63")) โ€” a non-numeric value raises ValueError and crashes at startup.

In _trade_loop() (src/bot.py), after the ensemble produces (direction, confidence), the confidence gate runs first among the signal-quality gates:

if confidence < self.cfg.min_confidence:
    ...
    self._signal_history.clear()
    continue

A below-threshold signal is skipped, a diagnostic line like โธ Low confidence: 61.2% (need 63.0%) dir=call regime=ranging is logged (at most every 30 s), and โ€” importantly โ€” the signal-confirmation history is cleared, so any multi-candle confirmation streak restarts from zero.

The value is also used elsewhere:

  • AdaptiveStrategy.should_trade() receives cfg.min_confidence as a baseline; the adaptive layer applies its confidence_adj on top of this floor โ€” usually raising it (+5% when low-confidence trades are losing, +8% for a non-preferred direction), though it can also lower it slightly (โˆ’3% when low-confidence trades are winning).
  • The startup banner logs the confidence band: Confidence: 63%โ€“85%.

The default of 0.63 was raised from 0.60 in v6 because, per the comment in src/config.py, low-confidence trades lose.

Valid values

A fraction in [0, 1), and below PO_MAX_CONF. Note the scale: 0.63 means 63% โ€” setting 63 would reject every signal (confidence never exceeds 1.0). If PO_MIN_CONF โ‰ฅ PO_MAX_CONF, the two gates leave no passable window and the bot never trades.

Examples

export PO_MIN_CONF=0.65
$env:PO_MIN_CONF = '0.65'
# .env
PO_MIN_CONF=0.63

Interactions

  • PO_MAX_CONF is the upper edge of the acceptance band.
  • Passing this gate is necessary but not sufficient โ€” the signal must still pass PO_REQUIRE_ALIGNMENT, signal confirmation, the 5-minute trend check, and the adaptive gate.
  • Confidence โ‰ฅ 0.75 also biases the expiry selector toward longer expiries (PO_EXPIRY_OPTIONS).
  • Stake size scales with confidence in MoneyManager.compute_stake() (see PO_BASE_STAKE).

See also

๐Ÿ’ฌ Unsure how this interacts with the rest of the configuration? Ask in the Chipa Discord โ€” or prototype strategies no-code with ChipaEditor.