Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
Result - type-safe error handling for MQL5 without exceptions - biblioteca para MetaTrader 5
- Visualizações:
- 16
- Avaliação:
- Publicado:
-
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
// 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
Estatísticas de operações concluídas. O indicador mostra os resultados das negociações, filtrados por número mágico.
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
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
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.
