Skip to content

Releases: tanem/mt5-pnl-exporter

v1.0.3

12 Jun 18:19
19ea9f6

Choose a tag to compare

Patch release. One bug fix.

  • Reversal deals are no longer dropped from the snapshot. The hand-vendored DEAL_ENTRY_INOUT constant was 3, which in the official MetaTrader5 enum is DEAL_ENTRY_OUT_BY (close-by) — true reversals are 2. fetch_closed_deals therefore skipped reversal deals, whose profit field carries the closed leg's realised P&L, undercounting P&L whenever an EA reversed a position in a single order. The filter now keeps OUT/INOUT/OUT_BY, verified against the MetaTrader5 5.0.5735 wheel. (#19)

No schema change — entry is stored as a raw integer. Because export rebuilds the full history each run, the first export after upgrading automatically backfills any previously dropped reversal deals.

v1.0.2

12 Jun 07:36
a191cc2

Choose a tag to compare

Patch release. Two bug fixes from a full code review, plus a metadata tidy-up.

  • snapshot_path now expands ~ at config load. Previously the documented ~/snapshots/... example created a literal ~ directory under the working directory and wrote the snapshot there.
  • Curated errors instead of tracebacks. A missing config.yaml now prints the "Copy config.example.yaml…" hint, and a missing keyring investor password prints the set-investor-password hint — exit 1, no raw traceback.
  • Crash output can no longer leak secrets. Typer's pretty exceptions are disabled: their locals rendering would have printed the resolved encryption passphrase and investor passwords to stderr on an unexpected crash (redact_filter only covers logging).
  • Package summary no longer repeats the project name (PyPI shows the name directly above it).

v1.0.1

11 Jun 22:50
ab20ec1

Choose a tag to compare

Patch release. Corrects metadata that was immutable in the 1.0.0 upload — no functional change.

  • Package summary now reads "exports …" (was stale "polls" wording from the old command name).
  • Runtime __version__ now reports the package version; 1.0.0 reported 0.1.0. It's derived from importlib.metadata, so it tracks pyproject.toml and won't drift again.

v1.0.0

11 Jun 22:04
c7143f0

Choose a tag to compare

First stable release.

mt5-pnl-exporter exports MT5 deal history on the Windows host where MT5 runs and writes one typed, versioned, age-encrypted snapshot (snapshot.json.gz.age). The snapshot is the contract — build a CLI, dashboard, notebook, or agent on top of it.

Highlights

  • Read-only investor-password access; credentials and the encryption passphrase live in the OS keychain.
  • Mandatory gzip + age encryption at rest — sync services and backups only ever see ciphertext.
  • Stable major.minor schema (1.0): one record per closed deal, open position, and cash flow, no pre-aggregation.
  • One-shot, manual export — no daemon, no database, no third-party service.

Install

uv tool install "mt5-pnl-exporter[mt5]"   # Windows host with MT5

See the README for host setup and the snapshot schema.