Unisciti alla nostra fan page
- Visualizzazioni:
- 26
- Valutazioni:
- Pubblicato:
-
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
// 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)
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
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
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)
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.
