Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И пробуй сложные выражения писать в виде, удобном для контроля. Например так
Если не успел получить ответы на последние вопросы, повтори их снова.
Ответы все получил,огромное спасибо.Ещё один вопрос-мне надо закомментировать не отдельную строку,а большой кусок кода сразу(что потом можно было его быстро опять включить).Как
это сделать?
Ответы все получил,огромное спасибо.Ещё один вопрос-мне надо закомментировать не отдельную строку,а большой кусок кода сразу(что потом можно было его быстро опять включить).Как
это сделать?
Я тут наваял большой эксперт с использованием оператора switch . Я его правильно использовал?
Я тут наваял большой эксперт с использованием оператора switch . Я его правильно использовал?
В целом правильно. Но не стоит повторять присвоение целого значения переменной А. До начала оператора switch переменная А уже должна иметь какое-то значение. В зависимости от этого значения управление в операторе switch передаётся на соответствующую метку. Например, если до switch переменная А равна 2, то в switch(А) управление будет передано на case 2: и дальше исполнятся строки до ближайшего break.
Ещё имеет смысл переприсвоить некоторой переменной значение повторяющихся вычислений (для наглядности и оптимизации). Например, в коде несколько раз выполняются одни и те же вычисления: iMA(NULL, 5,1,0,MODE_SMA,PRICE_HIGH,0). Имеет смысл где-то вначале указать MA_510_H = iMA(NULL, 5,1,0,MODE_SMA,PRICE_HIGH,0), и во всех строках, где указано это выражение, вместо этого выражения вставить переменную MA_510_H.
Построчный комментарий также будет полезен, иначе через пару недель Вы будете испытывать затруднения при чтении собственной программы.
Я тут наваял большой эксперт с использованием оператора switch . Я его правильно использовал?
В целом правильно. Но не стоит повторять присвоение целого значения переменной А. До начала оператора switch переменная А уже должна иметь какое-то значение. В зависимости от этого значения управление в операторе switch передаётся на соответствующую метку. Например, если до switch переменная А равна 2, то в switch(А) управление будет передано на case 2: и дальше исполнятся строки до ближайшего break.
Ещё имеет смысл переприсвоить некоторой переменной значение повторяющихся вычислений (для наглядности и оптимизации). Например, в коде несколько раз выполняются одни и те же вычисления: iMA(NULL, 5,1,0,MODE_SMA,PRICE_HIGH,0). Имеет смысл где-то вначале указать MA_510_H = iMA(NULL, 5,1,0,MODE_SMA,PRICE_HIGH,0), и во всех строках, где указано это выражение, вместо этого выражения вставить переменную MA_510_H.
Построчный комментарий также будет полезен, иначе через пару недель Вы будете испытывать затруднения при чтении собственной программы.
Огромное спасибо,но если можно,покажите всё насчёт переменной А в тексте программы.Зараннее спасибо!
Тут особо показывать нечего..
После метки case 1: Вы непонятно зачем указываете А=1; после метки case 2: указываете А=2; и т.д. В этом нет никакого смысла. Значение переменной А должно быть вычислено ещё до того, как оно используется в качестве параметра в операторе switch(А). В зависимости от значения переменной А управление в операторе switch будет передано на ту метку case, кот. совпадает со значением переменной А. Если А равно 3, то управление передаётся на метку case 3:
Но если это событие (передача управления на метку) уже произошло, то значит переменная А уже имеет это значение. Напрример, если управление передано на метку case 3:, то это произошло в результате того, что ещё до начала оператора switch переменная А уже имела значение 3. Зачем же ещё раз писать А=3 ?
Ещё один вопрос.По какой-то причине МТ категорически не переваривает условие вида{(iMA(NULL,5,1,0,MODE_SMA,PRICE_HIGH,0)-iMA(NULL,5,1,0,MODE_SMA,PRICE_LOW,0))/iVolume(NULL, PERIOD_M5,0) } (выдаёт unsignificient).При этом условие вида{iVolume(NULL,PERIOD_M5, 0)/iVolume(NULL,PERIOD_M5,0)} он принимает,но с большим дополнительным
множителем(100* или 1000*).Почему?