Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Result - type-safe error handling for MQL5 without exceptions - библиотека для MetaTrader 5

Maksym Yaroslavovych Libovych
Maksym Yaroslavovych Libovych
  • Software Engineer | .NET | MQL5 | NinjaTrader в  Self-employed
  • Украина
  • 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.
| Russian English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Просмотров:
25
Рейтинг:
(1)
Опубликован:
\MQL5\Include\Common\ \MQL5\Include\ \MQL5\Scripts\
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Назначение

Данный файл включения предоставляет тип возврата «значение или ошибка» для MQL5, благодаря чему функции могут явно сообщать об успехе или сбое, а не через глобальное состояние GetLastError() / ResetLastError() — о котором легко забыть, которое легко перезаписать и которое вынуждает использовать выходные параметры и «магические» возвращаемые значения.


Что он делает

Функция возвращает один объект, содержащий либо значение, либо объект Error; вызывающая сторона должна проверить это перед использованием значения.

  • ResultValue<T> для типов значений (числа, структуры).
  • Result<T> аналогичный контракт для объектов, хранящихся по указателю (классы).
  • Error облегчённая структура (код + описание); коды сопоставляются с удобочитаемыми именами с помощью EnumToString.
  • MQLError тонкая оболочка над GetLastError / ResetLastError / SetUserError.
  • Макросы — TRY , RETURN_ON_ERROR , PRINT_ON_ERROR , RETURN_SAME_ON_ERROR , RESULT_ON_ERROR для распространения раннего возврата без шаблонного кода.
  • Дополнительные обратные вызовы — Then , Match , MapError ( они принимают функции верхнего уровня или статические; в MQL5 нет замыканий).

Аксессоры: Value (), ValueOr (fallback), CurrentError (), IsError ().

Использование

Обработка ошибок

// Функции этапа (верхнего уровня — в MQL5 нет замыканий)
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); }

// Потоковый процесс: чтение -> проверка -> преобразование -> (аннотирование ошибки) -> обработка
void RunPipeline()
{
   SymbolDouble("EURUSD", SYMBOL_BID)
      .Then(EnsurePositive)
      .Then(ToPips)
      .MapError(Describe)
      .Match(OnOk, OnFail);
}

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/74427

SpreadAudit - фактический спред брокера из M1-истории SpreadAudit - фактический спред брокера из M1-истории

Скрипт собирает фактический спред вашего брокера из поля spread баров M1 и печатает медиану, 90-й и 99-й перцентили в единицах цены, в пунктах и в долях ATR, а также выгружает в CSV средний и максимальный спред по каждому часу суток. Нужен, чтобы тестировать стратегии против реальных издержек своего счёта, а не против "типичного" спреда из головы.

V1N1 LONNY MT5 V1N1 LONNY MT5

Эксперт-консультант для дневной торговли «Asian Range Breakout». Поддерживает несколько инструментов, таймфреймы M15/M30/H1. Размещает отложенные стоп-ордера во время лондонской сессии за пределами азиатского диапазона, предшествующего лондонской сессии, на основе сигналов PSAR + MACD + Стохастика, с автоматической корректировкой на переход на летнее и зимнее время в Лондоне и Нью-Йорке, а также с использованием структурных стопов, трейлинга и брейк-ивена.

Pip Value Calculator Pip Value Calculator

Текущее значение пипса, определение размера лота с учетом риска, индивидуальный анализ риска по объему и прибыль/убыток по открытым позициям — всё на одной панели.

SR Zone Scanner SR Zone Scanner

Сканер зон поддержки и сопротивления на нескольких таймфреймах с оценкой силы и мгновенными оповещениями — M15, H1, H4, D1.