Releases: tanem/mt5-pnl-exporter
Releases · tanem/mt5-pnl-exporter
v1.0.3
Patch release. One bug fix.
- Reversal deals are no longer dropped from the snapshot. The hand-vendored
DEAL_ENTRY_INOUTconstant was3, which in the official MetaTrader5 enum isDEAL_ENTRY_OUT_BY(close-by) — true reversals are2.fetch_closed_dealstherefore skipped reversal deals, whoseprofitfield carries the closed leg's realised P&L, undercounting P&L whenever an EA reversed a position in a single order. The filter now keepsOUT/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
Patch release. Two bug fixes from a full code review, plus a metadata tidy-up.
snapshot_pathnow 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.yamlnow prints the "Copy config.example.yaml…" hint, and a missing keyring investor password prints theset-investor-passwordhint — 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_filteronly covers logging). - Package summary no longer repeats the project name (PyPI shows the name directly above it).
v1.0.1
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.0reported0.1.0. It's derived fromimportlib.metadata, so it trackspyproject.tomland won't drift again.
v1.0.0
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 +
ageencryption at rest — sync services and backups only ever see ciphertext. - Stable
major.minorschema (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.