[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 208
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
уважаемый... незачем такими крупными буквами тут писать... а то и глаза можно сломать :-)
и это... прежде чем вопросы задавать.. ты не пробовал в Метаедиторе СПРАВКУ прочитать? ВСЮ? для начала... чтобы не задавать глупостей насчёт типов и прочего....
===
Тип операций для функции OrderSend(). Mожет быть любым из следующих величин:
Теперь по сути: допустим, что у нас есть 3 ордера и все рыночные. Тогда при 3-х итерациях мы не попадем в блок 4 ни в одной из них. А после последней итерациисразу перейдем в блок 5, минуя блок 4. В блоке 5 присутствует переменная Tip, к-я объявлена в блоке 4. Но блок 4 не исполнялся. Значит переменная Tip не объявлена. Получается, что мы используе переменную прежде, чем ее объявим?
почему? компилятор выделил участок памяти под переменную есчё при первом проходе... и обращение к ней не вызовет ошибки...
Не ясен следующий момент: при первом проходе (при условии, что у нас все 3 ордера - рыночные), мы же не попадаем в блок 4, т.к. в блоке 3 выполняется условие if(OrderType()<2). Тогда следующий за ним опреатор continue заканчивает текущую итерацию и ПРОПУСКАЕТ блок 4, в к-м и объявлена переменная Tip. Значит переменная Tip не была объявлена при 1-м проходе (т.е. строка с объявлением переменной Tip не была исполнена)... И так все 3 итерации. Т.е. после 3-й итерации мы попадаем в блок 5, где используется переменная Tip, к-я получается не была объявлена ранее (т.е. строка-то с ее объявлением есть, но т.к. мы не попали ни разу в блок 4, то значит мы и не объявили эту переменную?)?
я имел в виду проход компилятора по тексту программки - обнаружив в любой точке функции определение переменной - метакомпилятор объявил эту переменную для использования ниже по тексту - не взирая на то, что фактически обращения к инициализации(обьявления) переменной не было... - такова среда :-)
хоть и не было входа в условие - компилятор встретив инт - выделил ячейку памяти для переменной... хоть и не инициализировал её... в Принте она будет = 0
я имел в виду проход компилятора по тексту программки - обнаружив в любой точке функции определение переменной - метакомпилятор объявил эту переменную для использования ниже по тексту - не взирая на то, что фактически обращения к инициализации(обьявления) переменной не было... - такова среда :-)
хоть и не было входа в условие - компилятор встретив инт - выделил ячейку памяти для переменной... хоть и не инициализировал её... в Принте она будет = 0
Т.е. правильно ли я понял: компилятор, в отличие от терминала (грубо говоря) не выполняет циклы, а просто читает строки подряд и проверяет нет ли там ошибок... т.е. для него главное (что и является критерием наличия/отсутствия ошибки), чтобы строка (позиция), где была использована переменная шла ПОСЛЕ строки (позиции), где эта переменная была объявлена?
можно и так сказать :-) если ты обьявление сделаешь ниже - а обратишься к переменной выше по тексту - то компилятор сгенерирует ошибку...
С этим понятно, большое спасибо... По GV-переменным можешь подсказать?
а с ними что? - глобальные на уровне Терминала?
хранят некоторое время в файле переменных :-) дату обращения, имя и значение типа double