preciso e ajuda para finalizar um projeto de EA que estou fazendo

 

Bom dia.

Estou construindo um EA para testar uma estratégia e não estou conseguindo finalizar meu projeto

Alguem sabe como resolver os erros a seguir:

'StrToTime' - undeclared identifier robo 2.mq5 29 16

'TradeTime' - some operator expected robo 2.mq5 29 26

'TimeHour' - undeclared identifier robo 2.mq5 61 11

'currentTime' - some operator expected robo 2.mq5 61 20

expression not boolean robo 2.mq5 61 11

'==' - semicolon expected robo 2.mq5 61 33

'==' - operand expected robo 2.mq5 61 33

'TimeHour' - undeclared identifier robo 2.mq5 61 36

'tradeTime' - some operator expected robo 2.mq5 61 45

'TimeMinute' - undeclared identifier robo 2.mq5 61 59

'currentTime' - some operator expected robo 2.mq5 61 70

'TimeMinute' - undeclared identifier robo 2.mq5 61 86

'tradeTime' - some operator expected robo 2.mq5 61 97


//+------------------------------------------------------------------+

//|                       Meu Bot Trader                              |

//|                                                                   |

//|                                                                   |

//+------------------------------------------------------------------+

#property copyright "Seu Nome"

#property version   "1.00"

#property strict


// Variáveis de entrada

input double LotSize = 0.01;        // Lote de entrada

input int StopLoss = 300;           // Stop Loss em pontos

input int TakeProfit = 600;         // Take Profit em pontos

input string TradeTime = "15:30";   // Hora de negociação

input int MagicNumber = 123456;     // Número mágico para o par de moedas


// Variável global para armazenar o tempo de negociação convertido

datetime tradeTime;


//+------------------------------------------------------------------+

//| Função de inicialização do Expert Advisor                        |

//+------------------------------------------------------------------+

void OnInit()

{

   // Configurar eventos de nova barra

   EventSetTimer(60);


   // Converter a string TradeTime em um valor datetime

   tradeTime = StrToTime(TradeTime);

}


//+------------------------------------------------------------------+

//| Função de manipulação do evento de nova barra                     |

//+------------------------------------------------------------------+

void OnTimer()

{

   // Verifica se é a hora de negociação

   if (IsTradeTime(TimeCurrent()))

   {

      // Verifica se é uma barra positiva

      if (IsBarPositive())

      {

         // Realiza uma compra

         Buy();

      }

      // Verifica se é uma barra negativa

      else if (IsBarNegative())

      {

         // Realiza uma venda

         Sell();

      }

   }

}



//+------------------------------------------------------------------+

//| Função de verificação se é a hora de negociação                   |

//+------------------------------------------------------------------+

bool IsTradeTime(const datetime currentTime)

{

    // Verifica se é a hora de negociação desejada

    return TimeHour(currentTime) == TimeHour(tradeTime) && TimeMinute(currentTime) == TimeMinute(tradeTime);

}


//+------------------------------------------------------------------+

//| Função de verificação se a barra é positiva                       |

//+------------------------------------------------------------------+

bool IsBarPositive()

{

   // Obtém o preço de abertura da barra

   double openPrice = iOpen(_Symbol, PERIOD_CURRENT, 0);


   // Obtém o preço de fechamento da barra

   double closePrice = iClose(_Symbol, PERIOD_CURRENT, 0);


   // Verifica se a barra é positiva

   return closePrice > openPrice;

}


//+------------------------------------------------------------------+

//| Função de verificação se a barra é negativa                       |

//+------------------------------------------------------------------+

bool IsBarNegative()

{

   // Obtém o preço de abertura da barra

   double openPrice = iOpen(_Symbol, PERIOD_CURRENT, 0);


   // Obtém o preço de fechamento da barra

   double closePrice = iClose(_Symbol, PERIOD_CURRENT, 0);


   // Verifica se a barra é negativa

   return closePrice < openPrice;

}


//+------------------------------------------------------------------+

//| Função para realizar uma compra                                   |

//+------------------------------------------------------------------+

void Buy()

{

   // Calcula o preço de entrada

   double entryPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK);


   // Calcula o preço do stop loss

   double stopLossPrice = entryPrice - StopLoss * _Point;


   // Calcula o preço do take profit

   double takeProfitPrice = entryPrice + TakeProfit * _Point;


   // Preparar estrutura MqlTradeRequest

   MqlTradeRequest request;

   ZeroMemory(request);

   request.action = TRADE_ACTION_DEAL;

   request.symbol = _Symbol;

   request.volume = LotSize;

   request.price = entryPrice;

   request.sl = stopLossPrice;

   request.tp = takeProfitPrice;

   request.type = ORDER_TYPE_BUY;

   request.magic = MagicNumber;

   request.comment = "Buy order";


   // Enviar ordem de compra

   MqlTradeResult result;

   if (OrderSend(request, result))

   {

      // Ordem enviada com sucesso

      Print("Ordem de compra enviada - Ticket: ", result.order);

   }

   else

   {

      // Erro ao enviar a ordem de compra

      Print("Erro ao enviar a ordem de compra: ", GetLastError());

   }

}


//+------------------------------------------------------------------+

//| Função para realizar uma venda                                    |

//+------------------------------------------------------------------+

void Sell()

