Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

Result - type-safe error handling for MQL5 without exceptions - biblioteca para MetaTrader 5

Maksym Yaroslavovych Libovych
Maksym Yaroslavovych Libovych
  • Software Engineer | .NET | MQL5 | NinjaTrader em  Self-employed
  • Ucrânia
  • 180
MQL5 Developer — Expert Advisors & Custom Indicators | NinjaTrader, QuantConnect
• I build and maintain algorithmic trading systems in MQL5 — Expert Advisors, custom indicators, and strategy backtesting/optimization.
| Portuguese English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Visualizações:
16
Avaliação:
(1)
Publicado:
\MQL5\Include\Common\ \MQL5\Include\ \MQL5\Scripts\
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Objetivo

Este arquivo de inclusão fornece um tipo de retorno de valor ou erro para o MQL5, de modo que as funções possam relatar sucesso ou falha explicitamente, em vez de por meio do estado global GetLastError() / ResetLastError() — que é fácil de esquecer, fácil de sobrescrever e obriga ao uso de parâmetros de saída e valores de retorno “mágicos”.


O que ele faz

Uma função retorna um objeto que contém um valor ou um erro; o chamador deve verificar antes de usar o valor.

  • ResultValue<T> para tipos de valor (números, estruturas).
  • Result<T> o mesmo contrato para objetos mantidos por ponteiro (classes).
  • Error uma estrutura leve (código + descrição); os códigos são mapeados para nomes legíveis por meio de EnumToString.
  • MQLError um wrapper simples sobre GetLastError / ResetLastError / SetUserError.
  • Macros — TRY , RETURN_ON_ERROR , PRINT_ON_ERROR , RETURN_SAME_ON_ERROR , RESULT_ON_ERROR para propagação de retorno antecipado sem código repetitivo.
  • Callbacks opcionais — Then , Match , MapError ( eles aceitam funções de nível superior ou estáticas; o MQL5 não possui closures).

Acessadores: Value (), ValueOr (fallback), CurrentError (), IsError ().

Uso

Tratamento de erros

// Funções de etapa (nível superior — o MQL5 não possui closures)
ResultValue<double> EnsurePositive(const double &value)
{
   if (value <= 0.0)
   {
      return ResultValue<double>::Fail("price must be positive");
   }
   return ResultValue<double>::Ok(value);
}

ResultValue<double> ToPips(const double &price)
{
   return ResultValue<double>::Ok(price / _Point);
}

Error Describe(const Error &error)
{
   return Error::Create(error.code, "pipeline failed: " + error.description);
}

void OnOk(const double &value)  { PrintFormat("[pipeline] result = %.1f pips", value); }
void OnFail(const Error &error) { PrintFormat("[pipeline] %s", error.description); }

// O fluxo de trabalho: leitura -> validação -> transformação -> (anotação de erro) -> tratamento
void RunPipeline()
{
   SymbolDouble("EURUSD", SYMBOL_BID)
      .Then(EnsurePositive)
      .Then(ToPips)
      .MapError(Describe)
      .Match(OnOk, OnFail);
}

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/74427

SimpleTradeStats SimpleTradeStats

Estatísticas de operações concluídas. O indicador mostra os resultados das negociações, filtrados por número mágico.

V1N1 LONNY MT5 V1N1 LONNY MT5

EA para day trading com ruptura da faixa asiática. Compatível com vários símbolos, M15/M30/H1. Coloca ordens stop pendentes durante o pregão de Londres fora da faixa asiática pré-Londres, utilizando sinais de PSAR + MACD + Estocástico, com ajuste automático para o horário de verão de Londres/Nova York, stops estruturais, trailing stop e break-even.

Pip Value Calculator Pip Value Calculator

Valor do pip em tempo real, cálculo do tamanho da posição com base no risco, análise personalizada do risco por volume e P/L das posições abertas — tudo em um único painel.

SR Zone Scanner SR Zone Scanner

Scanner de zonas de suporte e resistência em vários intervalos de tempo com classificação de força e alertas instantâneos — M15, H1, H4, D1.