# LSTM-PPO XAUUSD Trading Bot

Uses LSTM-PPO reinforcement learning to trade XAUUSD via MetaTrader5.

Canonical: https://prismaticalgos.com/compendium/algo/1004-lstm-ppo-xauusd-trading-bot
Record ID: 1004
Catalog rank: 168 (reading order, not performance)
Snapshot: 2026-10-31 15:46 UTC
Family: Statistical, Quantitative & Machine Learning (I)
Source: https://github.com/pressure679/LSTM-PPO-Reinforcement-Learning-Trading-Bot-for-MetaTrader-5-XAUUSD
Evidence label (unverified): source_code

## Scope and limitations

These are machine-extracted research records, not verified trading systems. Catalog rank measures specification detail and claimed evidence, not profitability. The catalog extraction pipeline did not independently backtest these records. Its separate selected testing ledger does not validate the wider corpus. Rules, labels and parameters can be incomplete or wrong; consult the original source and its reuse terms.

No endorsement, ownership claim or source-code reuse permission is implied.

## Extraction warnings

Opacity warnings: UNDEFINED ENTRY TERM: the entry conditions are prose naming a concept with no numeric definition, so two readers would implement them differently. Advisory only -- this does not affect the score.

## Recorded profile

- symbols: XAUUSD
- timeframes: M1, M15
- sessions: Not specified
- market_regime: any

## Indicators

- EMA: {"period": 7}; applied to: close
- EMA: {"period": 21}; applied to: close
- EMA: {"period": 50}; applied to: close
- EMA: {"period": 200}; applied to: close
- ADX: {}; applied to: close
- STOCH: {}; applied to: close
- VWAP: {}; applied to: close
- GetRange: {}; applied to: close
- RangeMA: {}; applied to: close
- Indecision: {}; applied to: close
- BullishBearish: {}; applied to: close
- ExhaustionCandle: {}; applied to: close
- BullishOB: {}; applied to: close
- BearishOB: {}; applied to: close
- OBMitigation: {}; applied to: close
- BullishFVG: {}; applied to: close

## Recorded long-entry rules

- buy_score > 0

## Recorded short-entry rules

- sell_score < 0

## Recorded exit rules

- take_profit = 20 pips
- stop_loss = BASE_SL_PIPS * (1 - MIN_SL_SCALE * (1 - recovery_factor))

## Recorded filters

- WinRateModel with MIN_WINRATE = 0.9

## Risk controls

- Stop loss: stop_loss = BASE_SL_PIPS * (1 - MIN_SL_SCALE * (1 - recovery_factor))
- Take profit: take_profit = 20 pips
- Position sizing: null
