Gens
Gens личный блог
16 апреля 2016, 12:45

Mql5

Подскажите как найти тикет исполненого ордера? Суть в том что мне нужно стоп изменить открытой сделки.подскажите кто знает
6 Комментариев
  • Андрей К
    16 апреля 2016, 13:38
    HistorySelect, потом HistoryOrderGetString
    хотя, судя по задаче, вроде как PositionGetString — узнаете тикет открытой позиции.
    • helk3rn
      16 апреля 2016, 16:39
      #include <Trade\Trade.mqh>
      CTrade trade;

      if(PositionSelect(_Symbol))
       {
        long ticket = PositionGetInteger(POSITION_TICKET);
        trade.PositionModify(ticket,stop_loss,take_pofit);
       }

      как вариант
        • helk3rn
          16 апреля 2016, 18:58

          Gens, Я там скобочку забыл (поправил).

          Так как в CTrade функция PositionModify перегружена, можно и так:

          #include <Trade\Trade.mqh>
          CTrade trade;

          trade.PositionModify(_Symbol,stop_loss,take_pofit);
           

            • helk3rn
              17 апреля 2016, 18:35

              Gens, код бы глянуть (именно часть с модификацией).

              Ну вообще, если это при использовании второго варианта, то, конечно, логично добавить проверку 
              if(PositionSelect(_Symbol))
              {
              //модификация

              }

              А если вообще по хорошему, лучше вообще не использовать стандартные стоплоссы нигде кроме тестера. 

              Кароч, скиньте код эксперта с вырезанной торговой логикой, оставив только модули исполнения и модификации, ночью гляну — раз уж мы заморочились, надо доделать нормально :).

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн