Прошу потестировать индикатор, чисто технически - работает/не работает.
На одном из компьютеров индикатор не отображается.
Массивы это не игрушка. В массивах (если их не инициализировать) содержится мусор. Как мусор можно присваивать?
if(prev_calculated<1) { ArrayInitialize(BufferSARUP,EMPTY_VALUE); ArrayInitialize(BufferSARDN,EMPTY_VALUE); if(InpPriceMode==PRICE_MODE_HL) { HiPrice[0]=HighValue[0]=high[0]; LoPrice[0]=LowValue[0]=low[0]; HiPrice[1]=high[1]; LoPrice[1]=low[1];
Или, по крайней мере, пишите более корректно:
if(prev_calculated<1) { ArrayInitialize(BufferSARUP,EMPTY_VALUE); ArrayInitialize(BufferSARDN,EMPTY_VALUE); if(InpPriceMode==PRICE_MODE_HL) { HiPrice[0]=high[0]; HighValue[0]=high[0]; LoPrice[0]=low[0]; LowValue[0]=low[0]; HiPrice[1]=high[1]; LoPrice[1]=low[1];
То есть не используйте в одно строке НЕСКОЛЬКО знаков присвоения "=".
Массивы это не игрушка. В массивах (если их не инициализировать) содержится мусор. Как мусор можно присваивать?
Совершенно верно, но все буфера полностью заполняются при расчёте, ArrayInitialize в данном случае излишне.
Или, по крайней мере, пишите более корректно:
То есть не используйте в одно строке НЕСКОЛЬКО знаков присвоения "=".
Присвоение одного значения нескольким переменным в одной строке корректно.
Справка:
В выражении оператор присваивания может присутствовать много раз. В этом случае обработка выражения ведется справа налево.
Таки индикатор отображается или нет?)
Совершенно верно, но все буфера полностью заполняются при расчёте, ArrayInitialize в данном случае излишне.
Присвоение одного значения нескольким переменным в одной строке корректно.
Справка:
Таки индикатор отображается или нет?)
Вы присваиваете мусор:
HiPrice[0]=HighValue[0]=high[0];
Перепишите сначала с одним "=".
Только после этого я буду смотреть дальше.
Или, по крайней мере, пишите более корректно:
То есть не используйте в одно строке НЕСКОЛЬКО знаков присвоения "=".
Почему? Что мешает?
Совершенно верно, но все буфера полностью заполняются при расчёте, ArrayInitialize в данном случае излишне.
Присвоение одного значения нескольким переменным в одной строке корректно.
Справка:
Таки индикатор отображается или нет?)
Каковы вообще проблемы с ним?
Индикатор, если он стрелочный, требует на каждом тике сначала присваивать его буферам пустые значения, а затем уже всё рассчитывать и присваивать нужные значения.
При первом запуске и при обновлении исторических данных, инициализируете все его массивы, а затем - как выше написал.
BufferTrend бесконтрольный.
Содержит мусор, потом на основании мусора попытки принимать решение. Нельзя забывать про массивы. Если есть массив - необходимо пройтись по нему и инициализировать значением.
Каковы вообще проблемы с ним?
Индикатор, если он стрелочный, требует на каждом тике сначала присваивать его буферам пустые значения, а затем уже всё рассчитывать и присваивать нужные значения.
При первом запуске и при обновлении исторических данных, инициализируете все его массивы, а затем - как выше написал.
Владимир нашёл ошибку.
Да, всё именно так и было сделанно, при переписывании строка потерялась.
Владимир нашёл ошибку.
Да, всё именно так и было сделанно, при переписывании строка потерялась.
Индикатор стал работать? Проблема ушла?
Индикатор стал работать? Проблема ушла?
Да, проблема решилась, всем спасибо
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
На одном из компьютеров индикатор не отображается.