{

   // Calcula o preço de entrada

   double entryPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID);


   // Calcula o preço do stop loss

   double stopLossPrice = entryPrice + StopLoss * _Point;


   // Calcula o preço do take profit

   double takeProfitPrice = entryPrice - TakeProfit * _Point;


   // Preparar estrutura MqlTradeRequest

   MqlTradeRequest request;

   ZeroMemory(request);

   request.action = TRADE_ACTION_DEAL;

   request.symbol = _Symbol;

   request.volume = LotSize;

   request.price = entryPrice;

   request.sl = stopLossPrice;

   request.tp = takeProfitPrice;

   request.type = ORDER_TYPE_SELL;

   request.magic = MagicNumber;

   request.comment = "Sell order";


   // Enviar ordem de venda

   MqlTradeResult result;

   if (OrderSend(request, result))

   {

      // Ordem enviada com sucesso

      Print("Ordem de venda enviada - Ticket: ", result.order);

   }

   else

   {

      // Erro ao enviar a ordem de venda

      Print("Erro ao enviar a ordem de venda: ", GetLastError());

   }

}



 
TraderOpty:

Bom dia.

Estou construindo um EA para testar uma estratégia e não estou conseguindo finalizar meu projeto

Alguem sabe como resolver os erros a seguir:

'StrToTime' - undeclared identifier robo 2.mq5 29 16

'TradeTime' - some operator expected robo 2.mq5 29 26

'TimeHour' - undeclared identifier robo 2.mq5 61 11

'currentTime' - some operator expected robo 2.mq5 61 20

expression not boolean robo 2.mq5 61 11

'==' - semicolon expected robo 2.mq5 61 33

'==' - operand expected robo 2.mq5 61 33

'TimeHour' - undeclared identifier robo 2.mq5 61 36

'tradeTime' - some operator expected robo 2.mq5 61 45

'TimeMinute' - undeclared identifier robo 2.mq5 61 59

'currentTime' - some operator expected robo 2.mq5 61 70

'TimeMinute' - undeclared identifier robo 2.mq5 61 86

'tradeTime' - some operator expected robo 2.mq5 61 97

Não tente gerar código automaticamente que dá nisso, se voce conhece programação é fácil resolver esses problemas. Se tiver uma dúvida mais especifica a gente fica feliz em ajudar.

 
TraderOpty:

Bom dia.

Estou construindo um EA para testar uma estratégia e não estou conseguindo finalizar meu projeto

Alguem sabe como resolver os erros a seguir:



Sim, eu sei.

 
Ricardo Rodrigues Lucca #:

Não tente gerar código automaticamente que dá nisso, se voce conhece programação é fácil resolver esses problemas. Se tiver uma dúvida mais especifica a gente fica feliz em ajudar.

Conheço pouco de programação e falta pouco para terminar esta estratégia.

O que eu preciso é criar o comando que le a hora que quero iniciar o sinal, exemplo a entrada é as 15:30 do metatrader,

então eu coloco na opção de horário que a ordem seja as 15:30 e ele le e faz a entrada

Tentei criar via internet e sempre da o mesmo erro somente nos parametros acima.

Vou tentar estudar mais um pouco para ver qual a maneira de colocar a leitura do horário 

 
TraderOpty #:

Conheço pouco de programação e falta pouco para terminar esta estratégia.

O que eu preciso é criar o comando que le a hora que quero iniciar o sinal, exemplo a entrada é as 15:30 do metatrader,

então eu coloco na opção de horário que a ordem seja as 15:30 e ele le e faz a entrada

Tentei criar via internet e sempre da o mesmo erro somente nos parametros acima.

Vou tentar estudar mais um pouco para ver qual a maneira de colocar a leitura do horário 

Comece com o que pode ser feito edit o codigo que nem o colega disse pra melhorar a visualização que é incrivel que um moderador não deletou ainda. Fora isso, tu pode mostrar como tentou fazer essas funções.
 
Ricardo Rodrigues Lucca #:
Comece com o que pode ser feito edit o codigo que nem o colega disse pra melhorar a visualização que é incrivel que um moderador não deletou ainda. Fora isso, tu pode mostrar como tentou fazer essas funções.

Oi Ricardo, eu tinha um projeto e comecei usando o Chatgpt para construir o que eu estava pensando, ao colocar no metaeditor para testar, apareceu alguns erros, 

a maioria foi sendo corrigida e no final ficou este erro de interpretar o horário.

 
Ricardo Rodrigues Lucca # Comece com o que pode ser feito edit o codigo que nem o colega disse pra melhorar a visualização que é incrivel que um moderador não deletou ainda . [ . . . ]

Pois é, o @Fernando Carreiro vinha colocando ordem na bagunça, mas resolveu dar um tempo deste fórum... Último comentário dele até o momento:

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

[ . . . ]

Fernando Carreiro , 2023.07.07 00:26

Não, não para férias. Eu só quero me afastar deste fórum em particular por um tempo!
Está fazendo falta, hein, Fernando!! 😊👍
 
TraderOpty #:

Oi Ricardo, eu tinha um projeto e comecei usando o Chatgpt para construir o que eu estava pensando, ao colocar no metaeditor para testar, apareceu alguns erros, 

a maioria foi sendo corrigida e no final ficou este erro de interpretar o horário.

Eu recomendaria conhecer programação e logica para conseguir resolver esses erros que parecem simples.