# MetaTrader 5 and MQL5 gitignore template
# Project homepage: https://www.metatrader5.com/en

# Compiled MQL5 executables (binaries)
# These are generated from .mq5 source files and should not be committed.
*.ex5
*.ex4 # For MQL4 compatibility if you also manage MT4 projects in a similar structure

# Log files
# Terminal logs, strategy tester logs, and custom logs from Print() functions.
*.log
*.slog # Strategy Tester logs

# Strategy Tester specific files
# History data, optimization results, and temporary files used by the tester.
*.fxt  # FXT files (history data for testing)
*.hst  # History data files (can be large)
*.ini  # Initialization files (often generated by tester or EAs)
*.dat  # Data files (various purposes, often temporary)
*.csv  # CSV export files (e.g., from tester reports)
*.jrn  # Journal files (tester journal)

# Market Watch sets and profiles
# User-specific lists of symbols in Market Watch, and terminal profiles.
*.set  # Market Watch symbol sets
*.tpl  # Chart templates
*.chr  # Chart settings files (can be generated when saving templates or profiles)

# External libraries (DLLs)
# If you use custom DLLs, you might want to ignore them if they are built separately
# and not part of your MQL5 source code repository.
*.dll

# User-specific configuration and credentials
# Files containing sensitive information or local user settings.
.env   # Environment variables (e.g., for Python integration credentials)
*.cfg  # Configuration files (if not meant to be shared)
*.json # Be careful: if you have config JSONs you *do* want to commit, add specific exceptions.
       # Example: !config.json (to include config.json but ignore other *.json)

# Temporary files and backup files generated by MetaEditor
*.~*   # Temporary files (e.g., ~MyScript.mq5)
*.bak  # Backup files (e.g., MyScript.mq5.bak)
*.mqh.bak
*.mq5.bak

# MetaEditor project files
# Project files for MetaEditor workspaces.
.mqproj

# Python specific ignores (if you also keep Python scripts or Jupyter notebooks in this repository)
# These are relevant if your Git repo root is higher up (e.g., the terminal folder itself)
# or if you mix Python code within your MQL5 structure.
__pycache__/       # Python compiled bytecode cache
.ipynb_checkpoints/ # Jupyter Notebook checkpoints
*.pyc              # Python compiled files
*.pyd              # Python dynamic modules
