Страница 1 из 1
не вызывается OnParametersChange
Добавлено: Вс окт 14, 2007 4:16 am
Rmax
В функции OnParametersChange сделал Print("1");
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
Re: не вызывается OnParametersChange
Добавлено: Вс окт 14, 2007 3:07 pm
Terranin
Rmax писал(а):В функции OnParametersChange сделал Print("1");
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
А была ли эта процедура описана как внешняя в разделе Exports? Если она не была описана то программа считает что такого метода в индикаторе нет и не вызывает его.
Re: не вызывается OnParametersChange
Добавлено: Вс окт 14, 2007 4:31 pm
Rmax
Terranin писал(а):Rmax писал(а):В функции OnParametersChange сделал Print("1");
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
А была ли эта процедура описана как внешняя в разделе Exports? Если она не была описана то программа считает что такого метода в индикаторе нет и не вызывает его.
да, описана
Re: не вызывается OnParametersChange
Добавлено: Вс окт 14, 2007 4:45 pm
Terranin
Rmax писал(а):Terranin писал(а):Rmax писал(а):В функции OnParametersChange сделал Print("1");
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
А была ли эта процедура описана как внешняя в разделе Exports? Если она не была описана то программа считает что такого метода в индикаторе нет и не вызывает его.
да, описана
Скинь скомпиллированный индикатор и исходник - погляжу.
Добавлено: Вс окт 14, 2007 8:02 pm
Rmax
скинул в личку
Добавлено: Пн окт 15, 2007 1:10 pm
Rmax
Подвижки есть?
Добавлено: Пн окт 15, 2007 4:14 pm
Terranin
Rmax писал(а):Подвижки есть?
Ошибка в документации. Не OnParametersChange а OnParamsChange. Программа не находила функцию.
Добавлено: Пн окт 15, 2007 8:45 pm
Rmax
удалено
Добавлено: Пн окт 15, 2007 9:00 pm
Rmax
Terranin писал(а):Rmax писал(а):Подвижки есть?
Ошибка в документации. Не OnParametersChange а OnParamsChange. Программа не находила функцию.
Работает, но странно. Почему функция отрабатывает в момент запуска ФТ? Никаких связываний на этом этапе происходить не должно. Я пытаюсь вызвать Symbol() в этой функции, при запуске тестера Symbol() отрабатывает некорректно, соответственно, индюк не подцепляется.
Вижу смысл в добавлении в структуру индикатора инициализирующей функции, которая будет вызываться только при запуске ФТ. В ней задавать имя индюка.
Нынешняя функция Init должна вызываться только при связывании индюка с таймфреймом-валютой.
Функция OnParamsChange должна вызываться после Init и затем на смену параметров.
К сожалению, такое изменение поломает существующие индюки. Хотя, можно оставить функцию Init как запускающуюся при старте ФТ, и добавить новую функцию InitIndicator.
Добавлено: Вт окт 16, 2007 3:49 pm
Terranin
Rmax писал(а):Terranin писал(а):Rmax писал(а):Подвижки есть?
Ошибка в документации. Не OnParametersChange а OnParamsChange. Программа не находила функцию.
Работает, но странно. Почему функция отрабатывает в момент запуска ФТ? Никаких связываний на этом этапе происходить не должно. Я пытаюсь вызвать Symbol() в этой функции, при запуске тестера Symbol() отрабатывает некорректно, соответственно, индюк не подцепляется.
Вижу смысл в добавлении в структуру индикатора инициализирующей функции, которая будет вызываться только при запуске ФТ. В ней задавать имя индюка.
Нынешняя функция Init должна вызываться только при связывании индюка с таймфреймом-валютой.
Функция OnParamsChange должна вызываться после Init и затем на смену параметров.
К сожалению, такое изменение поломает существующие индюки. Хотя, можно оставить функцию Init как запускающуюся при старте ФТ, и добавить новую функцию InitIndicator.
При запуске FT создается список индикаторов и для каждого вызывается Init которая создает все переменные и буферы, иначе как бы программа знала сколько переменных и какого типа они еще до установки индикатора на чарт?
Индикатор создается с установками по умолчанию, потом если настройки индикатора менялись раньше то они сохранились и применяются к индикатору что приводит к вызову OnParamsChange. Я не предполагал там использование функций связанных с валютой, обычно индикатору все равно где работать - он работает с барами.
Добавлено: Ср окт 17, 2007 1:14 am
Rmax
Terranin писал(а):
При запуске FT создается список индикаторов и для каждого вызывается Init которая создает все переменные и буферы, иначе как бы программа знала сколько переменных и какого типа они еще до установки индикатора на чарт?
Вот именно для этого я и предлагаю разнести Init на две функции.
Terranin писал(а):
Индикатор создается с установками по умолчанию, потом если настройки индикатора менялись раньше то они сохранились и применяются к индикатору что приводит к вызову OnParamsChange. Я не предполагал там использование функций связанных с валютой, обычно индикатору все равно где работать - он работает с барами.
OnParamsChange по моему разумению должна вызваться уже непосредственно при добавлении индюка на чарт.
Понятно, что этого в ближайшее время не будет. Но может быть когда-нибудь в будущем...