Что вызывает ошибку переполнения стека в mql4? Я подозреваю использование функции для создания объектов. Ниже приведена функция, которая была вызвана более сотни раз для создания объектов.
Ниже приведен один пример использования.
Я создал другое такое же количество объектов обычным способом, не получив этой ошибки, но когда я ввел и использовал эту функцию для создания оставшихся объектов, ошибка выскочила. Смотрите пример ниже, в котором ошибка не возникает, хотя он более трудоемкий по количеству объектов.
И еще одно, значения для OBJPROP_XDISTANCE и OBJPROP_YDISTANCE должны быть int, а не double.
У меня никогда не было переполнения стека, из того, что я читал, они часто вызваны рекурсией, но я не вижу этого в коде, который вы опубликовали... почему тип вашей функции int? какой смысл передавать переменную double zoom, если вы ее не используете?
И еще одно, значения для OBJPROP_XDISTANCE и OBJPROP_YDISTANCE должны быть int, а не double.
Вот это меня и озадачивает.
У меня никогда не было переполнения стека, из того, что я читал, они часто вызваны рекурсией, но я не вижу этого в коде, который вы опубликовали ... почему тип вашей функции int? какой смысл передавать переменную double zoom, если вы ее не используете?
И еще одно, значения для OBJPROP_XDISTANCE и OBJPROP_YDISTANCE должны быть int, а не double.
Я сделал несколько операций по поиску и замене и пока не смог исправить нижнюю часть индикатора.
У меня никогда не было переполнения стека, из того, что я читал, они часто вызваны рекурсией, но я не вижу этого в коде, который вы опубликовали ... почему тип вашей функции int? какой смысл передавать переменную double zoom, если вы ее не используете?
И еще одно, значения для OBJPROP_XDISTANCE и OBJPROP_YDISTANCE должны быть int, а не double.
Человек, пожалуйста, прочитайте больше книг по ObjectSet(). Подождите, позвольте мне помочь. Ниже приведен отрывок.
bool ObjectSet( string name, int index, double value)
Человек, пожалуйста, прочитайте больше книг по ObjectSet(). Подождите, позвольте мне помочь. Ниже приведен отрывок.
Я посмотрю вашу цитату и подниму вам это ...
OBJPROP_XDISTANCE | 102 | int | Целочисленное значение для установки/получения свойства объекта "Расстояние якоря X" в пикселях. |
OBJPROP_YDISTANCE | 103 | int | Целочисленное значение для установки/получения свойства объекта расстояния до якоря Y в пикселях. |
Вы бы использовали для этого двойное значение?
OBJPROP_BACK | 9 | bool | Булево значение для установки/получения флага фонового рисунка для объекта. |
OBJPROP_RAY | 10 | bool | Булево значение для установки/получения флага луча для объекта. |
OBJPROP_ELLIPSE | 11 | bool | Булево значение для установки/получения флага эллипса для дуг fibo. |
tonny: Я действительно запутался в том, что вы ожидали. Я тоже никогда не получал ошибку "переполнения стека" во время компиляции. Не могли бы вы дать нам точные указания, как мы должны воспроизвести проблему?
Я посмотрю вашу цитату и подниму вас с этим ...
Вы бы использовали двойника для этого?
В том, что я делаю, нет никакой разницы, есть нечто большее, чем то немногое, что я разместил здесь.
Если вы не хотите публиковать весь код, чтобы ошибка могла быть воспроизведена, пожалуйста, напишите код, который вы можете опубликовать полностью, чтобы воспроизвести ту же ошибку.
Я провел эксперимент и заменил некоторые из таких объектов.
ObjectCreate("EURUSD", OBJ_LABEL, 0, 0, 0); // Creating obj. ObjectSet("EURUSD", OBJPROP_CORNER, 0); // Reference corner ObjectSet("EURUSD", OBJPROP_XDISTANCE, Column1x*ZoomTimes);// X coordinate ObjectSet("EURUSD", OBJPROP_YDISTANCE, ZoomTimes*15);// Y coordinate
и использовал стиль функции, как показано ниже, и ошибка исчезла. Это похоже на то, что IDE может принять меньше вышеперечисленных объектов, чем нижеперечисленных. Попробуйте заменить все вышеперечисленные стили на нижеприведенные и посмотрите, может ли появиться что-то еще.
ObCreate("EURUSD",Column1x,15,ZoomTimes);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Что вызывает ошибку переполнения стека в mql4 при компиляции? Я подозреваю использование функции для создания объектов. Ниже приведена функция, которая была вызвана более сотни раз для создания объектов.
Ниже приведен один пример использования.
Я создал другое такое же количество объектов обычным способом, не получив этой ошибки, но когда я ввел и использовал эту функцию для создания оставшихся объектов, ошибка выскочила. Смотрите пример ниже, в котором ошибка не возникает, хотя он более трудоемкий по количеству объектов.