МОЗГОВОЙ ШТУРМ - страница 2

 
George Merts:

Правильный вариант - считать значение индикатора самому. Никаких хендлов, релизов, и прочего. Более того, в большинстве случаев индикатор от индикатора - математическими преобразованиями может быть приведен к гораздо более простому виду, в котором считать заметно меньше.

Остается.

Видели описание к функции IndicatorRelease цитата: "Удаление хендла производится сразу, удаление расчетной части индикатора производится через некоторое небольшое время (если обращений к ней больше нет)."

Просто, интересно, как разработчик себе представлял, что кто-то вызовет IndicatorRelease по ошибке и поэтому дадим шанс все вернуть.

 
Sergey Zhukov:

Остается.

Видели описание к функции IndicatorRelease цитата: "Удаление хендла производится сразу, удаление расчетной части индикатора производится через некоторое небольшое время (если обращений к ней больше нет)."

Просто, интересно, как разработчик себе представлял, что кто-то вызовет IndicatorRelease по ошибке и поэтому дадим шанс все вернуть.


Вы думаете, что вы умнее всех?

 
Dmitry Fedoseev:

Вы думаете, что вы умнее всех?

Просто хочу выяснить как другие реализовали данный момент.

George Merts: - предложил очень интересное решение.

Интересно, как вы обошли это ограничение?

 
Sergey Zhukov:

Просто хочу выяснить как другие реализовали данный момент.

George Merts: - предложил очень интересное решение.

Интересно, как вы обошли это ограничение?

Какое "ограничение" ?

Я же написал - стараюсь не использовать стандартные индикаторы, и их значения вычислять самостоятельно.

Но, там где это надо - в функции Init - запрашиваются все необходимые хэндлы, и если все нормально - то они используются. Удаление хэндлов происходит только в функции Deinit() или даже в деструкторе. "Вызывать по ошибке" IndicatorRelease() - просто невозможно, именно потому, что вызов происходит только в специально предназначенных для этого функциях.

ООП - рулит. Деструктор будет вызван автоматически, что гарантирует правильное освобождение выделенных ресурсов. (Речь идет ведь не только об индикаторах, но и о созданных по new объектах)

 

не в обиду 

 

по моему мизерному опыту хочу сказать, что да, автоматическое изменение настроек индикатора значительно повысит гибкость, но какие бы настойки не были установлены советник все равно не будет работать на полном автомате,  так как, допустим, даже если он на автомате будет выбирать  период индикатора который работает очень хорошо,  все равно покажет в какой то момент не то что ожидаешь, допустим сегодня, ни 1 ни 2 период не годятся,   а 3, который нужен. отличается от первого всего на чуть чуть, но это понять только человеку можно

 
George Merts:

Какое "ограничение" ?

Я же написал - стараюсь не использовать стандартные индикаторы, и их значения вычислять самостоятельно.

Но, там где это надо - в функции Init - запрашиваются все необходимые хэндлы, и если все нормально - то они используются. Удаление хэндлов происходит только в функции Deinit() или даже в деструкторе. "Вызывать по ошибке" IndicatorRelease() - просто невозможно, именно потому, что вызов происходит только в специально предназначенных для этого функциях.

ООП - рулит. Деструктор будет вызван автоматически, что гарантирует правильное освобождение выделенных ресурсов. (Речь идет ведь не только об индикаторах, но и о созданных по new объектах)

Вы не поняли.

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

Предусмотреть все возможные варианты на этапе инициализации невозможно, да и нерационально загружать в память сразу все варианты индикаторов в начале теста.


Поэтому для такой стратегии нужно считать индикаторы с нужными параметрами самому.

 
 
George Merts:

Что-то действительно не понял. Зачем создавать хендлы ?

Нужен нам SMA(10) - ну и считаем среднее арифметическое десяти последних цен. Безо всяких индикаторов.

С SМА(10) действительно проблем нет. Они начинаются, когда индикатор более сложный.

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