ForexSignalBot: AI-Driven Telegram Forex Signals / Telegramb bot Auto Forwarder Smart Free OpenSource 📈🤖✨🚀
- Live Bot: https://t.me/trade_ai_helper_bot ✨
- Just click the link to open the bot in Telegram and start trading!
You can run this project in two ways: with Docker (recommended for quick setup) or by setting up a local environment manually.
Get the entire application stack—API, PostgreSQL database, and Redis cache—running in minutes with Docker. This is the fastest and easiest way to start.
- Docker Desktop: Make sure it's installed and running on your system. Download it here.
Open your terminal and clone the project source code.
git clone https://github.com/Opselon/ForexTradingBot.git
cd ForexTradingBotThe application requires API keys and passwords. We use a .env file for this, which is kept private.
-
Create the environment file:
cp .env.example .env
-
Edit the
.envfile: Open the new.envfile and fill in your actual secret values.TELEGRAM_BOT_TOKEN: Get this from@BotFatheron Telegram.POSTGRES_PASSWORD: Create a strong, secure password for your database.
With Docker running, execute a single command from the project's root directory:
docker-compose up --build -dThis command builds and starts the API, PostgreSQL, and Redis containers. The API is configured to automatically apply database migrations on startup.
The bot needs an initial list of RSS feeds. Connect to the database using a client like DBeaver or DataGrip and run the Populate_RssSources_Categories.sql script.
- Host:
localhost - Port:
5432 - Database:
forexsignalbot_db - User:
postgres - Password: The
POSTGRES_PASSWORDyou set in.env.
🎉 That's it! Your bot is now running inside Docker.
Follow these steps if you prefer to run the application directly on your machine.
-
.NET 9 SDK:
- Install the .NET 9 SDK (v9.0.107 or later).
- Download Page: https://dotnet.microsoft.com/en-us/download/dotnet/9.0
- Verify your installation by running
dotnet --version.
-
PostgreSQL Database:
- Install and run a local PostgreSQL server.
- Create a database and a user.
- Update your connection string in the
appsettings.Development.jsonfile.
-
Redis Server:
- Redis is used for caching and background job processing.
- For Windows: Install a Redis-compatible server like Memurai.
- Installation Guide: https://docs.memurai.com/en/installation.html
- For macOS/Linux: Install via a package manager (e.g.,
brew install redisorsudo apt-get install redis-server).
For developers who prefer to run the application directly on their machine, follow these steps:
- Clone the repository (if you haven't already).
- Configure
appsettings.Development.jsonwith your local database connection string and other settings. - Apply database migrations:
dotnet ef database update --startup-project WebApi --project Infrastructure
- Seed the database by running the
Populate_RssSources_Categories.sqlscript against your local database. - Run the API:
dotnet run --project WebApi
For more comprehensive details and production deployment instructions, please refer to the dedicated INSTALL.md guide.
This section contains common commands for development.
Before running these commands, ensure you have the EF Core tools installed: dotnet tool install --global dotnet-ef
-
Add a New Migration: When you change a domain model, create a new migration.
dotnet ef migrations add YourMigrationName --startup-project WebApi --project Infrastructure
(Replace
YourMigrationNamewith a descriptive name, e.g.,AddSignalStatus) -
Apply Migrations: To manually update the database schema.
dotnet ef database update --startup-project WebApi --project Infrastructure
To compile the application into a self-contained executable for deployment:
# Example for a self-contained Windows x64 build
dotnet publish --configuration Release --runtime win-x64 --self-contained true --project WebApi- The output will be in the
WebApi/bin/Release/net9.0/win-x64/publishfolder.
This is the new, streamlined setup process.
- Open the Web Panel: Navigate to http://localhost:5000/login.html in your browser.
- Login: Use the default credentials:
- Username:
admin - Password:
admin(You will be prompted to change these sensitive details during the first-time setup process in the web UI for better security.)
- Username:
- Guided Setup: After logging in for the first time, you will be automatically redirected to a secure setup page (
/indexapp.html).- On this page, you will be prompted to enter your Telegram Bot Token and other core settings.
- The system will live-test your credentials to ensure they are valid before saving.
- Once saved, these settings are stored securely in the database, not in plain text files.
- Database Seeding: After the initial setup, you will be prompted to seed the database. Click the "Seed Database" button in the web UI. This will populate the initial list of RSS feeds and other required data.
🎉 That's it! Your bot is now fully configured and running. You can manage everything from the web panel.

If this project is helpful to you, you may wish to give it a 🌟
We provide README files in multiple languages to make our project accessible to users worldwide. Choose your preferred language below:
| Language | Language Code | README File | Status |
|---|---|---|---|
| English | 🇺🇸 EN | README.md | ✅ Complete |
| Russian | 🇷🇺 RU | README_RU.md | ✅ Complete |
| Persian | 🇮🇷 FA | README_FA.md | ✅ Complete |
| Chinese | 🇨🇳 ZH | README_ZH.md | ✅ Complete |
| Spanish | 🇪🇸 ES | README_ES.md | ✅ Complete |
| French | 🇫🇷 FR | README_FR.md | ✅ Complete |
| German | 🇩🇪 DE | README_DE.md | ✅ Complete |
| Turkish | 🇹🇷 TR | README_TR.md | ✅ Complete |
| Arabic | 🇸🇦 AR | README_AR.md | ✅ Complete |
| Hindi | 🇮🇳 HI | README_HI.md | ✅ Complete |
| Italian | 🇮🇹 IT | README_IT.md | ✅ Complete |
| Portuguese | 🇵🇹 PT | README_PT.md | ✅ Complete |
Each README file contains the complete project documentation, setup instructions, and features translated into the respective language. All files are kept up-to-date with the latest project information.
- 🚀 Project Overview: Precision Trading with ForexSignalBot
- 🌟 Key Highlights
- 🏛️ Architecture & Core Technologies: Engineered for Excellence 🏗️
- ✨ Key Features: Unlocking Market Intelligence 💡
- Flexible Membership & Subscription System: Tailored Access 💎
- 📰 Advanced News Aggregation & Intelligent Analysis: Stay Ahead 🚀📡
- 📈 Multi-Currency Signal Support: Diverse Market Coverage 🌐💱
- 🔗 Automated Signal Execution & Trading Platform Integration (Auto-Forwarder)
- 🧠 Intelligent Analysis & Sentiment (Future/Ongoing): AI-Powered Edge 🚀🔮
- 🤖 Robust & Responsive Telegram Bot: Seamless User Experience 💬📲
- 🔒 Security & Data Integrity: Trustworthy Operations 🛡️🔐
- 📊 Performance Insights: Data at a Glance 📈
- 🎨 UI/UX Concepts: Intuitive & Engaging User Interfaces ✨
- 🛠️ Getting Started (For Developers): Ignite Your Bot 🔥
- 🗺️ Roadmap & Future Plans: The Path to 2025 and Beyond 🛣️
- 🤝 Contributing: Join Our Journey 🌍
- 📄 License 📜
ForexSignalBot stands as a pioneering AI-enhanced Telegram-based system 🤖, meticulously engineered to deliver hyper-accurate, real-time, and highly reliable trading signals 📈 for global financial markets, with a strategic and comprehensive focus on the dynamic Forex market 🌍. At its core, this project is built upon a cutting-edge .NET 9 architecture, adhering rigorously to the highest standards of software engineering best practices, including Domain-Driven Design (DDD) 🏗️, robust modularity, exceptional testability, and simplified maintainability. It fundamentally provides a resilient, intuitive, and highly performant platform, empowering individual traders 💼, astute analysts 🔬, and passionate financial market enthusiasts to execute exceptionally informed and strategic trading decisions. Our commitment extends beyond mere signal provision; we aim to foster a smarter, more accessible trading ecosystem for everyone, delivered through a fully intuitive User Interface directly within Telegram and a planned comprehensive web panel. 💡
The Forex market, recognized globally as the largest and most liquid financial market, generates an overwhelming and ceaseless volume of financial data, news, and complex analytical insights daily. This sheer magnitude of information presents an insurmountable challenge for both novice 🐣 and seasoned traders alike, often leading to analysis paralysis and missed opportunities 😔. There exists a critical and persistent demand for intelligent, automated tools that can effectively distill this inherent market complexity into actionable, trustworthy signals and comprehensive analytical insights, delivered in the simplest, most digestible, and timeliest possible format. ForexSignalBot has been precisely crafted to address this imperative need head-on, offering premium signal services, profound economic analyses, and direct, credible news access—all seamlessly integrated within an exceptionally user-friendly Telegram bot interface, democratizing sophisticated market intelligence for the masses. 🌐🔗
Our overarching mission with ForexSignalBot is to fundamentally redefine accessibility, precision, and efficiency in financial trading, providing an unparalleled edge to our users:
- 📈 High-Precision Signals: Our foremost objective is to deliver highly accurate buy/sell signals, rigorously underpinned by real-time, sophisticated market analysis, advanced statistical modeling, and data-driven insights. We strive for a predictive capability that consistently outperforms market averages. 🏆
- ⚡ Instant & Effortless Information: We are committed to ensuring lightning-fast and effortless access to critical economic news, significant geopolitical developments, and global events that directly impact financial markets. Our system is engineered for minimal latency, ensuring information reaches users when it matters most. 🔔
- 🌐 User-Centric & Extensible Platform: A core tenet of our design philosophy is to cultivate an intuitive, highly adaptable, and comprehensively customizable platform. This platform is meticulously tailored to cater to traders across all experience levels, from beginners seeking guided insights to professionals demanding granular control and deep analytics. Its extensible nature allows for future growth and integration, with a strong focus on a rich, full UI experience. 🤝
- 🧠 Advanced AI & Data Analytics: We are relentlessly focused on the continuous enhancement of signal quality and market predictive capabilities. This is achieved through the strategic application and refinement of state-of-the-art Artificial Intelligence algorithms and cutting-edge data analytics techniques, including machine learning models for pattern recognition and anomaly detection. 📊
- 🔒 Security & Unwavering Stability: Paramount to our operation is the guarantee of user data security and the provision of unwavering service stability. We achieve this through the diligent application of robust software engineering principles, rigorous security protocols, and continuous 24/7 operational resilience, ensuring trust and uninterrupted access. ✨
- AI-Powered Signal Generation: Leveraging advanced algorithms for market analysis and predictive insights. 🤖📊
- Real-time News Aggregation: Curated from 100+ high-quality RSS feeds, intelligently categorized for relevance. 📰🔍
- Full UI Telegram Integration: A rich, interactive, and intuitive full UI experience directly within Telegram, designed for maximum usability and engagement. 💬✨
- Robust & Scalable Architecture: Built on .NET 9, adhering to Clean Architecture and Domain-Driven Design (DDD) principles, designed for high performance, ease of maintenance, and extensibility. 🏗️⚡
- Automated Signal Execution (Auto-Forwarder): Direct, secure forwarding of signals to connected trading clients like Telegram TL (Trading Client), minimizing latency and manual errors for a seamless trading experience. 🔗🚀
- Containerized Deployment: Utilizing Docker for consistent, isolated, and scalable environments ("dotnet ducker" ready!). 🐳📦
- Resilience & Security: Featuring Polly for transient fault tolerance, robust exception handling, and secure token management. 🛡️🔒
- Future-Proof Roadmap: Continuous evolution with planned AI/ML enhancements, dedicated web panels for admin/users, and deeper integration with trading platforms. 🛣️🔮
ForexSignalBot is architected on the foundational principles of Clean Architecture 🧹 and deeply informed by Domain-Driven Design (DDD) principles. This fosters a highly logical, technology-agnostic, and layered design. This intentional structure meticulously separates concerns, guaranteeing exceptional testability ✅, simplified maintainability 🔧, and inherent extensibility ➕ by ensuring that core domain logic remains entirely independent of external frameworks, databases, or UI specifics. This design promotes a highly modular system capable of evolving gracefully with changing market demands and technological advancements, supporting a robust and scalable solution. 🔄
To fully grasp the elegant design of ForexSignalBot, a visual representation of its Clean Architecture, overlaid with DDD concepts (like Bounded Contexts, Aggregates, Entities, Value Objects), is highly recommended. This diagram would typically illustrate the distinct layers (Domain, Application, Infrastructure, Presentation/APIs) and their interactions, alongside the external components (WebAPI, TelegramPanel, BackgroundTasks). Such a visual asset clearly highlights the strict dependency rules that prevent outer layers from influencing inner core logic, ensuring system integrity and modularity. (Placeholder for Architecture Diagram) 🖼️💡
Each defined layer within the ForexSignalBot ecosystem serves a crucial and distinct purpose, collectively enhancing overall system maintainability, development velocity, and future adaptability, with a strong emphasis on DDD's ubiquitous language and bounded contexts:
- Domain: 🎯 This represents the innermost, foundational layer, meticulously encapsulating the core business logic, domain entities (such as
User👤,Signal📊,Subscription💳,Transaction💰), value objects (e.g.,Price,Timeframe), domain services (e.g.,SignalGenerationService), and aggregates (e.g.,Useras an aggregate root for their subscriptions and wallet). Critically, this layer remains entirely independent of any external technology, framework, or database, ensuring the purity and portability of core business rules and the ubiquitous language of the Forex trading domain. This is where the true business value resides, modeled explicitly. 🏡 - Application: ⚙️ Situated directly above the Domain layer, this layer implements the application-specific business rules and orchestrates various use cases. It acts as the primary interface to the Domain layer, containing application services responsible for intricate signal generation workflows (e.g.,
GenerateForexSignalCommand), comprehensive user management (e.g.,ManageSubscriptionCommand), and advanced analytics processing. It defines interfaces (ports) that the Infrastructure layer implements, adhering to the Dependency Inversion Principle. 🧠 - Infrastructure: 📦 This layer provides the concrete implementations for all external concerns and abstractions (adapters) defined within the Application layer. Its responsibilities are broad, encompassing persistent data storage solutions (leveraging EF Core for PostgreSQL interactions 🐘), robust integration with external APIs (like the Telegram Bot API 🔗 and external Trading APIs for auto-forwarding 🚀), reliable mechanisms for RSS feed fetching 📡, and sophisticated background job processing. This layer handles the "how" (technical details) to fulfill the "what" (business logic). 🏭
- WebAPI: 🌐 Serving as the primary entry point for all HTTP requests, this layer contains controllers meticulously designed for managing user interactions, subscription lifecycle, signal dissemination, and other critical RESTful API-driven interactions. It acts as a bridge between web clients (e.g., future Admin/User Panel) and the core application logic. 🌉
- TelegramPanel: 🤖 This dedicated service layer is solely responsible for handling all interactions originating from the Telegram bot. Its functionalities include efficiently receiving and processing user commands via Webhooks or Polling 📬, intelligently managing individual user sessions 🗣️, and seamlessly sending rich, formatted messages back to users. It forms the crucial bridge between user interactions in Telegram and the underlying Application layer, providing the full UI experience directly to the user. 💬
- BackgroundTasks: ⏳ This vital layer is dedicated to managing all periodic or long-running processes that should not block the main application thread. This includes automated RSS feed aggregation 🔄, complex, time-consuming signal analysis 📈, routine data updates 💾, and efficient notification dispatch 📧, often powered by robust distributed task queues like Hangfire for asynchronous operations. ⚙️
- Shared: 🤝 A cross-cutting library that acts as a common repository for universally utilized utility classes, powerful extension methods, and reusable components that are leveraged consistently across the entire solution, promoting code reuse and consistency. 🔗
The robust foundation of ForexSignalBot is built upon a carefully selected suite of modern, high-performance, and reliable technologies. A visual representation of this technology stack would effectively communicate the cohesive and powerful development environment that drives this project. (Placeholder for Technology Stack Diagram) 💡
- .NET 9: The absolute latest iteration of Microsoft's versatile, high-performance, and cross-platform developer platform. It provides unparalleled speed, efficiency, and a rich ecosystem for building enterprise-grade applications, ensuring optimal performance for demanding financial operations. 🚀
- Docker 🐳: Utilized extensively for robust containerization, Docker ensures consistent, isolated, and highly scalable deployment environments. This streamlines development, testing, and production workflows, enabling seamless Continuous Integration and Continuous Deployment (CI/CD) pipelines. This fundamentally defines our "dotnet ducker" approach for modern, portable deployments, contributing significantly to system reliability and performance. 📦
- PostgreSQL 🐘: A highly advanced, powerful, and open-source object-relational database system. PostgreSQL is renowned for its proven robustness, unwavering reliability, feature richness, and exceptional performance in managing complex and high-volume data storage, critical for financial data integrity. 💾
- Entity Framework Core (EF Core): Microsoft's modern, lightweight, and high-performance Object-Relational Mapper (ORM) for .NET. EF Core significantly simplifies complex database interactions, schema management, and data querying, abstracting away much of the boilerplate SQL code while maintaining high performance. 📖
- Telegram.Bot API: The official, comprehensive, and actively maintained .NET library specifically designed for seamless and efficient interaction with the Telegram Bot API. It handles all intricacies of bot communications, message parsing, and sending rich content, crucial for the full UI experience. 💬🤖
- Hangfire ⏱️: A powerful, open-source library that enables transparent and easy background job processing, scheduling recurring tasks, and managing distributed processing. Hangfire ensures that asynchronous operations run reliably, improving system responsiveness and resilience under heavy load. 🔄
- Polly 🛡️: A robust and fluent .NET resilience and transient-fault-handling library. Polly intelligently implements various policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback mechanisms, ensuring that the application remains highly resilient against transient failures in external API calls (e.g., trading platforms) and database interactions, thus guaranteeing maximum uptime and consistent performance. 💪
- HTML Agility Pack: A robust and flexible HTML parser. This library is extensively used for efficiently extracting and manipulating HTML content sourced from complex RSS feeds and other web pages, enabling structured data ingestion for news analysis. 🕸️📄
- AutoMapper: A powerful, convention-based object-to-object mapping library. AutoMapper significantly simplifies data transfer between different application layers (e.g., mapping entities to DTOs), drastically reducing boilerplate code and improving maintainability. 🔄
- Microsoft.Extensions.Logging: A highly structured and efficient logging framework provided by Microsoft. It enables comprehensive observability and diagnostics across the entire application, facilitating effective debugging, monitoring, and performance analysis, essential for a critical system like a trading bot. 📝🔍
- ML.NET / TensorFlow.NET: (Future Vision) Strategic integration of cutting-edge Artificial Intelligence and Machine Learning frameworks. This is planned for advanced sentiment analysis of market news 🧐, sophisticated predictive modeling of price movements 🔮, and continuous, adaptive signal quality enhancement, providing a significant competitive edge and driving the core intelligence of the bot. 🚀
ForexSignalBot is engineered with an extensive and meticulously designed suite of features aimed at catering to the nuanced and evolving needs of modern financial traders, providing them with unparalleled market intelligence and operational efficiency:
The platform offers diverse membership tiers, ranging from a foundational Free plan to premium, feature-rich subscriptions. These tiers are carefully designed to provide differentiated access to advanced features, premium content, and higher signal frequencies. An integrated, secure token-based wallet system 👛 facilitates seamless management of user credits, enables transparent transaction tracking 🧾, and supports flexible subscription models, allowing users to scale their access based on their trading needs and budget. 💲
- 100+ High-Quality RSS Feeds: ForexSignalBot meticulously fetches and aggregates news from an extensive, carefully curated list of over 100 highly reliable and stable global financial news sources 🌐, ensuring comprehensive, real-time market coverage from the most credible outlets, preventing information silos. 🗞️
- Categorized Feeds: All incoming news feeds are intelligently processed and categorized into granular, thematic groups. Examples include
Forex Essentials✨, specific currency pairs likeUSD/EUR/JPY/GBP/AUD/CAD/CHF Forex💱, broader markets such asGlobal Stocks🏢,Commodities⛏️,Crypto₿, and macro-economic themes likeMacroeconomics🏛️,Geopolitics🌍,General Business👔, andTech & FinTech💻. This provides a highly personalized and relevant news stream for each user. 🎯 - Smart Deduplication: The system employs advanced algorithmic logic to rigorously detect and prevent duplicate news items from being sent to users. This intelligent deduplication works effectively even if various sources rephrase or re-publish the same content, ensuring a clean, concise, and efficient news stream free from redundancy. 🧹🔄
- New User Defaults: To provide immediate value without overwhelming new users, they are automatically subscribed to essential, high-priority news feeds (
IsActive=1) by default, providing immediate value without initial information overload. Other specialized feeds (IsActive=0) are readily available for manual activation by users based on their evolving interests and trading strategies, promoting a tailored onboarding experience. ✅🆕 - User Preferences: Users retain granular and intuitive control to customize their news categories and notification preferences. This ensures they receive only the content most relevant to their individual trading strategies and specific market interests, eliminating noise and enhancing focus. 🛠️👤
To illustrate the breadth of your news aggregation, a chart illustrating their distribution would be beneficial here. (Placeholder for News Distribution Chart) 📊
ForexSignalBot provides precise analytical signals for all major Forex currency pairs, including USD, EUR, JPY, GBP, AUD, CAD, CHF, and NZD. Furthermore, it extends its analytical reach to other key global assets such as commodities and select indices, offering a comprehensive and diversified trading perspective across various financial instruments. 🪙🏭
This critical feature transforms ForexSignalBot into a seamless bridge between intelligence and execution, enabling the secure, near real-time forwarding of verified trading signals directly from the bot to a user's connected external trading accounts or preferred trading platforms (e.g., MetaTrader 4/5, cTrader).
- Direct & Secure Transmission: Leveraging robust API integrations (acting as a dedicated
Trading ClientorWeb Clientfor platforms like MetaTrader), signals are transmitted securely and with minimal latency. This capability, often referred to as an "Auto-Forwarder," significantly reduces the time-to-market for trades, critical in volatile Forex environments. - Eliminate Manual Entry & Errors: Automates the process of placing orders, eliminating manual entry errors and allowing traders to capitalize on fast-moving market opportunities instantly, especially crucial for high-frequency strategies.
- User-Controlled Automation: Users maintain full, granular control over which signals are auto-forwarded and can configure vital risk parameters (e.g., lot size, max deviation, partial take-profits) and enable/disable automation via the interactive Telegram bot UI or a future web panel.
- Reliability & Resilience (TL _Wclinet approach): Designed with advanced fault-tolerance mechanisms (utilizing Polly policies) to ensure consistent signal delivery and execution reliability even amidst transient network issues or platform outages. This mirrors the resilience and robust error handling expected from professional trading client integrations, striving for "TL _Wclinet" levels of reliability.
This capability fundamentally enhances ForexSignalBot from merely a signal provider into a comprehensive, semi-automated trading assistant, empowering users with both superior market intelligence and unparalleled execution efficiency.
The project is actively integrating and continuously refining sophisticated sentiment analysis algorithms. These algorithms meticulously analyze market news, social media data, and various data streams, aiming to significantly enhance signal quality, accurately identify emerging market trends, and provide deeper, actionable market insights. Strategic future plans include more advanced AI/ML integration for highly sophisticated predictive modeling 📈, complex pattern recognition across diverse datasets 🧩, and adaptive signaling mechanisms, collectively pushing the boundaries of automated trading intelligence. 💡
- Webhook/Polling Flexibility: The Telegram bot achieves exceptionally fast and responsive message reception through Webhooks, providing near real-time interaction. In scenarios where Webhooks may face connectivity challenges, a graceful fallback to Polling ensures maximum reliability and continuous high availability, maintaining the full UI experience. ⚡🔄
- Queued Message Processing: All incoming user commands and outgoing messages are processed asynchronously through a robust, fault-tolerant message queue (powered by Hangfire). This architecture ensures a consistently smooth, non-blocking user experience and effectively prevents system overload, even under periods of high user traffic or intense market activity, contributing to overall performance. 🚦➡️
- Rich UI Elements (Full UI): The bot fully leverages and supports Telegram's extensive suite of rich User Interface capabilities. This includes interactive inline keyboards for seamless navigation 👆,
MarkdownV2formatting for visually appealing and highly readable messages ✨, and the inclusion of media attachments for interactive and informative content delivery 📸, providing a truly premium and full UI user experience directly within the Telegram application. 🌟
- ForexSignalBot prioritizes secure token management for robust user authentication and authorization across different access levels, thereby meticulously safeguarding user accounts and sensitive information against unauthorized access. 🔑
- The system implements comprehensive exception handling mechanisms and strategically leverages advanced Polly policies for sophisticated transient fault tolerance. This engineering approach guarantees near 24/7 uptime and ensures unparalleled data consistency, even in the face of temporary network or service disruptions, enhancing system resilience and performance. ✅ uptime
- Designed for seamless production deployment with Docker, the system integrates structured logging for continuous monitoring 📊, proactive alerting 🔔, and granular performance optimization, ensuring exceptionally reliable and secure operations, reflecting a commitment to enterprise-grade stability. 🏭
While specific dynamic charts cannot be directly embedded within a standard GitHub README, understanding the performance of ForexSignalBot's intelligent algorithms and infrastructure is crucial. Here, we outline the key performance indicators that demonstrate the bot's effectiveness and reliability. To visually represent these, you would typically generate charts from your actual project data and upload them as images to your repository (e.g., in /assets/images/). 🖼️
This metric tracks the historical signal accuracy rate of ForexSignalBot over a defined period (e.g., monthly, quarterly). A line chart would typically illustrate a consistent high percentage (ideally above 85-90%) with a potential upward trend, demonstrating strong predictive capabilities and continuous improvement of the underlying AI models. This provides crucial validation of the bot's effectiveness. (Placeholder for Signal Accuracy Chart) 💯
This section focuses on the expansion of the user base and their active engagement with the bot. A bar chart would typically showcase monthly active user growth, reflecting increasing adoption, retention, and the overall value proposition of the service in the market. Consistent growth indicates positive market reception and user satisfaction. (Placeholder for User Growth Chart) 🚀
This critical metric measures the average time taken for a signal to be delivered from its generation point within the system to the user's Telegram notification. A low latency (typically targeted at under 3 seconds) is paramount for timely trading decisions. A gauge chart or a simple line chart would visually represent this, highlighting the bot's real-time responsiveness and operational efficiency. (Placeholder for Latency Chart) 💨
This metric quantifies the number of signals processed, news articles aggregated, and messages delivered per second or minute, demonstrating the system's capacity and efficiency under load. High throughput, combined with low resource utilization, indicates robust scalability. A line chart showing throughput against concurrent users would highlight the system's ability to handle increasing demand without performance degradation, affirming its enterprise readiness. (Placeholder for Throughput/Scalability Chart) 📈🔄
ForexSignalBot is designed from the ground up to provide a fully intuitive and engaging user experience, whether through the primary Telegram bot interface or the planned comprehensive web panel. Our UI/UX is laser-focused on fostering effortless interactions, ensuring crystal-clear communication, and enabling extensive customization for every trader.
As the Telegram bot serves as the primary and most direct user interface for the majority of users, our design ensures a rich, interactive, and visually appealing experience. Actual screenshots or high-fidelity mockups of the Telegram bot's interface are highly recommended here to showcase the full UI capabilities. (Placeholder for Telegram UI Screenshots/Mockups) 📸
- Main Menu & Commands: Users primarily interact with the bot through a natural, command-based interface, initiating actions with intuitive commands such as
/start👋 (welcome and overview),/help❓ (guidance and FAQs), and/settings⚙️ (personalization hub).- Visual Elements: Bold commands, clear descriptions, and responsive inline keyboards for quick navigation.
- News Feeds:
- Message Format: News items are presented in a clean, highly readable
MarkdownV2format. This formatting ensures key elements like bold titles 📰, italicized sources 🖊️, intelligently truncated summaries 📝, and a prominent "Read Full Article" inline button 🔗 are visually distinct and easy to scan, providing a rich media experience. - User Interaction: Inline buttons for
Read More,Share, orSave for Laterto enhance engagement.
- Message Format: News items are presented in a clean, highly readable
- Signal Notifications:
- Message Format: Trading signals are conveyed with utmost clarity and urgency, featuring distinct buy/sell indicators (e.g., green
BUY✅ / redSELL❌), precise asset symbols (e.g., EUR/USD), specific entry, stop-loss (SL), and take-profit (TP) prices, along with real-time status updates (e.g.,Active,Closed-TP1,Closed-SL). This ensures all critical trading parameters are immediately visible and actionable. 📈📉🔔 - Interactive Elements: Inline buttons for
Confirm Trade(for Auto-Forwarder),More Info, orFeedback.
- Message Format: Trading signals are conveyed with utmost clarity and urgency, featuring distinct buy/sell indicators (e.g., green
- Settings & Preferences:
- Users navigate and customize their settings effortlessly via intuitive inline keyboards, creating a truly full UI experience directly within Telegram. Examples include granular options like
⚙️ Preferences▶️ News Categories📰▶️ Forex💱▶️ USD[✅/❌], allowing for a seamless, tap-driven customization experience. 👆 - Options: Notification frequency, specific market alerts, language preferences, and subscription management.
- Users navigate and customize their settings effortlessly via intuitive inline keyboards, creating a truly full UI experience directly within Telegram. Examples include granular options like
- Auto-Forwarder Configuration (New):
- Message Format: Users can manage their trading platform integrations and auto-forwarding preferences through clear, interactive menus. Options will include
🔗 Connect Platform(e.g., MetaTrader),⚙️ Auto-Forward Settings(e.g., risk levels, pairs to automate),📈 Trade History(for automated trades), andDisconnect. - Guidance: Step-by-step instructions for connecting platforms and configuring automated trading, ensuring a smooth setup process.
- Message Format: Users can manage their trading platform integrations and auto-forwarding preferences through clear, interactive menus. Options will include
- Error Handling: In the event of unhandled issues, user-friendly and informative error messages are sent back to the user. These messages clearly indicate that the development team has been notified and is actively addressing the issue, thereby minimizing user frustration and maintaining trust.
⚠️ 🤖
Beyond the Telegram bot, a comprehensive web-based UI is planned to offer a richer, more detailed experience for both administrators and advanced users, extending the full UI vision:
- Admin Dashboard:
- Features: Centralized user management, detailed subscription oversight, granular news feed configuration, live signal generation monitoring, comprehensive system health checks, in-depth performance analytics with customizable dashboards, and powerful content moderation tools.
- UI Elements: Data-rich dashboards with interactive charts, filterable tables, advanced search functionalities, and administrative controls for fine-tuning the system.
- User Web Panel:
- Features: Detailed subscription management, advanced preference customization (beyond Telegram's capabilities), extensive historical signal logs with performance metrics and analysis, personalized news feeds with advanced filtering, and a robust interface for managing trading platform connections and granular auto-forwarding settings.
- UI Elements: Intuitive navigation, customizable widgets, interactive charts for personal performance tracking, and secure forms for sensitive configurations and API key management.
This dual-interface approach ensures accessibility and convenience through Telegram's full UI, complemented by powerful, detailed management and analytical capabilities via a dedicated web application, providing a holistic and robust user experience.
Ready to dive into the codebase and contribute to the evolution of ForexSignalBot? Follow these comprehensive steps to set up the project locally. Our development philosophy emphasizes a dotnet ducker approach 🐳, ensuring consistent, isolated, and highly reproducible development environments across various machines. 🚀
This project is fully containerized using Docker Compose. This is the recommended way to run the application for development, as it automatically sets up the .NET application and the SQL Server database in an isolated environment.
You do not need to install the .NET SDK or SQL Server on your machine.
All you need is Docker Desktop installed and running on your system.
- Download Docker Desktop (for Windows, Mac, and Linux)
First, get the source code onto your local machine.
git clone https://github.com/Opselon/ForexTradingBot.git
cd ForexTradingBotThe application requires secret keys (like API tokens and passwords) to run. These are managed in a local .env file that is kept private and is not checked into Git.
A template file named .env.example is provided for you.
- Automatic Setup (Recommended): Simply run the startup script for your operating system. It will create the
.envfile for you if it doesn't exist. - Manual Setup: If you prefer, you can manually copy
.env.exampleto a new file named.env.
Open the .env file in a text editor and fill in your actual secret values.
With Docker running and your .env file configured, you can start the entire application stack with a single command.
- On Windows: Double-click the
start.batfile. - On Linux or macOS: Open a terminal in the project root and run:
# Make the script executable (only need to do this once) chmod +x start.sh # Run the script ./start.sh
That's it! The script will:
- Build the .NET application's Docker image.
- Download and start a SQL Server container.
- Start your application container.
- Connect everything on a private network.
- Your application, if configured with Entity Framework, will automatically apply database migrations on startup.
The API will be available at http://localhost:8080 shortly.
- View real-time logs:
docker-compose logs -f - Stop the application:
docker-compose down - Connect to the Database (Optional): You can connect to the SQL Server instance running in Docker using any database tool (like Azure Data Studio or SSMS).
- Server:
localhost,1433(You may need to uncomment the ports line indocker-compose.ymlfor thedbservice first) - Authentication: SQL Login
- User:
sa - Password: The
DB_SA_PASSWORDyou set in your.envfile.
- Server:
-
Clone the repository: Initiate the development process by cloning the project's source code from GitHub:
git clone https://github.com/Opselon/ForexTradingBot.git cd ForexTradingBotThis command fetches the code to your local machine. ⬇️
-
Database Setup (PostgreSQL): ForexSignalBot utilizes PostgreSQL 🐘 for its robust data persistence layer.
- Ensure that a PostgreSQL instance is installed, configured, and actively running on your local system or accessible via your network. ✅
- Update the
DefaultConnectionstring within yourappsettings.jsonfile (orappsettings.Development.jsonfor local development configurations) to correctly point to your operational PostgreSQL instance, including credentials. 🔑 - Apply the necessary Entity Framework Core migrations to initialize and update the database schema to the latest version:
This sets up your database tables. 🏗️
dotnet ef database update --project Infrastructure --startup-project WebAPI
- Populate RSS Feeds & Categories: Execute the provided
Populate_RssSources_Categories.sqlscript (located in the project root, or execute it directly from your SQL client) against your database. This crucial one-time step will establish the initial categories and populate the comprehensive list of RSS feeds that the bot aggregates. 📡🔄
-
Telegram Bot Token: For the Telegram bot functionality to operate, it requires an authentication token. 🤖
- Obtain a unique bot token by interacting with the official
@BotFatheron Telegram. Follow his instructions to create a new bot and retrieve its token. 🤝 - Configure your obtained bot token in the
appsettings.jsonfile under theTelegramPanelSettings:BotTokenconfiguration key. 📝
- Obtain a unique bot token by interacting with the official
-
Hangfire Dashboard (Optional but Recommended): Hangfire is used for managing background jobs. ⏱️
- Configure your Hangfire dashboard path and security settings as needed within
appsettings.json. This dashboard provides invaluable insights into job processing, failures, and schedules, which is highly recommended for monitoring background operations. 📊🔍
- Configure your Hangfire dashboard path and security settings as needed within
-
Build and Run (.NET): With all prerequisites configured, build and run the application. 🚀
dotnet build dotnet run --project WebAPI # Or use your IDE (e.g., Visual Studio, VS Code) to run the WebAPI project.This compiles and starts your application. ⚙️
-
Docker Integration (Recommended for Production & Consistency -
dotnet ducker): Leveraging Docker provides a consistent and isolated environment, crucial for development and deployment. 🐳- To visually represent your Docker setup, a diagram illustrating the containerized architecture (e.g., showing PostgreSQL, WebAPI, and TelegramPanel services running in separate, interconnected containers) would be beneficial here. (Placeholder for Docker Architecture Diagram) 🏗️
- Ensure Docker Desktop is installed and running on your machine to orchestrate the containers. ✅
- Build and run all services using Docker Compose, which manages multi-container Docker applications:
docker-compose build docker-compose up
- This command will orchestrate your PostgreSQL database, WebAPI, and TelegramPanel services within isolated Docker containers, guaranteeing a consistent and scalable development/production environment from the outset, embodying the "dotnet ducker" philosophy. 🚀📦
The ForexSignalBot project is on an accelerated trajectory of continuous innovation and strategic expansion. Our ambitious future plans are designed to significantly enhance its capabilities, user experience, and market reach, positioning it as a leading solution in AI-driven financial intelligence:
- 🧠 Advanced AI/ML Integration: Our core focus will be on implementing even more sophisticated Artificial Intelligence and Machine Learning models for deeper, predictive data analysis 📊, developing hyper-personalized market insights tailored to individual user profiles 👤, and building adaptive signaling algorithms that learn and refine over time 🔄, leveraging the latest advancements in deep learning and reinforcement learning. 💡
- 🌐 Admin & User Web Panel (Full UI Expansion): We plan to develop a comprehensive, intuitive, and feature-rich web-based management panel. This panel will serve both administrators (for robust system oversight 👁️🗨️, efficient user management 👥, content curation ✍️, and granular performance monitoring) and end-users (for seamless subscription management 💳, advanced preference customization 🛠️, detailed historical signal logs with performance metrics, and direct, full control over auto-forwarding integrations and other advanced features beyond what Telegram offers). 📈
- ➕ Expanded Signal Categories & Asset Classes: Based on user feedback and evolving market demands, we will progressively introduce new signal categories and significantly broaden the range of supported asset classes. This could include specific indices 📊, various types of bonds 📜, a wider array of cryptocurrencies ₿, and other alternative investments, expanding the bot's utility and appeal to a broader trading audience. 💹
- 🎯 Enhanced Personalization: We are committed to providing even more granular and intelligent customization options. This will cover notification types (e.g., critical alerts vs. daily summaries 🔔), frequency settings ⏱️, sophisticated content filters based on individual interests 🔎, and preferred market alerts, giving users unparalleled control over their incoming trading information. 🚀
- 🔗 Deeper Integration with Trading Platforms (Advanced Auto-Forwarder): A key strategic initiative is to expand and refine secure, direct integration capabilities with popular external trading platforms (e.g., MetaTrader 4/5 💻, cTrader, TradingView). This would enable more advanced automated signal execution features (always with explicit user consent and robust risk management features), streamlining the trading workflow from signal reception to order placement and potentially offering advanced order types like trailing stops, OCO orders, and integrated position management. This will push the "TL _Wclinet" concept further. 🤝
- 🤝 Community Features: To foster a vibrant and collaborative ecosystem around the bot, we envision integrating community features. This could potentially include shared insights 🧠, discussion forums within Telegram groups 💬, collaborative learning features 🎓, and peer-to-peer support, building a thriving community of informed traders. 🧑🤝🧑
We enthusiastically welcome and encourage contributions from the global developer community! If you are interested in contributing to the ongoing development and success of ForexSignalBot, please follow these guidelines to ensure a smooth, efficient, and collaborative process:
- Fork the repository: Start by forking the official
ForexTradingBotrepository to your personal GitHub account. This creates your own copy where you can freely make changes. 🍴 - Create a new branch: For each new feature or bug fix, create a dedicated branch. This keeps your changes isolated and makes managing pull requests cleaner. Use descriptive branch names, e.g.,
git checkout -b feature/your-new-featureorbugfix/fix-issue-number. 🌿 - Commit your changes: Make your code changes and commit them using clear, concise, and descriptive commit messages. We encourage following conventional commit guidelines (e.g.,
feat: add new signal type✨,fix: resolve issue with RSS parsing🐛,docs: update roadmap📝). 📝 - Push your branch: After committing, push your new branch to your forked repository on GitHub. ⬆️
- Open a Pull Request (PR): Navigate to the original
ForexTradingBotrepository on GitHub and open a new Pull Request. Provide a clear and detailed description of your changes, including why they are necessary and what problem they solve. Reference any related issues. 🚀 Pull! . Please review ourCONTRIBUTING.mdfile (which will be created soon! 🔜 Stay tuned for detailed contribution guidelines and coding standards! 📋) for more specific instructions.
This project is proudly licensed under the MIT License. This permissive open-source license allows you to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software, subject to the inclusion of the original copyright and permission notice. For comprehensive details, please refer to the LICENSE file located in the root of this repository. ✅
#Tags: #ForexTrading #TelegramBot #AISignals #AutomatedTrading #ForexBot #TradingAutomation #NETCore #DotNet9 #FinancialTechnology #FinTech #AlgorithmicTrading #SignalBot #OpenSource #CryptoTrading #MarketAnalysis #Bots #Software #TradingBot
