Porque ocorre esse erro: ',' - syntax error, parameter missed no OrderSelect deste código?

 
//+------------------------------------------------------------------+
//|                                           dados_compra_venda.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+

#include <Trade/Trade.mqh> // PARA definir constantes como SELECT_BY_POS ENTRE OUTRAS
#include <Trade/SymbolInfo.mqh>

#define OP_BUY 0
#define OP_SELL 0 
#define SELECT_BY_POS 
#define MODE_HISTORY 

// define o número mágico da ordem
int magic_number = 1234;

//const int SELECT_BY_POS = 0;   // Deu certo, consertou o: 'SELECT_BY_POS' - undeclared identifier
//const int MODE_HISTORY = 0;
int  OrderMagicNumber();
datetime OrderOpenTime();
int OrderTicket();
double  OrderOpenPrice(); // Open price of the currently selected order.

ENUM_ORDER_TYPE  OrderType();

CTrade      trade;   // Classe responsável pela execução de negócios
CSymbolInfo simbolo; // Classe responsãvel pelos dados do ativo

MqlRates velas[];            // Variável para armazenar velas
MqlTick tick;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

void OnStart()
  {
//---
   


// define as variáveis para armazenar os resultados da pesquisa
   datetime buy_time, sell_time;
   double buy_price, sell_price;
   int buy_ticket, sell_ticket;
   
   
   CompraAMercado();

// percorre o histórico de negociação
   for(int i = HistoryOrdersTotal() - 1; i >= 0; i--)
     {
      // obtém a ordem atual
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false) continue;
      //if (OrderSelect(i) == false) continue; // desse jeito não deu erro

      // verifica se a ordem corresponde ao número mágico
      if(OrderMagicNumber() != magic_number)
         continue;

      // verifica se a ordem é uma compra ou venda
      if(OrderType() == OP_BUY)
        {
         // armazena as informações da compra
         buy_time = OrderOpenTime();
         buy_price = OrderOpenPrice();
         buy_ticket = OrderTicket();
        }
      else
         if(OrderType() == OP_SELL)
           {
            // armazena as informações da venda
            sell_time = OrderOpenTime();
            sell_price = OrderOpenPrice();
            sell_ticket = OrderTicket();
           }
     }

// imprime as informações de compra e venda
   PrintFormat("Compra: %s %f %d", TimeToString(buy_time), buy_price, buy_ticket);
   PrintFormat("Venda: %s %f %d", TimeToString(sell_time), sell_price, sell_ticket);


  }
//+------------------------------------------------------------------+

void CompraAMercado()
   {
   
    trade.Buy(100,_Symbol,NormalizeDouble(tick.ask,_Digits),_Digits);
      
      if(trade.ResultRetcode() == 10008 || trade.ResultRetcode() == 10009)
        {
            Print("Ordem de compra Executada com Sucesso!!");
        }else
           {
            Print("Erro de execução... ", GetLastError());
            ResetLastError();
           }          
     
   }
 

Está a misturar funcionalidades de MQL4 e MQL5. Será isto código gerado por ChatGPT?

A funcionalidade de OrderSelect() que apresenta no seu código é do MQL4 e não de MQL5:

Definições da função OrderSelct():

MQL5: https://www.mql5.com/pt/docs/trading/orderselect

bool  OrderSelect(
   ulong   ticket      // Ticket de ordem
   );

MQL4: https://docs.mql4.com/trading/orderselect

bool  OrderSelect(
   int     index,            // index or order ticket
   int     select,           // flag
   int     pool=MODE_TRADES  // mode
   );
 

Analisando melhor o seu código, há clara evidencia que foi gerado pelo ChatGPT, devido há mistura de diversas funcionalidades do MQL4 intercalado entre funcionalidades de MQL5.

Aconselho~lhe a abandonar o uso de ChatGPT. Gera código inútil e quase impossible de corrigir. É mais fácil escrever o código de raiz do que tentar corrigir.

Será melhor contratar alguém "humano" para escrever o programa por si.

Razão: