Некорректно написанный индикатор может завесить терминал.
Модераторы не занимаются проверкой чужого кода. Если хотите получить помощь, просто приложите свой индикатор в тему и наверняка найдутся люди, кто проверит код и укажет на ошибку.
Некорректно написанный индикатор может завесить терминал.
Модераторы не занимаются проверкой чужого кода. Если хотите получить помощь, просто приложите свой индикатор в тему и наверняка найдутся люди, кто проверит код и укажет на ошибку.
Я ошибок не нашел, хотя смотрел только проблемный участок. Дело в другом.
Если есть обоснованные подозрения на ошибку терминала, то лучше сразу слать исходный код Славе Старикову (stringo) на емайл stringo AT metaquotes . ru
Код после проверки будет удален.
Некорректно написанный индикатор может завесить терминал.
Модераторы не занимаются проверкой чужого кода. Если хотите получить помощь, просто приложите свой индикатор в тему и наверняка найдутся люди, кто проверит код и укажет на ошибку.
Написано более 50 функций... Каждая по отдельности работает нормально... При соединении их в единое целое - "виснет"... Думаю проблема в самом терминале...
Было несколько вариантов...
В первом использовал глобальные переменные... при изменении значения глобальной переменной - терминал "зависает"...
Заменил глобальные переменные функциями... таже история...
Только теперь совсем уж начались "чудеса"...
Проблемы начинаются в функции
int OrdTotals(int i,int index,bool check=true) { static int total,add; int Totals[]; //--- if(check) { // Размер массива Orders[] можно увеличивать/уменьшать на 1 if(i!=-1 && i!=0 && i!=1) return(-1); total+=i; // Возвращает номер тикета if(i==0) { // if(index<0) // return(total); return(Totals[index]); } // Возвращает общее количество открытых и отложенных ордеров, добавляет новый элемент в массив // Параметр index - это новое значение элемента массива (номер записи в базе ордеров) if(i==1) { if(total>=add) { add+=100; ArrayResize(Totals,add); } Totals[total-1]=index; } // Возвращает общее количество открытых и отложенных ордеров, уменьшает размер массива // Запись массива index-1 удаляется. На его место записывается последняя запись массива if(i==-1) { Totals[index]=Totals[total]; Totals[total]=0; } return(total); } else { // Инициализация. Остальные формальные параметры игнорируются if(total==0) return(total); total=0; ArrayInitialize(Totals,0); return(total); } }
В ней закомментированы 2 строчки: возвращает общее количество открытых ордеров... Если вставить эти 2 строчки. то мы в стопоре...
Функция не возвращает значение.. зацикливается сама на себя....
Если есть обоснованные подозрения на ошибку терминала, то лучше сразу слать исходный код Славе Старикову (stringo) на емайл stringo AT metaquotes . ru
Код после проверки будет удален.
Я отослал Славе Старикову (stringo) код и скомпилированый файл через личное сообщение... Но похоже личные сообщения модераторами не читаются....
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Помогите решить проблему....
Сделал индикатор... Скомпилировал... все в норме... присоединяю к графику - "виснет" терминал... Никаких логов, никаких зацепок нет...
Прошерстил код... Выяснил, что зависает на одной функции.. Точнее, при выходе из функции... Тестировал функцию отдельно - работает как часы....
Модераторы отзовитесь... Помогите решить проблему.... Код и скомпилированый файл отправлю в личку...