У меня есть Ticket ордера, как мне узнать открыт он или закрыт? - страница 2

 
Evgeniy Zhdan:

А ну да, не дочитал. Ну значит так. По времени закрытия значит выбирать.

Как будто ты никогда не ошибаешься.

Обрати внимание на моё  предыдущее сообщение. Пока я просто предлагал прочесть ещё несколько строк, ты дополнил своё сообщение какими словами?

И опять, я промолчал, а ты опять дополнил своё сообщение. Вот так, я никогда не ошибался.

 

Наконец-то разобрался. Спасибо Алексею за подсказку почитать.

Сейчас вот что имеем

            if(!OrderSend(mrequest,mresult))
               Print("Order Send Error");
            DealTicketUp = mresult.deal;
            Print("DealTicketUp ",DealTicketUp," ",mresult.order," ",mresult.price);
            
            if(OrderSelect(DealTicketUp))
               Print("OrderSelect True ",mresult.order);
            else
               Print("OrderSelect False ",mresult.order);
               
            if(PositionSelectByTicket(DealTicketUp))
               Print("Position Select True ",mresult.order);
            else
               Print("Position Select False ",mresult.order);

и как результат

1

Вроде теперь работает. Буду двигаться дальше.

Всем спасибо. Спасибо Алексею и Евгению. Ребята не ссорьтесь.  Нас и так на форуме не много.

Ещё раз всем спасибо. Вроде сдвинулось. Вопрос пока не решился, но думаю дальше разберусь.

 
Evgeniy Zhdan:

Ошибка.

OrderSelect

MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,
MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров.

Строите из себя, а элементарного не знаете


Мммда...22705 и весь профиль просто засыпан предложением недешёвых продуктов.

Куда мир катится...

 
Artyom Trishkin:

Мммда...22705 и весь профиль просто засыпан предложением недешёвых продуктов.

Куда мир катится...

В тар-тарары.

Умение продавать важнее умения программировать в нашем «бизнесе» если его так можно назвать.

Сегодня у меня интересовались продаю-ли я что-то на e-bay, если правильно написал. Но голосом звучит именно так.

Так вот говорят что не хило там можно заработать при определённых навыках втюхать… Или впихнуть невпихуемое…

 

Сейчас всё стало на место.

Лучшее решение

      if(!PositionSelectByTicket(DealTicketUp))
        {
         Print("Position Successful Closed");
        }

Вот полный код советника

MqlTradeRequest mrequest;   // Будет использоваться для отсылки торговых запросов
MqlTradeResult mresult;     // Будет использоваться для получения результатов выполнения торговых запросов
MqlTick latest_price;       // Будет использоваться для текущих котировок

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ZeroMemory(mrequest);
   ZeroMemory(mresult);

   mrequest.action = TRADE_ACTION_DEAL;            // немедленное исполнение
   mrequest.type_filling = ORDER_FILLING_FOK;      // тип исполнения ордера - все или ничего
   mrequest.symbol = _Symbol;                      // символ
   mrequest.volume =  0.01;                        // NormalizeDouble((AccountInfoDouble(ACCOUNT_BALANCE)*Lot)/StopLoss,2);
   mrequest.magic = 20;                            // Magic Number
   mrequest.deviation = 25;                        // проскальзывание от текущей цены
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
input double Persent = 0.01;
input int Stop = 100;
input int Take = 100;
void OnTick()
  {
//---
   static bool Start=true;
   static ulong DealTicketUp = 0;
   if(Start)
     {
      SymbolInfoTick(_Symbol, latest_price);
      mrequest.type = ORDER_TYPE_BUY;                                           // ордер Вверх
      mrequest.price = NormalizeDouble(latest_price.ask, _Digits);              // последняя цена ask
      mrequest.sl = NormalizeDouble(latest_price.ask - Stop * _Point, _Digits); // Stop Loss
      mrequest.tp = NormalizeDouble(latest_price.ask + Take * _Point, _Digits); // Take Profit
      mrequest.volume = NormalizeDouble(AccountInfoDouble(ACCOUNT_BALANCE) * Persent/Stop, 2);
      if(!OrderSend(mrequest,mresult))
         Print("Order Send Error");
      DealTicketUp = mresult.deal;
      Print("DealTicketUp ",DealTicketUp," ",mresult.order," ",mresult.price);


      Start = false;
     }
   static bool NewPosition = true,PositionClosed = true;
   if(NewPosition)
     {
      if(PositionSelectByTicket(DealTicketUp))
        {
         Print("Position Select True ",mresult.order);
         NewPosition = false;
        }
      else
         Print("Position Select False ",mresult.order);
     }
   if(PositionClosed)
     {
      if(!PositionSelectByTicket(DealTicketUp))
        {
         Print("Position Successfull Closed");
         PositionClosed=false;
        }
     }
  }

И соответственно результаты выполнения:

Всем спасибо. Вопрос можно считать закрытым.