Самообучение языку MQL5 с полного нуля - страница 23

 
Aliaksandr Hryshyn:

Вы не с того начали обучение. Вы всё понимаете что написано в коде? Все операторы, ключевые слова?

Контрольный вопрос по коду:

Что означают данные строки?

Это были мои комментарии скрипта:

/* Движемся дальше. После отправки запросов на торговый сервер нам необходимо узнать о том, что был
   установлен отложенный ордер или нет. Для это применим функцию OrderSend, которая предназначена для
   совершения торговых операций через отправку запросов на торговый сервер. Если отправить запрос
   не удалось !OrderSend (восклицательный знак перед любой функцией означает отрицательный результат её
   выполнения), то тогда выводим сообщение с кодом ошибки в заданном формате: "OrderSend error %d"
   и GetLastError(). Давайте разберемся, что такое "OrderSend error %d" и что такое GetLastError().
   Обратите внимание на то, что "OrderSend error %d" взят в двойные кавычки. Это означает, что будет
   выведен текст с дословным переводом "Ошибка отправки заказа %d". Теперь давайте поймём, что означает
   %d. В Справочнике MQL5 в разделе PrintFormat находим: "Если за строкой формата следуют еще параметры,
   то эта строка должна содержать спецификации формата, определяющие формат вывода этих параметров.
   Спецификация формата всегда начинается с символа знака процента (%)". А что такое d? В том же разделе
   чуть ниже находим: "Тип d - указывает минимальное число выводимых цифр. Если количество цифр в
   соответствующем параметре меньше указанной точности, то выводимое значение дополняется слева нулями.
   Выводимое значение не обрезается, если количество выводимых цифр больше указанной точности". С этим
   разобрались, осталось понять, что такое GetLastError(). Снова ищем в справочнике: "GetLastError()
   возвращает содержимое системной переменной _LastError, т.е. той переменной, в которой хранится
   значение последней ошибки, произошедшей во время исполнения mql5-программы".*/

С уважением, Владимир.

 
MrBrooklin:

Значит, пока не разобрался в данном вопросе и есть над чем работать.

С уважением, Владимир.

Повторюсь, начинайте с описания, что делает Ваш код. Данный скрипт выставляет СЛ и ТП на выставленные позиции. Т.к. мы не знаем есть ли они, предполагаем что позиции есть, и есть обе (счет хедж). Условие выставление стопов сделаем всегда истинным.... Как то так. Идею кода до конца прорабатывайте. ))))

И старайтесь понимать каждую строчку кода. С самого начала. 

 
Реter Konow:
Это условие там вообще не нужно. Какую роль оно играет? Сможете обьяснить?

Хотел задать скрытое  условие на установку отложенных ордеров Buy Stop и Sell Stop.

С уважением, Владимир.

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
MrBrooklin:

Проверил ещё несколько раз - компилятор ничего не выдает.

С уважением, Владимир.

А почему он должен что-то выдавать? Вы не знаете макросов, не умеете с ними работать, зато используйте. И ожидаете от них какой-то ошибки или хотя бы предупреждения. Если бы Вы хоть раз запустили Ваш скрипт на демке и погоняли бы его во всех режимах, увидели бы что скрипт не работает. Но Вы зачем-то идете дальше. Добавляете стоп-лосс, тейкпрофит, а на берегу уже кричат: "Стоп машина!"

 
Valeriy Yastremskiy:

Повторюсь, начинайте с описания, что делает Ваш код. Данный скрипт выставляет СЛ и ТП на выставленные позиции. Т.к. мы не знаем есть ли они, предполагаем что позиции есть, и есть обе (счет хедж). Условие выставление стопов сделаем всегда истинным.... Как то так. Идею кода до конца прорабатывайте. ))))

И старайтесь понимать каждую строчку кода. С самого начала. 

Спасибо за подсказку на счёт, того что нужно сначала проверить - существуют ли открытые позиции.

С уважением, Владимир.

 
MrBrooklin:

Хотел задать скрытоеусловие на установку отложенных ордеров Buy Stop и Sell Stop.

С уважением, Владимир.

Скажите, написать макрос для этого, это единственный способ задать такое условие? Условия как понимаю, задаются только макросами? Или можно как-то иначе? А если можно иначе, зачем был выбран макрос? Наверное какая-то необходимость была? Но какая?

 
MrBrooklin:

Спасибо за подсказку на счёт, того что нужно сначала проверить - существуют ли открытые позиции.

С уважением, Владимир.

Сейчас даже не пробуйте. Рано Вам за это браться. Слишком рано. Ну получится каша в голове, устаните и все забросите. Возвращайтесь к учебнику и простым задачкам.
 
Vasiliy Sokolov:

Скажите, написать макрос для этого, это единственный способ задать такое условие? Условия как понимаю, задаются только макросами? Или можно как-то иначе? А если можно иначе, зачем был выбран макрос? Наверное какая-то необходимость была? Но какая?

Нет, необходимости особой не было, просто когда изучал модификаторы, то нашёл #define и решил попробовать его в скрипте.

С увжением, Владимир.

 
MrBrooklin:

Хотел задать скрытое  условие на установку отложенных ордеров Buy Stop и Sell Stop.

С уважением, Владимир.

Что означает "скрытое условие"? Такого типа условий в программировании не существует.
 
Vasiliy Sokolov:

... Если бы Вы хоть раз запустили Ваш скрипт на демке и погоняли бы его во всех режимах, увидели бы что скрипт не работает. Но Вы зачем-то идете дальше. Добавляете стоп-лосс, тейкпрофит, а на берегу уже кричат: "Стоп машина!"

Василий, скрипт не однократно запускал, все режимы работают, а именно: выставляются два отложенных ордера Buy Stop и Sell Stop на указанном мною расстоянии. Стоп лосс и тейк профит также устанавливаются на нужном расстоянии. Ордера срабатывают. Скрин прилагаю.

С уважением, Владимир.


Причина обращения: