Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А что тогда Static? Это, скорее - Fatalic...
Почему static не работает? У меня везде работает. Фаталик, нафталик, не может быть! Я всегда в себе ошибки ищу и сам на себя обижаюсь!
Потому, что он не предусматривает инициализацию переменной при рестарте программы, а ОБЯЗАН.
Есть еще программисты, которые могут это подтвердить? Одного голоса маловато будет.
Можете просто поменять какой-нибудь параметр. Реакция будет только после первого тика нового бара на установленном ТФ.
Да Вы ведь сами недоумевали,- почему на старших ТФ работа советника необъяснима:)
Интересно, связь между первым тиком нового бара рабочего ТФ и тестером... ну в упор не замечаю.. Тестер, это тестер. А график.. это уже график.. (имею ввиду не тестер, а тот же демо или реал).
К тому же, в учебнике сказано.. " Если нет явной инициализации, то статическая переменная инициализируется нулем ".
Получается, не нужно, как Вы сказали, Алексей, в ИНИТе присваивать значение 0 переменной lastBarTime. Она и так нулём будет при старте программы.
Интересно, связь между первым тиком нового бара рабочего ТФ и тестером... ну в упор не замечаю.. Тестер, это тестер. А график.. это уже график.. (имею ввиду не тестер, а тот же демо или реал).
К тому же, в учебнике сказано.. " Если нет явной инициализации, то статическая переменная инициализируется нулем ".
Получается, не нужно, как Вы сказали, Алексей, в ИНИТе присваивать значение 0 переменной lastBarTime. Она и так нулём будет при старте программы.
Нет, не будет. Баг такой :)
Хотя вот этот момент (из учебника) мне не совсем понятен:
" Статические переменные инициализируются однократно перед вызовом специализированной функции init(), то есть при выходе из функции, внутри которой объявлена статическая переменная, значение этой переменной не теряется.
Причём здесь, " перед вызовом спец. функции init() ", а после " т.е. при выходе из пользовательской функции (судя по содержанию), в которой объявлена статичекая переменная? "
Функция, в которой объявлена статическая переменная может быть в конце программы.. т.е. в конце кода или где-н. ещё. А функция init() запускается один раз сразу перед запуском программы. Получается нестыковка. Как может переменная инициализироваться перед функцией init() ?
Хотя вот этот момент (из учебника) мне не совсем понятен:
" Статические переменные инициализируются однократно перед вызовом специализированной функции init(), то есть при выходе из функции, внутри которой объявлена статическая переменная, значение этой переменной не теряется.
Причём здесь, " перед вызовом спец. функции init() ", а после " т.е. при выходе из пользовательской функции (судя по содержанию), в которой объявлена статичекая переменная? "
Функция, в которой объявлена статическая переменная может быть в конце программы.. т.е. в конце кода или где-н. ещё. А функция init() запускается один раз сразу перед запуском программы. Получается нестыковка. Как может переменная инициализироваться перед функцией init() ?
Ну, если Вам интересно - все ныне используемые режимы управления памятью были впервые реализованы в языке PL/1. Их четыре: Automatic, Dynamic, Static и Based. Си появился после и полностью принял эти стандарты.