не вызывается OnParametersChange
-
- Сообщения: 29
- Зарегистрирован: Пт июл 27, 2007 4:05 pm
не вызывается OnParametersChange
В функции OnParametersChange сделал Print("1");
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Re: не вызывается OnParametersChange
А была ли эта процедура описана как внешняя в разделе Exports? Если она не была описана то программа считает что такого метода в индикаторе нет и не вызывает его.Rmax писал(а):В функции OnParametersChange сделал Print("1");
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
Asta la vista
Mike
Mike
-
- Сообщения: 29
- Зарегистрирован: Пт июл 27, 2007 4:05 pm
Re: не вызывается OnParametersChange
да, описанаTerranin писал(а):А была ли эта процедура описана как внешняя в разделе Exports? Если она не была описана то программа считает что такого метода в индикаторе нет и не вызывает его.Rmax писал(а):В функции OnParametersChange сделал Print("1");
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Re: не вызывается OnParametersChange
Скинь скомпиллированный индикатор и исходник - погляжу.Rmax писал(а):да, описанаTerranin писал(а):А была ли эта процедура описана как внешняя в разделе Exports? Если она не была описана то программа считает что такого метода в индикаторе нет и не вызывает его.Rmax писал(а):В функции OnParametersChange сделал Print("1");
Меняю параметер индикатора, сохраняю, вызова нет
В чем проблема?
Asta la vista
Mike
Mike
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
-
- Сообщения: 29
- Зарегистрирован: Пт июл 27, 2007 4:05 pm
-
- Сообщения: 29
- Зарегистрирован: Пт июл 27, 2007 4:05 pm
Работает, но странно. Почему функция отрабатывает в момент запуска ФТ? Никаких связываний на этом этапе происходить не должно. Я пытаюсь вызвать Symbol() в этой функции, при запуске тестера Symbol() отрабатывает некорректно, соответственно, индюк не подцепляется.Terranin писал(а):Ошибка в документации. Не OnParametersChange а OnParamsChange. Программа не находила функцию.Rmax писал(а):Подвижки есть?
Вижу смысл в добавлении в структуру индикатора инициализирующей функции, которая будет вызываться только при запуске ФТ. В ней задавать имя индюка.
Нынешняя функция Init должна вызываться только при связывании индюка с таймфреймом-валютой.
Функция OnParamsChange должна вызываться после Init и затем на смену параметров.
К сожалению, такое изменение поломает существующие индюки. Хотя, можно оставить функцию Init как запускающуюся при старте ФТ, и добавить новую функцию InitIndicator.
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
При запуске FT создается список индикаторов и для каждого вызывается Init которая создает все переменные и буферы, иначе как бы программа знала сколько переменных и какого типа они еще до установки индикатора на чарт?Rmax писал(а):Работает, но странно. Почему функция отрабатывает в момент запуска ФТ? Никаких связываний на этом этапе происходить не должно. Я пытаюсь вызвать Symbol() в этой функции, при запуске тестера Symbol() отрабатывает некорректно, соответственно, индюк не подцепляется.Terranin писал(а):Ошибка в документации. Не OnParametersChange а OnParamsChange. Программа не находила функцию.Rmax писал(а):Подвижки есть?
Вижу смысл в добавлении в структуру индикатора инициализирующей функции, которая будет вызываться только при запуске ФТ. В ней задавать имя индюка.
Нынешняя функция Init должна вызываться только при связывании индюка с таймфреймом-валютой.
Функция OnParamsChange должна вызываться после Init и затем на смену параметров.
К сожалению, такое изменение поломает существующие индюки. Хотя, можно оставить функцию Init как запускающуюся при старте ФТ, и добавить новую функцию InitIndicator.
Индикатор создается с установками по умолчанию, потом если настройки индикатора менялись раньше то они сохранились и применяются к индикатору что приводит к вызову OnParamsChange. Я не предполагал там использование функций связанных с валютой, обычно индикатору все равно где работать - он работает с барами.
Asta la vista
Mike
Mike
-
- Сообщения: 29
- Зарегистрирован: Пт июл 27, 2007 4:05 pm
Вот именно для этого я и предлагаю разнести Init на две функции.Terranin писал(а): При запуске FT создается список индикаторов и для каждого вызывается Init которая создает все переменные и буферы, иначе как бы программа знала сколько переменных и какого типа они еще до установки индикатора на чарт?
OnParamsChange по моему разумению должна вызваться уже непосредственно при добавлении индюка на чарт.Terranin писал(а): Индикатор создается с установками по умолчанию, потом если настройки индикатора менялись раньше то они сохранились и применяются к индикатору что приводит к вызову OnParamsChange. Я не предполагал там использование функций связанных с валютой, обычно индикатору все равно где работать - он работает с барами.
Понятно, что этого в ближайшее время не будет. Но может быть когда-нибудь в будущем...