Skip to content

CSharpMT5 CLI β€” Shortcasts & Live Examples πŸš€

βš™οΈ General launch pattern (PowerShell / CMD):

dotnet run -- <command> [options]

🌍 Global Options

Option Meaning Notes
-p, --profile <name> Profile from profiles.json (default: default) Switch accounts quickly
-s, --symbol <SYM> Instrument/ticker, e.g., EURUSD Default taken from profile
-v, --volume <lots> Order volume in lots
--deviation <pts> Max slippage in points
`-o, --output text json` Output format text or json (machine-friendly)
--timeout-ms <ms> Per-RPC timeout (default: 30000) Avoids hangs
--dry-run Don’t send anything, just show what would be done Great for testing
--verbose / --trace Extended logging Debug / trace everything

πŸ’‘ Tip: set password via environment variable MT5_PASSWORD instead of hardcoding in files.


πŸ“‘ Command Reference (Shortcasts)

Format: command β€” aliases β€” what it does

πŸ‘€ Profiles

  • profiles list β€” ls β†’ list profile names
  • profiles show β€” view β†’ show profile parameters (uses MT5_PASSWORD)

πŸ“Š General / Info

  • info β€” i β†’ account summary
  • quote β€” q β†’ one-shot spot quote (Bid/Ask/Time)
  • health β€” ping β†’ connectivity diagnostics
  • stream β€” st β†’ tick/event stream (auto-reconnect)

πŸ’Ή Market Orders

  • buy β€” b β†’ market buy
  • sell β€” s β†’ market sell

πŸ”„ Closing / Reversing

  • close β€” c β†’ close by ticket (exact/normalized volume)
  • close.percent β€” cpp β†’ close by percent
  • close.half β€” ch β†’ close half (50%)
  • close.partial β€” cp β†’ close exact volume
  • close-all β€” flatten β†’ close all open positions
  • close-symbol β€” cs β†’ close all positions for a symbol
  • reverse β€” rv β†’ reverse net position (--mode net|flat)
  • reverse.ticket β€” rvt β†’ reverse a specific ticket

🎯 SL/TP & Safety

  • position.modify β€” posmod β†’ set SL/TP by price
  • position.modify.points β€” pmp β†’ set SL/TP by points
  • breakeven β€” be β†’ move SL to breakeven Β± offset
  • trail.start β†’ start a local trailing stop
  • trail.stop β†’ stop trailing

πŸ“Œ Pending Orders

  • place β€” pl β†’ place pending (limit/stop/stop-limit)
  • pending.modify β€” pm β†’ change pending params
  • pending.move β€” pmove β†’ shift price(s) by Β±N pts
  • pending list β€” ls β†’ list pending tickets
  • cancel β€” x β†’ delete pending by ticket
  • cancel.all β€” ca β†’ delete all pendings (with filters)

🎟 Tickets / Symbols / Lists

  • ticket show β€” tsh β†’ show info for a ticket (open/recent)
  • positions β€” pos β†’ active positions
  • orders β€” ord β†’ open orders + positions tickets
  • symbol ensure β€” en β†’ make symbol visible
  • symbol limits β€” lim β†’ lot min/step/max
  • symbol show β€” sh β†’ symbol card (quote + limits)

πŸ“œ History / Tools

  • history β€” h β†’ orders/deals history for N days
  • history.export β€” hexport β†’ export history (CSV/JSON)
  • lot.calc β€” lc β†’ lot size from risk% & SL pts
  • panic β†’ close all + cancel all pendings

πŸš€ Quick Start

# Profiles
dotnet run -- profiles list
dotnet run -- profiles show -p demo

# Connectivity
dotnet run -- health -p demo

# One quote
dotnet run -- q -p demo -s EURUSD

πŸ›  Practical Scenarios

1️⃣ Open & Manage Position

dotnet run -- buy -p demo -s EURUSD -v 0.10 --sl 1.0700 --tp 1.0800 --deviation 10
dotnet run -- breakeven -p demo -t 123456 --offset-points 2
dotnet run -- position.modify.points -p demo -t 123456 --sl-points 150 --tp-points 250
dotnet run -- trail.start -p demo -t 123456 --distance 150 --step 20
dotnet run -- trail.stop -p demo -t 123456

2️⃣ Partial Close & Reverse

dotnet run -- close.half -p demo -t 123456
dotnet run -- close.percent -p demo -t 123456 --pct 30
dotnet run -- close.partial -p demo -t 123456 --volume 0.05
dotnet run -- reverse -p demo -s EURUSD --mode net  --sl 1.0700 --tp 1.0850
dotnet run -- reverse.ticket -p demo -t 123456 --sl 1.0700 --tp 1.0850

3️⃣ Pendings

dotnet run -- place -p demo --type buylimit  -s EURUSD --price 1.0750 --sl 1.0700 --tp 1.0800
dotnet run -- pending.modify -p demo -t 778899 --price 1.0765 --sl 1.0745
dotnet run -- pending.move -p demo -t 778899 --by-points 15
dotnet run -- pending list -p demo
dotnet run -- cancel -p demo -t 778899 -s EURUSD
dotnet run -- cancel.all -p demo --symbol EURUSD

4️⃣ Lists & Symbols

dotnet run -- positions -p demo -o json
dotnet run -- orders -p demo
dotnet run -- symbol show -p demo -s EURUSD
dotnet run -- symbol ensure -p demo -s GBPUSD
dotnet run -- symbol limits -p demo -s USDJPY

5️⃣ Tickets & History

dotnet run -- ticket show -p demo -t 123456 --days 30
dotnet run -- history -p demo -d 7
dotnet run -- history.export -p demo -d 30 --to csv  --file C:\temp\hist.csv

6️⃣ Risk & Panic

dotnet run -- lot.calc -s EURUSD --risk-pct 1 --sl-points 150 --balance 1000
dotnet run -- panic -p demo

πŸ”Ž Debugging & Tips

  • Profile not found: check profiles.json placement
  • Hidden symbol: run symbol ensure
  • Timeouts: bump --timeout-ms or add --trace