Maxim Kuznetsov #: скорее всего или ордер не отрывается или при чтении вы берёте иной (старый). тем более что читаете из истории - просто промахнулись
Ни одно из Ваших "или" не подтвердилось. В блоке открытия ордеров я убрал цикл for и открыл 1 один единственный ордер. Когда этот ордер закрылся по Тейк профиту Print() вывела точно такое же значение параметра Coment() открытого и закрытого ордера. Если бы ордер не открылся, то он и не закрылся бы.
if (Bid-mx1>0.0001&&mx1>0)//
{
mx1=2000;
int w=1;
k1=IntegerToString(w,1);
TkT=OrderSend(Symbol(),OP_BUY,0.1,Ask, 3,Bid-0.0016,Bid+0.0008,k1,Tk1);
}
Ни одно из Ваших "или" не подтвердилось. В блоке открытия ордеров я убрал цикл for и открыл 1 один единственный ордер. Когда этот ордер закрылся по Тейк профиту Print() вывела точно такое же значение параметра Coment() открытого и закрытого ордера. Если бы ордер не открылся, то он и не закрылся бы.
Ваш код тут никак не повлияет, при закрытии по ТП или СЛ в комментарий добавляется причина закрытия [tp] [sl]
Tretyakov Rostyslav #: Ваш код тут никак не повлияет, при закрытии по ТП или СЛ в комментарий добавляется причина закрытия [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
Tretyakov Rostyslav #: Если Вы вводите числа, то их преобразуют в текст, но лучше использовать DoubleToString или IntegerToString.
Я это прекрасно понимаю, что если я ввожу в параметр Coment набор цифр(число) , то программа без моего участия преобразует этот набор цифр из числа в строку. Я не понимаю одного .... если набор цифр стал строкой, то почему эта строка не обрамляется кавычками в параметре Coment . Ведь цифры превратились в символы. А набор символов - это строчный тип данных , который обрамляется кавычками.
Tretyakov Rostyslav #: Зачем ее обрамлять? Кавычки ставите только Вы, если хотите обозначить какой либо набор символов как текст. Любое число - это всегда значение, а набор символов может быть текстом, а может быть переменной.
Спасибо. Тогда объясните мне вот что... Внизу несколько вариантов параметра Coment функции OrderSend, по поводу которых компилятор не выдает ошибок. Какой тип данных лежит в каждом варианте этого параметра? 1. OrderSend(,,,,,," авсd " ,);
Спасибо. Тогда объясните мне вот что... Внизу несколько вариантов параметра Coment функции OrderSend, по поводу которых компилятор не выдает ошибок. 1. OrderSend(,,,,,," авсd " ,);
2. OrderSend(,,,,,, авсd ,);
3. OrderSend(,,,,,, " 1234 " ,);
4. OrderSend(,,,,,, 1234 ,);
Во втором варианте должна быть ошибка.
ANDREY #: Какой тип данных лежит в каждом варианте этого параметра?
Там, где ковычки, Вы сразу дали определение что это string
Tretyakov Rostyslav #: Число преобразуется в string
Число преобразуется в string. То есть число преобразуется в string в нижеприведенных вариантах, при которых компилятор не ругается
3. OrderSend(,,,,,, " 1234 " ,);
4. OrderSend(,,,,,, 1234 ,);
В варианте 3 число преобразованное в строку закавычено , как и положено .... тип string всегда обрамляется кавычками. ВОПРОС В варианте 4 число так же преобразовано в строку и стало типом string , но в этом варианте кавычки отсутствуют. Почему программа преобразовала число в тип string без кавычек? Ведь без кавычек тип string не может и не должен возникнуть. Для набора символов без кавычек компилятор выдал ошибку. А для набора цифр, преобразованных в строку без кавычек, компилятор почему то ошибки не выдает... Напрашиваются 2 вывода 1. В варианте 4 в параметре Coment лежит тип данных НЕ string 2. Тип string не всегда обрамляется кавычками
скорее всего или ордер не отрывается или при чтении вы берёте иной (старый). тем более что читаете из истории - просто промахнулись
Ни одно из Ваших "или" не подтвердилось. В блоке открытия ордеров я убрал цикл 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 не всегда обрамляется кавычками