Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 123
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как в условии на покупку/продажу добавить значение если в индикаторе RVI например: при пересечении двух линий между собой открывается ордер на покупку\продажу, а нужно что бы было не просто при пересечении, а если пересечение произошло выше 0 Value ?
MM и MS - это линии индикатора RVI
Здравствуйте уважаемые !
Подскажите как через obj label отобразить строку более чем 64 символа !?
Здравствуйте уважаемые !
Подскажите как через obj label отобразить строку более чем 64 символа !?
две obj label рядом. Левой выравниваем по правому краю, правую по левому
Не могли бы Вы пояснить вот эту строку Вашего кода: OrderInfo arrstBuyOrderInfo[MAX_ORDERS_CNT], arrstSellOrderInfo[MAX_ORDERS_CNT]; Почему у OrderInfo нет скобок и не указан тип? и это все объявляется на глобальном уровне?
OrderInfo - это тип данных. Как int, double и пр. В данном случае OrderInfo - это структура. Пример ее объявления я привел в посте https://www.mql5.com/ru/forum/160587/page121#comment_6556328.
arrstBuyOrderInfo и arrstSellOrderInfo - имена переменных, которые имеют тип OrderInfo.
Квадратные скобки около переменных указывают на то, что переменные являются массивами переменных. Ну а так как в скобках указано количество (MAX_ORDERS_CNT - это именованная константа, равная 500, которая описана у меня перед OrderInfo), то массивы являются статическими (изначально заданного размера)
А определение наличия ордера вставлять в функцию закрытия позиций? Где? А может функция закрытия позиций с массивами вообще должна выглядеть как-то по -другому? Тяжеловато пока для меня. Спасибо.
Мы пока рассмотрели только первую задачу - сбор информации о рабочих ордерах. Генерация торгового сигнала и выполнение торговых действий - это задачи 2 и 3 соответственно. До них мы еще не добрались.
Смысл сбора информации в том, чтобы не нужно было на каждом "чихе" заново перебирать весь список ордеров. В правильно написанном советнике такое действие выполняется только один раз на одну итерацию. Далее - работа только с созданными данными.
Как в условии на покупку/продажу добавить значение если в индикаторе RVI например: при пересечении двух линий между собой открывается ордер на покупку\продажу, а нужно что бы было не просто при пересечении, а если пересечение произошло выше 0 Value ?
MM и MS - это линии индикатора RVI
Нужно сравнить значения обеих линий с нулем. Разве нет?
И неясно, что такое MoM.
есть вот такая строка из MQL5, компилятор MQL4 на нее ругается, как её можно переписать?
OrderInfo - это тип данных. Как int, double и пр. В данном случае OrderInfo - это структура. Пример ее объявления я привел в посте https://www.mql5.com/ru/forum/160587/page121#comment_6556328.
Правильно ли я понимаю Ваш пример: Директива #define везде, где встретится MAX_ORDERS_CNT будет подставлять число 500 ? А зачем числу задается тип?
И почему нельзя просто задать extern int cnt=500 ? И тогда будет OrderInfo arrstOrderInfo[cnt], arrstBuyOrderInfo[cnt], arrstSellOrderInfo[cnt]; ?
И ещё: в Вашем посте на стр122 мне непонятно, что это - &arrstOrderInfo[],&nOrdersCnt и .n ? Извините, если мои вопросы кажутся глупыми - и так стараюсь больше разобраться самостоятельно, хотя получается слабо.
Доброго времени суток
помогите пожалуйста модернизировать индикатор
требуется добавить 2 буфера, "родной" индикатор рисует стрелку( вверх или вниз) при выявлении гэпа и дает сигнал в буфер 6 или 7
хотелось бы иметь буфер 8 и 9 где при гепе сигнал +1 (вверх) или -1 (вниз) 0 при отсутсвие
сам индикатор очень адекватный, пробовал сделать сам но ничего не получается нет навыков в программировании
Правильно ли я понимаю Ваш пример: Директива #define везде, где встретится MAX_ORDERS_CNT будет подставлять число 500 ? А зачем числу задается тип?
Да. Причем нужно заметить, что оно будет подставлено на этапе компиляции, а не во время выполнения программы.
И почему нельзя просто задать extern int cnt=500 ? И тогда будет OrderInfo arrstOrderInfo[cnt], arrstBuyOrderInfo[cnt], arrstSellOrderInfo[cnt]; ?
Нельзя, т. к. int cnt - это объявление переменной. А переменная может изменять свое значение во время выполнения программы. Память же под статический массив не распределяется во время выполнения программы. Объем памяти должен быть известен еще на этапе компиляции. Чтобы изменять размер массива во время выполнения программы, нужно использовать динамический массив. Ну это уже потом, когда освоитесь со статическим массивами.
И ещё: в Вашем посте на стр122 мне непонятно, что это - &arrstOrderInfo[],&nOrdersCnt и .n ? Извините, если мои вопросы кажутся глупыми - и так стараюсь больше разобраться самостоятельно, хотя получается слабо.
Немного упрощу ответ, чтобы не сбивать с толку. Этот знак (&) указывает, что аргумент функции может изменить свое значение во время выполнения функции и вернется в то место, откуда была вызвана функция, с другим значением. В рассматриваемом случае функция SaveOrder может изменить содержимое массивов g_arrstBuyOrderInfo и g_arrstSellOrderInfo, а также переменных g_nBuyOrdersCnt и g_nSellOrdersCnt.
Здравствуйте уважаемые !
Подскажите как перекрасить бары не применяя шаблоны в мт4 !?
Или как применить цветовую схему !?