Подскажите пожалуйста

 

Здравствуйте великие знатоки !

Я хочу научиться программировать на MQL4, но по учебнику очень сложно, без подсказок.

У меня такой вопрос: 

Допустим советник открыл четыре отложенных ордера. Два ордера сработали.

Как сделать так, чтобы при закрытии одного ордера по тейк- профиту - закрылись(удалились) все оставшиеся ордера(один открытый и два оложенных) ???

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

 
С помощью оператора if/else можно выстроить алгоритм. Но для этого надо найти тикеты всех ордеров.
 
В справке Мета Editor  наберите Order и нажмите поиск.  Просмотрите все функции с назнванием  Order. Всё что пригодится найдёте там.
 
FOReignEXchange >>:
В справке Мета Editor  наберите Order и нажмите поиск.  Просмотрите все функции с назнванием  Order. Всё что пригодится найдёте там.

Мне трудно понять по книге, я самоучка. Мне легче разбирать готовый код и вникать. 

Допустим  Х1, Х2, Х3, Х4 - тикеты ордеров. Х1-открытый ордер. При срабатывании тейк- профита Х1 нужно закрыть ордера Х2, Х3, Х4 .

Как будет выглядеть код ?

 
if (OrderSelect(ticket1, SELECT_BY_TICKET)==true)
   {
   if (OrderCloseTime()!=0 && OrderProfit()>0)
      {
      В этом случае здесь размещаем блок закрытия всех ордеров с помощью соответствующей функции
      }
   }

if (OrderSelect(ticket2, SELECT_BY_TICKET)==true)
   {
   if (OrderCloseTime()!=0 && OrderProfit()>0)
      {
      В этом случае здесь размещаем блок закрытия всех ордеров с помощью соответствующей функции
      }
   }

if (OrderSelect(ticket3, SELECT_BY_TICKET)==true)
   {
   if (OrderCloseTime()!=0 && OrderProfit()>0)
      {
      В этом случае здесь размещаем блок закрытия всех ордеров с помощью соответствующей функции
      }
   }

if (OrderSelect(ticket4, SELECT_BY_TICKET)==true)
   {
   if (OrderCloseTime()!=0 && OrderProfit()>0)
      {
      В этом случае здесь размещаем блок закрытия всех ордеров с помощью соответствующей функции
      }
   }





Может быть как-то так. Тут главное, чтобы номера тикетов были правильные. Их надо присваивать при открытии отложенных ордеров. И ещё лучше обнулять номера тикетов при закрытии всех ордеров. На всякий случай. 

Если я нигде не ошибаюсь, то это должно работать.

 
hochuvsyoznat >>:

Мне трудно понять по книге, я самоучка. Мне легче разбирать готовый код и вникать. 

Допустим  Х1, Х2, Х3, Х4 - тикеты ордеров. Х1-открытый ордер. При срабатывании тейк- профита Х1 нужно закрыть ордера Х2, Х3, Х4 .

Как будет выглядеть код ?

  Тогда Вы не самоучка, а, как это сказать... Вобщем Вы, разбирая чужие коды, наследуете чужой почерк и особенности. Как-то так. Самоучки же, обычно, всегда отличаются от всех остальных и учатся сами только по книгам. Только в книге можно найти действительно правильные вещи, а писатели кодов могут ошибаться.

 
FOReignEXchange >>:

  Тогда Вы не самоучка, а, как это сказать... Вобщем Вы, разбирая чужие коды, наследуете чужой почерк и особенности. Как-то так. Самоучки же, обычно, всегда отличаются от всех остальных и учатся сами только по книгам. Только в книге можно найти действительно правильные вещи, а писатели кодов могут ошибаться.

Тогда получается, что все кто учатся по книгам - наследуют почерк и особенности автора книги (у него же есть примеры).

 
Не знаю. Может быть.
 
hochuvsyoznat писал(а) >>

Тогда получается, что все кто учатся по книгам - наследуют почерк и особенности автора книги (у него же есть примеры).

прежде, чем создавать свой стиль, нужно классикой овладеть. свой стиль может и не сформироваться, а классика - всегда поможет.

 

Но я учился по одной книге и справке, иногда методом тыка, и здесь иногда спрашивал помощь. Не скажу, что у меня почерк как в книге. Скорее наоборот. Обычно я использую всего 2-3 оператора. if\else, while и всё вроде. 

Никакие шаблонные схемы я не использую. И всё работает.  

Если брать примеры из книги, то там любой советник содержит несколько блоков. Блок учёта ордеров, блок учёта ошибок и т.д. У меня этой шаблонной струткуры нету, хотя на некоторых экспертах ставлю проверку наличия ордеров, если это необходимо. Блока учёта ошибок тоже не ставлю. Просто при открытии позиции ставлю проскальзывание - 5 и ордера всегда открываются. Ошибок не бывает. 

 

Спасибо. Тема закрыта.

Я не увидел вот это:

""" 'Любой вопрос новичка, чтоб не захломлять форум. Профи не проходите мимо. Без вас никуда.' -  Любой вопрос новичка, чтоб не захломлять форум."""

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