Skip to content
This repository was archived by the owner on Jun 10, 2026. It is now read-only.

FaulveCorps/OmegaTrader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ARCHIVED PROJECT - OmegaTrader

This project is archived and no longer maintained.

See ARCHIVE_NOTICE.md for full details on why this was archived.

DO NOT USE FOR REAL TRADING. Binary options are high-risk gambling, not investing.

Security warning: Earlier git commits contain real credentials. See ARCHIVE_NOTICE.md for remediation.


OmegaTrader

Platform-specific project copies are now available under:

  • windows/ for Windows use
  • linux/ for Linux use

Use those folders as the active project roots when you want fully separated environments, sessions, artifacts, and virtual environments per operating system.

For a one-step bootstrap from the repository root:

  • Windows: ./run.ps1
  • Linux: ./run.sh

Those root launchers delegate into the platform folder, create the local virtual environment if needed, install/update requirements.txt, and then start the bot.

You can also run main.py directly with no arguments. It now bootstraps itself by creating .env from .env.example when needed, creating a project .venv, installing/updating requirements.txt, and re-launching inside the project interpreter automatically.

A Telegram signal parsing bot that converts Telegram messages into Quotex trades.

Requirements

  1. Python 3.12 preferred for the full optional quotexpy path; Python 3.13 also works for the browser-driven runtime
  2. Create a virtual environment with Python 3.12
  3. Install Python packages: python -m pip install -r requirements.txt
  4. Google Chrome or Chromium installed

OmegaTrader now supports both Windows and Linux for local execution.

Important: .venv is platform-specific. Do not copy the same virtual environment between Windows and Linux. Recreate .venv on each operating system.

The runtime is primarily browser/UI-driven. requirements.txt now installs the direct browser automation dependencies explicitly, while quotexpy is treated as an optional extra and is only installed automatically on Python versions where its dependency chain is known to work.

Configuration

Copy .env.example to .env, then fill in your own credentials and channel values. The real .env is now ignored by Git so machine-specific secrets and Linux paths stay local.

Reference template:

TELEGRAM_API_ID=your_api_id_from_my.telegram.org
TELEGRAM_API_HASH=your_api_hash
TELEGRAM_CHANNEL_ID=your_channel_chat_id (e.g., -100XXXXXXX)
TELEGRAM_CHANNELS=optional_comma_separated_chat_ids_or_usernames (e.g., -1001111111111,-1002222222222,@mychannel)
TELEGRAM_DASHBOARD_ENABLED=true
TELEGRAM_DASHBOARD_CHAT=
TELEGRAM_DASHBOARD_CREATE_IF_MISSING=true
TELEGRAM_DASHBOARD_TITLE=OmegaTrader Dashboard
TELEGRAM_DASHBOARD_ABOUT=Private OmegaTrader dashboard and control channel
TELEGRAM_DASHBOARD_HEARTBEAT_MINUTES=60

QUOTEX_EMAIL=your_quotex_email
QUOTEX_PASSWORD=your_quotex_password
QUOTEX_HEADLESS=false
QUOTEX_HEADLESS_AFTER_LOGIN=false
QUOTEX_BROWSER_EXECUTABLE=
QUOTEX_BROWSER_EXECUTABLE_WINDOWS=
QUOTEX_BROWSER_EXECUTABLE_LINUX=
QUOTEX_DRIVER_PATH_WINDOWS=
QUOTEX_DRIVER_PATH_LINUX=
QUOTEX_ACCOUNT_MODE=DEMO
TELEGRAM_SESSION_DIR_WINDOWS=sessions/windows
TELEGRAM_SESSION_DIR_LINUX=sessions/linux
QUOTEX_UI_SESSION_FILE_WINDOWS=sessions/windows/quotex_ui_session.json
QUOTEX_UI_SESSION_FILE_LINUX=sessions/linux/quotex_ui_session.json
QUOTEX_DUMP_DIR_WINDOWS=artifacts/quotex/windows
QUOTEX_DUMP_DIR_LINUX=artifacts/quotex/linux
TELEGRAM_DASHBOARD_STATE_FILE_WINDOWS=sessions/windows/omega_dashboard_state.json
TELEGRAM_DASHBOARD_STATE_FILE_LINUX=sessions/linux/omega_dashboard_state.json
TRADE_RISK_PERCENT=0
INITIAL_AMOUNT=50
SIGNAL_PARSER_FORMATS=semicolon,delimited,labels,direction_first,time_first,custom
SIGNAL_PARSER_CUSTOM_PATTERNS_FILE=signal_parser_formats.json

For settings that differ by operating system, OmegaTrader now supports OS-specific suffixes and automatically prefers the current platform first:

  • *_WINDOWS on Windows
  • *_LINUX on Linux
  • *_MACOS on macOS

If no OS-specific value is set, it falls back to the normal unsuffixed variable.

This is most useful for path-based settings such as:

  • TELEGRAM_SESSION_DIR
  • QUOTEX_UI_SESSION_FILE
  • QUOTEX_DUMP_DIR
  • QUOTEX_BROWSER_EXECUTABLE
  • QUOTEX_DRIVER_PATH
  • QUOTEX_CHROME_MAJOR

QUOTEX_ACCOUNT_MODE accepts:

  • DEMO or PRACTICE for paper trading
  • LIVE or REAL for real-money trading

QUOTEX_HEADLESS accepts:

  • false to keep the Quotex browser visible on screen
  • true to run the browser in headless mode so it stays in the background and you only interact through the terminal/CLI

