Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Часто выкладываешь исходный код? Узнай, как это делать правильно!
Natashe4ka
80
Natashe4ka 2016.12.01 12:53 

Подскажите пожалуйста, какая разница между функциями:

int Start()
void Start()
void OnStart()
void OnTick()
и т.д. какие ещё есть старты?

Это же всё относится к стартам, почему они все разные, в чём особенность?
 

Dmitry Fedoseev
41177
Dmitry Fedoseev 2016.12.01 13:08  

Функция start() была раньше до 600-го билда. Потом вместо start() появилось несколько разных (в зависимости от места, где они находятся), в скрипте - OnStart(), в советнике OnTick(), в индикаторе OnCalculate().

А вот int start() и void start() - это немного другой вопрос. Просто так можно и все.

Natashe4ka
80
Natashe4ka 2016.12.01 13:31  
Dmitry Fedoseev:

А вот int start() и void start() - это немного другой вопрос. Просто так можно и все.

Яснопонятно)) 
Тогда буду пользоваться "Просто так можно и все" - void start()

Artyom Trishkin
68724
Artyom Trishkin 2016.12.01 13:37  
Natashe4ka:

Яснопонятно)) 
Тогда буду пользоваться "Просто так можно и все" - void start()

Лучше пользуйтесь void OnStart() в скриптах, void OnTick() в советниках и int OnCalculate() в индикаторах.
Natashe4ka
80
Natashe4ka 2016.12.01 13:42  
Artyom Trishkin:
Лучше пользуйтесь void OnStart() в скриптах, void OnTick() в советниках и int OnCalculate() в индикаторах.

А зачем, если нет разницы?
Как говорится: на скорость не влияет)) 

Dmitry Fedoseev
41177
Dmitry Fedoseev 2016.12.01 14:15  
Natashe4ka:

А зачем, если нет разницы?
Как говорится: на скорость не влияет)) 

Можно много философствовать на эту тему, но тем не менее, пользуйтесь функциями из шаблона создаваемого в редакторе, а там OnStart(), OnTick().
STARIJ
94
STARIJ 2016.12.01 16:12  
Natashe4ka:    Подскажите пожалуйста, какая разница между функциями:
int Start()
void Start()
void OnStart()
void OnTick()
и т.д. какие ещё есть старты?

Это же всё относится к стартам, почему они все разные, в чём особенность?

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

int и void - типы возвращаемого значения. Если есть возможность выбора - выбираем нужное. Если выберем void, то будет отсутствовать возможность проверки результата работы функции, но зато налицо удобство - можно выбросить return в самом конце. Более подробно рассмотрено в теме Замена Start...

Dmitry Fedoseev
41177
Dmitry Fedoseev 2016.12.01 16:23  
STARIJ:

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

int и void - типы возвращаемого значения. Если есть возможность выбора - выбираем нужное. Если выберем void, то будет отсутствовать возможность проверки результата работы функции, но зато налицо удобство - можно выбросить return в самом конце. Более подробно рассмотрено в теме Замена Start...

Кто и где будет проверять?
Nikolay Khrushchev
18928
Nikolay Khrushchev 2016.12.01 16:27  
STARIJ:

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

это врятли, скорее всего компилятор ее уже сейчас отвергает и делает автозамену на OnTick
Alexander Belozerov
60
Alexander Belozerov 2016.12.01 17:31  
Dmitry Fedoseev:

Функция start() была раньше до 600-го билда. Потом вместо start() появилось несколько разных (в зависимости от места, где они находятся), в скрипте - OnStart(), в советнике OnTick(), в индикаторе OnCalculate().

А вот int start() и void start() - это немного другой вопрос. Просто так можно и все.

Поправка: например, если использвать int OnInit(), то функция может возвращать INIT_SUCCEEDED (удачно), INIT_FAILED, INIT_PARAMETERS_INCORRECT. Для OnStart() мне, по правде говоря, не интересно, но все-таки есть разница void или int. Функция OnInit() типа void всегда означает удачную инициализацию.

 

Natashe4ka:

Подскажите пожалуйста, какая разница между функциями:

int Start()
void Start()
void OnStart()
void OnTick()
и т.д. какие ещё есть старты?

Это же всё относится к стартам, почему они все разные, в чём особенность?
 

Также  в советнике OnInit() и OnTick() - функции-обработчики разных событий, а то при прочтении темы у меня лично создается впечатление, что выше их или путают, или приравняли.

Dmitry Fedoseev
41177
Dmitry Fedoseev 2016.12.01 17:43  
Alexander Belozerov:

Поправка: например, если использвать int OnInit(), то функция может возвращать INIT_SUCCEEDED (удачно), INIT_FAILED, INIT_PARAMETERS_INCORRECT. Для OnStart() мне, по правде говоря, не интересно, но все-таки есть разница void или int. Функция OnInit() типа void всегда означает удачную инициализацию.

 

Также  в советнике OnInit() и OnTick() - функции-обработчики разных событий, а то при прочтении темы у меня лично создается впечатление, что выше их или путают, или приравняли.

Извините, пожалуйста, но где вы увидели здесь разговоры про функцию OnInit().

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий