Помогите разобраться с оптимизацией - страница 2

 
Алексей Тарабанов:
Андрей, Вы все еще используете "статические" переменные? 
Да, бывает. А что с ними не так?
 
Andrey Khatimlianskii:
Да, бывает. А что с ними не так?
Чрезмерно статические. На любителя, короче... 
 
Алексей Тарабанов:
Чрезмерно статические. На любителя, короче... 

Хорошо сказано )

Ну да, круг применения весьма узкий. 

 
Andrey Khatimlianskii:

Достаточно переменных, объявленных на глобальном уровне видимости (вне функций) или статических переменных.

Глобальные нужны, чтоб хранить состояние между запусками советника или терминала.

Я использую string массив, где хранятся значения уровней(цен) пока уровни не перестроятся заново. Затем в массив записываются новые значения и сравниваются с текущей ценой, в зависимости от этого устанавливаются ордеры. На тестере и визуализации работает, на оптимизации нет.
 
baromix:
Я использую string массив, где хранятся значения уровней(цен) пока уровни не перестроятся заново. Затем в массив записываются новые значения и сравниваются с текущей ценой, в зависимости от этого устанавливаются ордеры. На тестере и визуализации работает, на оптимизации нет.
В зачем string массив? или вы не знаете что  такое double ? 
 
baromix:
Я использую string массив, где хранятся значения уровней(цен) пока уровни не перестроятся заново. Затем в массив записываются новые значения и сравниваются с текущей ценой, в зависимости от этого устанавливаются ордеры. На тестере и визуализации работает, на оптимизации нет.
Значит, ошибка в коде. Если под "уровнями" не подразумеваются уровни графических объектов.
 
Dmitiry Ananiev:
В зачем string массив? или вы не знаете что  такое double ? 
Просто строятся несколько уровней и они записываются в string[порядковый номер уровня].
 
Andrey Khatimlianskii:
Значит, ошибка в коде. Если под "уровнями" не подразумеваются уровни графических объектов.
Расчёт значений уровней и запись их в массив происходит до построения самих графических объектов(линий). Уровни строятся уже по значениям из массива.
 
baromix:
Просто строятся несколько уровней и они записываются в string[порядковый номер уровня].

Зачем string? Значение уровня - это double.

Где объявлен массив? Должен быть вне всех функций (на глобальном уровне).

Где-то еще есть запись или изменение размера массива? Проверьте, чтоб информация не затиралась.

Как вы получаете значения - по прежнему из объектов или из массива?

Больше без кода ничего не подскажу, не хочу гадать. 

 
Andrey Khatimlianskii:

Зачем string? Значение уровня - это double.

Где объявлен массив? Должен быть вне всех функций (на глобальном уровне).

Где-то еще есть запись или изменение размера массива? Проверьте, чтоб информация не затиралась.

Как вы получаете значения - по прежнему из объектов или из массива?

Больше без кода ничего не подскажу, не хочу гадать. 

Массив объявлен как глобальный(вне функции OnTick()).

Изменение размера массива не происходит. Меняются только значения массива, когда перестраиваются уровни.

Значения находятся путём математических вычислений, которые и записываются в массив на текущее событие OnTick(), и по этим значениям строятся линии, но по сути дела они не участвуют в торговле,только для наглядности.

Значения пересчитываются и уровни перестраиваются(соответственно) только при достижении определённых условий(изменения цены и времени).

Спасибо.

Причина обращения: