Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
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
  • 185
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:
26
Valutazioni:
(1)
Pubblicato:
\MQL5\Include\Common\ \MQL5\Include\ \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

Clock (Spread) Clock (Spread)

What this indicator does Clock (Spread).mq5 is a MetaTrader 5 chart indicator that displays a small text label in the corner of the chart showing: Countdown timer until the current candle closes (in HH:MM:SS or MM:SS format, depending on timeframe) Current spread (Ask − Bid, in points), shown in parentheses next to the timer

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.

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.