Guarda come scaricare robot di trading gratuitamente
Ci trovi su Facebook!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Librerie

Result - type-safe error handling for MQL5 without exceptions - libreria per MetaTrader 5

Maksym Yaroslavovych Libovych
Maksym Yaroslavovych Libovych
  • Software Engineer | .NET | MQL5 | NinjaTrader al  Self-employed
  • Ucraina
  • 198
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.
| Italian English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
Visualizzazioni:
50
Valutazioni:
(2)
Pubblicato:
Aggiornato:
\MQL5\Include\ \MQL5\Include\Common\ \MQL5\Scripts\
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Scopo

Questo file di inclusione fornisce un tipo di ritorno "valore o errore" per MQL5, in modo che le funzioni possano segnalare esplicitamente il successo o il fallimento invece di ricorrere allo stato globale di GetLastError() / ResetLastError() — che è facile da dimenticare, facile da sovrascrivere e impone l'uso di parametri di uscita e valori di ritorno "magici".


Cosa fa

Una funzione restituisce un oggetto che contiene un valore o un errore; il chiamante deve verificare il contenuto prima di utilizzare il valore.

  • ResultValue<T> — per i tipi di valore (numeri, strutture).
  • Result<T> — lo stesso contratto per gli oggetti gestiti tramite puntatore (classi).
  • Error — una struttura leggera (codice + descrizione); i codici vengono mappati su nomi leggibili tramite EnumToString.
  • MQLError — un wrapper leggero su GetLastError / ResetLastError / SetUserError.
  • Macro — TRY , RETURN_ON_ERROR , PRINT_ON_ERROR , RETURN_SAME_ON_ERROR , RESULT_ON_ERROR — per la propagazione del ritorno anticipato senza codice boilerplate.
  • Callback opzionali — Then , Match , MapError ( accettano funzioni di primo livello o statiche; MQL5 non supporta le chiusure).

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

Utilizzo

Gestione degli errori

// Funzioni di stage (di primo livello — MQL5 non prevede chiusure)
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); }

// Il flusso di lavoro: lettura -> convalida -> trasformazione -> (annotazione dell'errore) -> gestione
void RunPipeline()
{
   SymbolDouble("EURUSD", SYMBOL_BID)
      .Then(EnsurePositive)
      .Then(ToPips)
      .MapError(Describe)
      .Match(OnOk, OnFail);
}

Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/74427

Mediana Trendline Mediana Trendline

Draws parallel trend channels (Median, High, Low) on the current chart based on the last two closed candles of up to 7 higher timeframes (MN1, W1, D1, H4, H1, M30, M15), with individually configurable colors and line styles for each timeframe.

Advanced Risk Manager: Auto Suffix Detection  Multi Currency Lot Sizer Advanced Risk Manager: Auto Suffix Detection Multi Currency Lot Sizer

Advanced MQL5 risk management class providing deterministic lot sizing, auto-suffix detection, and cross-currency triangular conversion.

Pip Value Calculator Pip Value Calculator

Valore pip in tempo reale, determinazione delle dimensioni dei lotti in base al rischio, analisi personalizzata del rischio legato al volume e P/L delle posizioni aperte: tutto in un unico pannello.

SniperGold SMC ProPlus  (Institutional Smart Money Concepts) SniperGold SMC ProPlus (Institutional Smart Money Concepts)

SMC chart indicator: market structure (BOS/CHoCH), volume weighted order blocks, multi timeframe FVG, equal highs/lows, liquidity sweeps, premium/discount zones, a 3 time frame bias panel and an optional trade setup readout. Closed bar logic only (no repaint). It draws and alerts, it does not place trades.