QUOTEX_HEADLESS_AFTER_LOGIN accepts:

  • false to keep the same browser mode for the full session
  • true to log into Quotex with a visible browser first, then attempt a headless relaunch using the authenticated UI session snapshot

If Quotex/Cloudflare blocks the post-login headless relaunch, OmegaTrader automatically falls back to the visible browser so the bot can keep running.

QUOTEX_BROWSER_EXECUTABLE is optional and lets you point OmegaTrader directly to a Chrome/Chromium binary path when auto-discovery is unreliable.

If you share one .env file across Windows and Linux, prefer QUOTEX_BROWSER_EXECUTABLE_WINDOWS and QUOTEX_BROWSER_EXECUTABLE_LINUX so the correct path is selected automatically.

Examples:

  • Windows: QUOTEX_BROWSER_EXECUTABLE=C:\Program Files\Google\Chrome\Application\chrome.exe
  • Linux: QUOTEX_BROWSER_EXECUTABLE=/usr/bin/google-chrome
  • Windows-only override: QUOTEX_BROWSER_EXECUTABLE_WINDOWS=C:\Program Files\Google\Chrome\Application\chrome.exe
  • Linux-only override: QUOTEX_BROWSER_EXECUTABLE_LINUX=/usr/bin/google-chrome

Smoke test mode still forces demo regardless of this setting.

TRADE_RISK_PERCENT accepts:

  • 0 to disable percentage-based sizing and keep using INITIAL_AMOUNT
  • any positive number to size the base trade amount from the active Quotex account balance

When TRADE_RISK_PERCENT greater than 0, OmegaTrader:

  • reads the currently active Quotex balance for the current mode (DEMO or LIVE)
  • calculates the base amount as balance × (TRADE_RISK_PERCENT / 100)
  • normalizes that result to the broker min/max limits
  • keeps Martingale/Gale steps based on that computed base amount

INITIAL_AMOUNT remains the fallback amount when TRADE_RISK_PERCENT=0 or when the active balance cannot be read.

SIGNAL_PARSER_FORMATS controls the parser order and enabled built-in formats. Supported built-ins are:

  • semicolonEUR/USD;10:30;CALL
  • delimitedEUR/USD - 10:30 - CALL or EUR/USD | 10:30 | CALL
  • labelsAsset: EUR/USD, Time: 10:30, Direction: CALL
  • direction_firstCALL EUR/USD 10:30
  • time_first10:30 EUR/USD CALL
  • custom → regex patterns loaded from SIGNAL_PARSER_CUSTOM_PATTERNS_FILE

You can reorder or disable formats by editing SIGNAL_PARSER_FORMATS. Example:

SIGNAL_PARSER_FORMATS=labels,semicolon,custom

SIGNAL_PARSER_CUSTOM_PATTERNS_FILE points to a JSON file containing your own extra regex-based formats. A starter file named signal_parser_formats.json is included in the project root.

OmegaTrader also supports a split signal flow for channels that send the setup text first and the direction as a follow-up message or sticker. In that mode, the bot:

  • stores the recent text block if it looks like a signal context (for example GBP NZD (OTC) 1 MINUTES plus signal/risk lines)
  • waits briefly for a follow-up direction hint such as CALL, PUT, or an up/down sticker hint
  • builds an immediate market signal when the direction arrives

If you want to restrict sticker-based direction hints to a specific Telegram sticker pack, set:

SIGNAL_STICKER_SET_NAME=COMPUNDIG_TRADERS

When configured, OmegaTrader loads that sticker set through Telegram and only accepts sticker/media direction hints from that set.

This is additive and does not replace the existing full-message formats.

Important limitation: the bot can only use direction hints that Telegram exposes as text/emoji/metadata. If the direction exists only as pixels inside an image or sticker with no readable hint, OCR would be required and is not part of the current implementation.

If a required variable is missing, the bot will prompt for it interactively when you run main.py.

For Telegram listening targets:

  • TELEGRAM_CHANNEL_ID still works for a single legacy target
  • TELEGRAM_CHANNELS lets the bot listen to multiple channels at once
  • you can mix channel IDs like -100... and public usernames like @mychannel
  • if both are set, OmegaTrader combines them and removes duplicates

For the built-in Telegram dashboard channel:

  • if TELEGRAM_DASHBOARD_ENABLED=true and TELEGRAM_DASHBOARD_CHAT is blank, OmegaTrader will try to create a dedicated private Telegram channel automatically using the logged-in Telegram user account
  • the created chat ID is saved back to TELEGRAM_DASHBOARD_CHAT in .env
  • this channel receives status updates, trade results, and periodic heartbeat messages

Research Archive

The research/ directory contains a comprehensive statistical analysis of a Telegram trading signal channel. This was conducted to understand signal patterns, not to endorse trading.

Key findings are documented in:

  • research/reports/EVIDENCE_BACKED_PATTERNS.md — Full channel analysis
  • research/reports/EXPLOITABLE_FINDINGS_REPORT.md — Discovered patterns
  • research/reports/RECONFIRMED_STRATEGY_REPORT.md — Validated strategies
  • research/strategies/STRATEGY_GUIDE.md — Implementation reference

See research/README.md for an overview.

License

See LICENSE for details.

About

Quotex-Telegram Trading Bot (Abandoned Due to Trust Issues)

Resources

License

Stars

Watchers

Forks

Contributors

Languages