//+------------------------------------------------------------------+ //| AI EA PART 10.mq5 | //| Copyright 2026, Allan Munene Mutiiria. | //| https://t.me/Forex_Algo_Trader | //+------------------------------------------------------------------+ #property copyright "Copyright 2026, Allan Munene Mutiiria." #property link "https://t.me/Forex_Algo_Trader" #property version "1.00" #property strict //--- Draw every brand mark and icon as vectors so the EA ships as one crisp file //+------------------------------------------------------------------+ //| Inputs | //+------------------------------------------------------------------+ input group "=== OPENAI API SETTINGS ===" input string OpenAI_Model = "gpt-4o"; // OpenAI Model Name input string OpenAI_Endpoint = "https://api.openai.com/v1/chat/completions"; // OpenAI API Endpoint URL input int MaxResponseLength = 3000; // Max Response Length (Tokens) input group "=== LOGGING SETTINGS ===" input string LogFileName = "ChatGPT_EA_Log.txt"; // Log File Name input int MaxChartBars = 10; // Max Chart Bars To Send To AI input bool DeleteLogsOnChatDelete = true; // Clear Logs When Deleting Chats input group "=== AUTO-TRADING SETTINGS ===" input bool AutoTrade = true; // Enable Auto-Trading On AI Signals input double LotSize = 0.01; // Lot Size For Auto-Trades input int MagicNumber = 12345; // Magic Number For Trades input bool EnableAutoSignal = false; // Enable Auto Signal Check On New Bar //+------------------------------------------------------------------+ //| Global Variables | //+------------------------------------------------------------------+ //--- Store the OpenAI API key used to authenticate chat completion requests string OpenAI_API_Key = "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"; //+------------------------------------------------------------------+ //| Module Includes | //+------------------------------------------------------------------+ //--- Define sentinel so headers skip extern forward declarations and avoid type conflicts #define AI_COMPILED_FROM_MAIN //--- Include theme constants and color definitions #include "AI Canvas Theme.mqh" //--- Include low-level canvas drawing primitives #include "AI Canvas Primitives.mqh" //--- Include JSON parsing and file utilities #include "AI JSON FILE.mqh" //--- Include shared canvas state structures and globals #include "AI Canvas State.mqh" //--- Include scrollbar component logic #include "AI Canvas Scrollbar.mqh" //--- Include text editor and caret handling #include "AI Canvas Editor.mqh" //--- Include chat panel rendering routines #include "AI Canvas Render.mqh" //--- Include trading and AI signal logic #include "AI Logic.mqh" //--- Include user interaction and input dispatch #include "AI Canvas Interact.mqh" //--- Include top-level shell lifecycle handlers #include "AI Canvas Shell.mqh" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Delegate initialization to the shell module and abort on failure if(!Ai_Init()) return INIT_FAILED; //--- Start the millisecond timer that drives the editor caret blink EventSetMillisecondTimer(500); //--- Report successful initialization return INIT_SUCCEEDED; } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Stop the millisecond timer EventKillTimer(); //--- Delegate cleanup to the shell module Ai_Deinit(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- Forward tick handling to the shell module Ai_OnTick(); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- Forward the chart event to the shell module for dispatch Ai_OnChartEvent(id, lparam, dparam, sparam); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- Forward the timer tick to the shell module Ai_OnTimer(); } //+------------------------------------------------------------------+