Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

Result - type-safe error handling for MQL5 without exceptions - librería para MetaTrader 5

Maksym Yaroslavovych Libovych
Maksym Yaroslavovych Libovych
  • Software Engineer | .NET | MQL5 | NinjaTrader en  Self-employed
  • Ucrania
  • 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.
| Spanish English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Visualizaciones:
13
Ranking:
(1)
Publicado:
\MQL5\Include\Common\ \MQL5\Include\
MqlError.mqh (8.26 KB) ver
\MQL5\Scripts\
ResultDemo.mq5 (4.17 KB) ver
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Objetivo

Este archivo de inclusión proporciona un tipo de retorno de valor o error para MQL5, de modo que las funciones puedan informar explícitamente del éxito o el fracaso, en lugar de hacerlo a través del estado global de GetLastError() / ResetLastError() —que es fácil de olvidar, fácil de sobrescribir y obliga a utilizar parámetros de salida y valores de retorno «mágicos».


Qué hace

Una función devuelve un objeto que contiene un valor o un error; el llamante debe comprobarlo antes de utilizar el valor.

  • ResultValue<T> para tipos de valor (números, estructuras).
  • Result<T> el mismo contrato para objetos almacenados mediante puntero (clases).
  • Error una estructura ligera (código + descripción); los códigos se asocian a nombres legibles mediante EnumToString.
  • MQLError una envoltura ligera sobre GetLastError / ResetLastError / SetUserError.
  • Macros — TRY , RETURN_ON_ERROR , PRINT_ON_ERROR , RETURN_SAME_ON_ERROR , RESULT_ON_ERROR para la propagación de retornos anticipados sin código repetitivo.
  • Callbacks opcionales — Then , Match , MapError ( aceptan funciones de nivel superior o estáticas; MQL5 no admite clausuras).

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

Uso

Gestión de errores

// Funciones de etapa (nivel superior — MQL5 no admite clausuras)
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); }

// El proceso: leer -> validar -> transformar -> (anotar el error) -> gestionar
void RunPipeline()
{
   SymbolDouble("EURUSD", SYMBOL_BID)
      .Then(EnsurePositive)
      .Then(ToPips)
      .MapError(Describe)
      .Match(OnOk, OnFail);
}

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/74427

SimpleTradeStats SimpleTradeStats

Estadísticas de operaciones cerradas. El indicador muestra los resultados de las operaciones, filtrados por número mágico.

V1N1 LONNY MT5 V1N1 LONNY MT5

EA de day trading para la ruptura del rango asiático. Multisímbolo, M15/M30/H1. Coloca órdenes stop pendientes durante la sesión de Londres fuera del rango asiático previo a Londres, utilizando señales PSAR + MACD + estocástico, con gestión automática del horario de verano de Londres y Nueva York, stops estructurales, trailing stop y break-even.

Pip Value Calculator Pip Value Calculator

Valor del pip en tiempo real, cálculo del tamaño de la operación en función del riesgo, análisis personalizado del riesgo por volumen y pérdidas y ganancias de las posiciones abiertas: todo en un único panel.

SR Zone Scanner SR Zone Scanner

Escáner de zonas de soporte y resistencia en varios marcos temporales con índice de fuerza y alertas instantáneas: M15, H1, H4, D1.