Ответы все получил,огромное спасибо.Ещё один вопрос-мне надо
закомментировать не отдельную строку,а большой кусок кода сразу(что
потом можно было его быстро опять включить).Как
Ответы все получил,огромное спасибо.Ещё один вопрос-мне надо
закомментировать не отдельную строку,а большой кусок кода сразу(что
потом можно было его быстро опять включить).Как
это сделать?
Все таки надо и самому как то искать ответы на вопросы. Поиск
сразу же находит ответы: Комментарии
Я тут наваял большой эксперт с использованием оператора 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.
Построчный комментарий также будет полезен, иначе через пару
недель Вы будете испытывать затруднения при чтении собственной
программы.
Огромное спасибо,но если можно,покажите всё насчёт переменной
А в тексте программы.Зараннее спасибо!
petrov74 писал (а): Огромное спасибо,но если можно,покажите всё насчёт переменной
А в тексте программы.Зараннее спасибо!
Тут особо показывать нечего..
После метки 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)} он принимает,но с большим дополнительным
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
И пробуй сложные выражения писать в виде, удобном для контроля. Например так
Если не успел получить ответы на последние вопросы, повтори их снова.
Ответы все получил,огромное спасибо.Ещё один вопрос-мне надо закомментировать не отдельную строку,а большой кусок кода сразу(что потом можно было его быстро опять включить).Как
это сделать?
Ответы все получил,огромное спасибо.Ещё один вопрос-мне надо закомментировать не отдельную строку,а большой кусок кода сразу(что потом можно было его быстро опять включить).Как
это сделать?
Я тут наваял большой эксперт с использованием оператора 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*).Почему?