Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2491
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
скорее всего или ордер не отрывается или при чтении вы берёте иной (старый). тем более что читаете из истории - просто промахнулись
Ни одно из Ваших "или" не подтвердилось. В блоке открытия ордеров я убрал цикл for и открыл 1 один единственный ордер. Когда этот ордер закрылся по Тейк профиту Print() вывела точно такое же значение параметра Coment() открытого и закрытого ордера. Если бы ордер не открылся, то он и не закрылся бы.
Ни одно из Ваших "или" не подтвердилось. В блоке открытия ордеров я убрал цикл for и открыл 1 один единственный ордер. Когда этот ордер закрылся по Тейк профиту Print() вывела точно такое же значение параметра Coment() открытого и закрытого ордера. Если бы ордер не открылся, то он и не закрылся бы.
при закрытии по ТП или СЛ в комментарий добавляется причина закрытия [tp] [sl]
Ваш код тут никак не повлияет, при закрытии по ТП или СЛ в комментарий добавляется причина закрытия [tp] [sl]
Cпасибо. Теперь все ясно и понятно. Остался единственный вопрос, который не дает мне покоя. Почему в Справочнике при описании функции OrderSend() в примере этой функции параметр Coment() взят в кавычки. А по факту, для решения моей проблемы эти кавычки нужно убрать. Ведь если я убрал кавычки, значит в этот параметр легло значение не строкового типа. И компилятор не выдал ошибку, не смотря на то что функция OrderComment() выводит значение строкового типа.
И еще я заметил забавную особенность... Если параметр Coment() при открытии ордера ввести символы без кавычек, то компилятор выдаст ошибку. А если ввести цифры без кавычек, то компилятор ошибки не выдаст. Получается что параметр Coment() по факту принимает не только строковые типы данных ?????
И если в параметр Coment() ввести символы с кавычками, то Print() напечатает только эти символы без [tp]или [sl]. Странный и неоднозначный этот параметр Coment().....
Cпасибо. Теперь все ясно и понятно. Остался единственный вопрос, который не дает мне покоя. Почему в Справочнике при описании функции OrderSend() в примере этой функции параметр Coment() взят в кавычки. А по факту, для решения моей проблемы эти кавычки нужно убрать. Ведь если я убрал кавычки, значит в этот параметр легло значение не строкового типа. И компилятор не выдал ошибку, не смотря на то что функция OrderComment() выводит значение строкового типа.
И еще я заметил забавную особенность... Если параметр Coment() при открытии ордера ввести символы без кавычек, то компилятор выдаст ошибку. А если ввести цифры без кавычек, то компилятор ошибки не выдаст. Получается что параметр Coment() по факту принимает не только строковые типы данных ?????
И если в параметр Coment() ввести символы с кавычками, то Print() напечатает только эти символы без [tp]или [sl]. Странный и неоднозначный этот параметр Coment().....
Вам надо разобраться что такое string.
Если Вы вводите числа, то их преобразуют в текст, но лучше использовать DoubleToString или IntegerToString.
Если Вы вводите символы, то их надо выделять ковычками, в противном случае компилятор ищет переменную согласно введенных символов.
[tp] или [sl] добавляются после закрытия ордера по ТР или SL
Если Вы вводите числа, то их преобразуют в текст, но лучше использовать DoubleToString или IntegerToString.
Я это прекрасно понимаю, что если я ввожу в параметр Coment набор цифр(число) , то программа без моего участия преобразует этот набор цифр из числа в строку. Я не понимаю одного .... если набор цифр стал строкой, то почему эта строка не обрамляется кавычками в параметре Coment . Ведь цифры превратились в символы. А набор символов - это строчный тип данных , который обрамляется кавычками.
то почему эта строка не обрамляется кавычками в параметре Coment
Ведь цифры превратились в символы. А набор символов - это строчный тип данных
Зачем ее обрамлять? Кавычки ставите только Вы, если хотите обозначить какой либо набор символов как текст. Любое число - это всегда значение, а набор символов может быть текстом, а может быть переменной.
Спасибо. Тогда объясните мне вот что... Внизу несколько вариантов параметра Coment функции OrderSend, по поводу которых компилятор не выдает ошибок. Какой тип данных лежит в каждом варианте этого параметра?
1. OrderSend(,,,,,," авсd " ,);
2. OrderSend(,,,,,, авсd ,);
3. OrderSend(,,,,,, " 1234 " ,);
4. OrderSend(,,,,,, 1234 ,);
Спасибо. Тогда объясните мне вот что... Внизу несколько вариантов параметра Coment функции OrderSend, по поводу которых компилятор не выдает ошибок.
1. OrderSend(,,,,,," авсd " ,);
2. OrderSend(,,,,,, авсd ,);
3. OrderSend(,,,,,, " 1234 " ,);
4. OrderSend(,,,,,, 1234 ,);
Во втором варианте должна быть ошибка.
Какой тип данных лежит в каждом варианте этого параметра?
Там, где ковычки, Вы сразу дали определение что это string
Число преобразуется в string
Второй вариант - ошибка.
'abcd' - undeclared identifierЧисло преобразуется в string
Число преобразуется в string. То есть число преобразуется в string в нижеприведенных вариантах, при которых компилятор не ругается
3. OrderSend(,,,,,, " 1234 " ,);
4. OrderSend(,,,,,, 1234 ,);
В варианте 3 число преобразованное в строку закавычено , как и положено .... тип string всегда обрамляется кавычками.
ВОПРОС
В варианте 4 число так же преобразовано в строку и стало типом string , но в этом варианте кавычки отсутствуют. Почему программа преобразовала число в тип string без кавычек? Ведь без кавычек тип string не может и не должен возникнуть. Для набора символов без кавычек компилятор выдал ошибку. А для набора цифр, преобразованных в строку без кавычек, компилятор почему то ошибки не выдает...
Напрашиваются 2 вывода
1. В варианте 4 в параметре Coment лежит тип данных НЕ string
2. Тип string не всегда обрамляется кавычками