Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 600
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Приветствую! :)
Имеется примерно такой код индикатора:
Бросаю на М1 график. Индикатор виснет вместе с терминалом, якобы выполняя расчеты.
Минут через 15 принудительно его закрываю, открываю лог и вижу:
Получается, что индикатор не реагирует на вновь приходящие тики (логично) пока не просчитает первый раз. НО! При просчете забывает сообщить терминалу что IndicatorConted() надо уже присвоить значение отличное от 0.
То есть выходит, что вновь приходящие тики, встающие в очередь на просчет запоминают текущее значение IndicatorCounted()???
Пытался контролировать через переменную busy (закомментированная строка - результат тот же).
Пытался и так:
Естественно на этот раз все работало правильно:
Что же получается? Система не успевает записать в IndicatorCounted() новое значение? То есть надо делать типа sleep() что-то? Знаю что в индикаторе нельзя )
Или по приходу нового тика, так как старый еще не закончил расчеты он запоминает что IndicatorCounte() все еще равен нулю и когда приходит его время начинает считать, исходя из старого значения IndicatourCounted()=0?
В общем как быть? )
Приветствую! :)
Имеется примерно такой код индикатора:
Это мой первый опыт, строго не судите:)
Этим всё сказано. На примерно такой код, примерно такой ответ... писать?
Дело в том, что остальной код не имеет значения. Суть ошибки описана в этом куске.
Вообще боялся отпугнуть людей большим постом. И так раздул его.
Если коротко, то можно так сформулировать: Если расчет индикатор рассчитывается продолжительное время (больше минуты), то IndicatorCounted() постоянно возвращает 0.
Честно говоря, мне кажется, что в тестере запоминается прошлое значение переменной - с прошлого теста. Каким образом - ХЗ, времени мало на разборы полётов. Может баг терминала. Просто вставил в код комментарий и вывод значений в журнал. Выходит так, что при каждом новом запуске теста в переменной sys сохраняется значение из предыдущего теста. Фигня какая-то. Мож кто ещё увидит, мож глаз замылился у меня...
Просто ты забыл о том, что строка
при перевызове свойств индикатора выполняться не будет.
Досконально не вникал, но может так будет достигнут желаемый результат?
Просто ты забыл о том, что строка
при перевызове свойств индикатора выполняться не будет.
Досконально не вникал, но может так будет достигнут желаемый результат?
Дело в том, что остальной код не имеет значения. Суть ошибки описана в этом куске.
Вообще боялся отпугнуть людей большим постом. И так раздул его.
Если коротко, то можно так сформулировать: Если расчет индикатор рассчитывается продолжительное время (больше минуты), то IndicatorCounted() постоянно возвращает 0.
Да не в этом дело. Никому не нужен твой полный секретный код. Просто напиши полный тестовый кусок кода в котором будет та непонятка. А так
когда ты заремил выделенную строку??? Телепаты не помогут, а простые смертные и тем-более...
Потом вот эта часть
я не знаю от какого программиста это пошло, но что-то тут совсем неадекватно написано... Не в твой адрес камень. Ты как многие просто взял код и пытаешься его править...
Если переменная counted_bars равна количеству баров, не измененных после последнего вызова индикатора (первая строка)
То как она может стать меньше нуля что её проверяют if(counted_bars < 0) я никогда не смогу понять...
Дальше тоже чушь но мне уже лениво это разбирать...
Просто ты забыл о том, что строка
при перевызове свойств индикатора выполняться не будет.
Досконально не вникал, но может так будет достигнут желаемый результат?
я пробовал так.. не работает..
Вообще - советник. Но ХЗ, нет времени на эксперименты. У меня все советники так, как я написал, работают. Надо будет отследить в тестере эту хрень. Когда время будет.
я пробовал так.. не работает..
Я только-что перекомпилировал код в советниках и запустил. При изменении параметра Sys в комментарии это значение меняется.