некоторое количество наших экспертов и кастом индикаторов запрограммированы именно таким образом
Re:
В документации описано инициализация переменных, но насчет
тела кода, который не должен выполняться после первой загрузки - не видел. Если не сложно , дайте ссылку или пример кода.
BR .
В документации описано инициализация переменных, но насчет
тела кода, который не должен выполняться после первой загрузки - не видел. Если не сложно , дайте ссылку или пример кода.
BR .
А кто мешает использовать переменную, которая будет указывать - прошла инициализация или нет?
Объявляем var:isInitialized(0);
В эксперте проверяем:
if isInitialized=0 then {
<инициализируемся>
isInitialized=1;
}
и все.
Инициализация будет вызываться 1 раз, и проверка if не будет нагружать терминал.
Объявляем var:isInitialized(0);
В эксперте проверяем:
if isInitialized=0 then {
<инициализируемся>
isInitialized=1;
}
и все.
Инициализация будет вызываться 1 раз, и проверка if не будет нагружать терминал.
например, в коде пользовательского индикатора Moving Average
переменная first отвечает за инициализацию.
объяснения по этому поводу есть на странице "особенности написания пользовательских индикаторов" https://www.metaquotes.net/en/metatrader5/algorithmic-trading в примере SimpleMA
переменная first отвечает за инициализацию.
объяснения по этому поводу есть на странице "особенности написания пользовательских индикаторов" https://www.metaquotes.net/en/metatrader5/algorithmic-trading в примере SimpleMA
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так как основная проблема сложных экспертов в нагрузке на
терминал при каждом тике может имеет смысл внести поравку в саму логику прграммирования экпертов?
Например:
Разделить эксперт на две части
-init
-onTickSection
В init части мы прграмируем начальную обработку массива баров и
выполняем настройку переменных и параметров , а в части OnTick..
выполняется небольшой код проверки значений бара и проверка переменных с небольшой адаптацией переменных.
Тогда в процессе работы код будет что-то типа
if PriceBid <= Vol1 then DoMyFunc
else Continue(Exit).
Процесс работы экспетов не будет нагружать терминал как сейчас,
когда он должен каждый раз обрабатывать массив баров и т.д.