//+------------------------------------------------------------------+ //| WinFutMsgLogs.mqh | //| Copyright 2025, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2025, MetaQuotes Ltd." #property link "https://www.mql5.com" //+------------------------------------------------------------------+ //| defines | //+------------------------------------------------------------------+ // #define MacrosHello "Hello, world!" // #define MacrosYear 2010 //+------------------------------------------------------------------+ //| DLL imports | //+------------------------------------------------------------------+ // #import "user32.dll" // int SendMessageA(int hWnd,int Msg,int wParam,int lParam); // #import "my_expert.dll" // int ExpertRecalculate(int wParam,int lParam); // #import //+------------------------------------------------------------------+ //| EX5 imports | //+------------------------------------------------------------------+ // #import "stdlib.ex5" // string ErrorDescription(int error_code); // #import //+------------------------------------------------------------------+ #include #include /** * esta sera uma nova class onde estara centralizado os envios de mensagens * de logs, msg de aviso ao usuario para que possa acompanhar o funcionamento * do robo, vamos migrar toda e qualquer msg que tenha saida ao inves * de usar um simples print; */ class WinFutMsgLogs { public: WinFutMsgLogs(void); ~WinFutMsgLogs(void); void WinFutMsgInfoTrace(string); void WinFutMsgOnInit(void); void WinFutMsgLogsSetMagicNumber(void); void WinFutMsgLogsSetMediaMovel(void); void WinFutMsgLogsSetDeInit(void); void WinFutMsgLogsSetLogsOnInit(void); void WinFutMsgLogsSetVerificarNovoDia(void); void WinFutMsgLogsSetInicializarDadosDia(void); void WinFutMsgLogsSetTradingPermitido(void); void WinFutMsgLogsSetHorarioTradingPermitido(void); void WinFutMsgLogsSetHorarioAltaVolatilidade(void); void WinFutMsgLogsSetTemPosicaoAberta(void); void WinFutMsgLogsSetGerenciarPosicao(void); void WinFutMsgLogsSetAnalisarEntrada(void); void WinFutMsgLogsSetAnalisarPriceAction(void); void WinFutMsgLogsSetExecutarOrdem(void); void WinFutMsgLogsSetOnTickTrader(void); void WinFutMsgLogsSetOnTrade(void); void setLogsOnInit(string pSimbolo, string pLotePadrao, double pLoteAltaVolatilidade); }; void WinFutMsgLogs::WinFutMsgLogs(void) { } void WinFutMsgLogs::~WinFutMsgLogs(void){ } void WinFutMsgLogs::WinFutMsgInfoTrace(string msgLog) { Print(msgLog); } void WinFutMsgLogs::WinFutMsgOnInit() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgOnInit - inicializando Clear WinFut Scalper"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetMagicNumber() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetMagicNumber - setando numeros magicos para o robo"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetMediaMovel() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetMediaMovel - Criar handle da média móvel"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetDeInit() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetDeInit - inicializando function DeInit();"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetLogsOnInit() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetLogsOnInit - inicializando function OnInit();"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetVerificarNovoDia() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetVerificarNovoDia - inicializando function para Verificar se é um novo dia"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetInicializarDadosDia() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetInicializarDadosDia - function para Inicializar dados do dia"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetTradingPermitido() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetTradingPermitido - function para verificar se trading está permitido"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetHorarioTradingPermitido() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetHorarioTradingPermitido - function para verificar horário de trading permitido"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetHorarioAltaVolatilidade() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetHorarioTradingPermitido - function para verificar se é horário de alta volatilidade"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetTemPosicaoAberta() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetHorarioTradingPermitido - function para Verificar se tem posição aberta"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetGerenciarPosicao() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetGerenciarPosicao - function Gerenciar posição aberta"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetAnalisarEntrada() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetAnalisarEntrada - Analisar entrada baseada em price action"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetAnalisarPriceAction() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetAnalisarPriceAction - Analisar price action para determinar direção"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetExecutarOrdem() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetExecutarOrdem - Executar ordem"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetOnTickTrader() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetOnTickTrader - inicializando OnTickTrader"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::WinFutMsgLogsSetOnTrade() { string msgInit; msgInit = "WinFutMsgLogs::WinFutMsgLogsSetOnTrade - OnTrade function"; msgInit+= hBovespaLibs.getTimestampBR(); this.WinFutMsgInfoTrace(msgInit); } void WinFutMsgLogs::setLogsOnInit(string pSimbolo, string pLotePadrao, double pLoteAltaVolatilidade) { this.WinFutMsgLogsSetLogsOnInit(); this.WinFutMsgInfoTrace(pSimbolo + " Scalper Clear inicializado com sucesso!"); this.WinFutMsgInfoTrace("Lote padrão: " + pLotePadrao); this.WinFutMsgInfoTrace("Lote alta volatilidade: " + pLoteAltaVolatilidade); }