Возможно ли создать какую-либо функцию размещения "mql кода" на этом форуме? - страница 3

 

И этот пост о том, как найти/исправить нулевое отклонение: https://www.mql5.com/en/forum/general

 

Есть некоторые объяснения функций:

- Коллекция полезных функций MT4 для кодирования от wolfe.

- Профессиональная функция MM от Nicholishen.

- Функция Money Managment от Kalenzo.

- несколько простых кодов ММ.

- Функция FILE_READ | FILE_WRITE.

- Функция DefindTrade(...) от phoenix.

- Функция формата даты.

- функция отображения предупреждений.

- функция sleep().

- Функция для высоких и низких значений.

- Функция iCustom: хорошая трея от Codersguru.

- ссылки на функции email/sms.

- все функции на сайте Codersguru.

- Функция, возвращающая массив.

- Функция IsStopped( ).

- Как использовать функцию Hour().

- Функция для эффективного закрытия всех ордеров.

- Оповещение один раз.

- Алерты: множество функций и примеров.

- Очень ВАЖНО для ВСЕХ индикаторов MTF.

- Easy iCustom and Alerts!: очень хорошая тема от Codersguru.

- Самый высокий уровень.

- Как подавать алерт только на закрытии свечи.

- ссылки на функции icustom.

- исправление нулевого отклонения.

- полная фиксация нулевого отклонения.

- другие функции управления капиталом.

- как закодировать один ордер на MetaTrader, или один ордер на симбол (eurusd, gbpusd ...), или один ордер на график, или один на свечу.

 

Если брокер добавит еще одну цифру?

https://www.mql5.com/en/forum/179191

 

Необычная ошибка

Привет, друзья,

Я кодировал советника и столкнулся с необычной ошибкой. Поэтому я хотел бы попросить вашей помощи с этой ошибкой на MT4, которая, я думаю, некоторые из вас, в вашем опыте, возможно, уже сталкивались с тем же самым.

Чтение всего советника может быть нецелесообразным, исходный код очень большой.

После успешной компиляции, в тестере, журнал МТ4 выдает следующую ошибку

Время: 2011.01.28 23:35:36

Сообщение: 2007.07.13 00:00 InterCandles EURUSDFXF,H4: переполнение стека.

Даже подняв размер стека до небес через

#property stacksize 167692160

которое, как я полагаю, выделяет 16MB памяти, ошибка сохраняется.

Кто-нибудь сталкивался с такой же проблемой"переполнения стека" в тестере, или может указать, является ли проблема внутренней в MT4, или в советнике (возможно, в массиве, вложенных объявлениях, слишком большом файле ex4 и т.д.)?

Я ценю вашу помощь и прошу прощения за то, что отнял у вас время.

Спасибо.

 

Решение проблемы

Пока никто не ответил, я нашел решение.

Перед использованием функции, сразу после того, как тестер загружает советника - который ссылается на приложенную библиотеку - в журнале появляется сообщение "stack overflow".

Проблема обнаружена с функцией под названием "power", в приложенном файле. Мои выводы следующие:

1) Конечно, нет никакой проблемы с ее названием; в таблице символов EX4 нет коллизии MQL-функции. Другие метки были протестированы.

2) Очевидно, не был достигнут предел функций. После удаления проблемной функции добавлялись другие функции, и ошибка не возникала. Работает правильно только при удалении этой функции, а не только при развязывании в EX4 файле через компилятор MT4.

3) Рекурсия выполняется через множество вызовов, а результаты остаются в стеке. Стек растет линейно асимптотически по мере экспоненциального роста аргумента `exponent'. Потенциально стек может достичь своего предела и переполниться. Ошибка "переполнение стека" появляется независимо от выполнения этой функции.

Поэтому я предполагаю, что компилятор MT4 может иметь устройство, обнаруживающее [некоторые классы] рекурсии, которые не разрешены в языке, избегая потенциального переполнения стека во время выполнения советника.

Файлы:
Причина обращения: