Как правильно анализировать Result.Deal() и Result.Order() - страница 2

 
Dmitriy Skub:
А я, вот, использую CTrade в авто-торговле и никаких проблем не имею.

Возможно, просто не заметили.

 
fxsaber:

Возможно, просто не заметили.

Возможно, возможно.

"Любая программа содержит хотя бы одну ошибку" - народная программистская мудрость))

 
Dmitriy Skub #:

Возможно, возможно.

"Любая программа содержит хотя бы одну ошибку" - народная программистская мудрость))

На форуме были примеры с CTrade.

 
Dmitriy Skub #:
А я, вот, использую CTrade в авто-торговле и никаких проблем не имею.

Ага, и каждый раз происходит вызов многочисленных проверок.

 
YuryK1980 #:
3.  BuyLimit, справка по СTrade, говорит как раз, что это отложенный ордер на покупку по цене лучше рынка.




Вот и возникает путаница.

Отложенный ордер, это ордер, который не сразу (может и сразу, зависит от цены) исполняется, а помещается в стакан цен, и если не исполнился полным объемом, 

то продолжает стоять в стакане.

И его заливка должна иметь флаг ORDER_FILLING_RETURN

В СTarde, BuyLimit - это лимитный ордер, который имеет заливку SYMBOL_FILLING_IOC или SYMBOL_FILLING_FOK, 

которые подразумевают обязательное снятие ордера.

Вы посмотрите исходник Trade.mqh куча лишнего, каждый раз повторяющегося кода.

Достаточно один раз, при инициализации, сделать необходимые проверки.

 
prostotrader #:

Вот и возникает путаница.

Отложенный ордер, это ордер, который не сразу (может и сразу, зависит от цены) исполняется, а помещается в стакан цен, и если не исполнился полным объемом, 

то продолжает стоять в стакане.

И его заливка должна иметь флаг ORDER_FILLING_RETURN

В СTarde, BuyLimit - это лимитный ордер, который имеет заливку SYMBOL_FILLING_IOC или SYMBOL_FILLING_FOK, 

которые подразумевают обязательное снятие ордера.

Вы посмотрите исходник Trade.mqh куча лишнего, каждый раз повторяющегося кода.

Достаточно один раз, при инициализации, сделать необходимые проверки.

избавиться от этого можно только в новой версии, надеюсь MQ тайно занимается ей, багов и непонятных ситуаций с наследиями, новая версия думаю сильно ожидаема среди пользователей

 
prostotrader #:

Вот и возникает путаница.

Отложенный ордер, это ордер, который не сразу (может и сразу, зависит от цены) исполняется, а помещается в стакан цен, и если не исполнился полным объемом, 

то продолжает стоять в стакане.

И его заливка должна иметь флаг ORDER_FILLING_RETURN

В СTarde, BuyLimit - это лимитный ордер, который имеет заливку SYMBOL_FILLING_IOC или SYMBOL_FILLING_FOK

которые подразумевают обязательное снятие ордера.

Вы посмотрите исходник Trade.mqh куча лишнего, каждый раз повторяющегося кода.

Достаточно один раз, при инициализации, сделать необходимые проверки.

Откуда такая уверенность?

Есть же метод:

CTrade::SetTypeFilling(const ENUM_ORDER_TYPE_FILLING filling)

которым можно предварительно указать тип ордера по исполнению.

Вот так тоже можно:

CTrade::SetTypeFilling(ORDER_FILLING_RETURN)

И тогда лимитный ордер будет залит по типу ORDER_FILLING_RETURN. 

 
Denis Kirichenko #:

Откуда такая уверенность?

Есть же метод:

которым можно предварительно указать тип ордера по исполнению.

Вот так тоже можно:

И тогда лимитный ордер будет залит по типу ORDER_FILLING_RETURN. 

Удивительная способность форумчан читать только последнее сообщение.

bool OpenBuy(double volume, double price)
{
//return;
   if(mytrade.BuyLimit(volume, price)) //если удачно выставили лимитный ордер
   {
      counter = 4; //>3 флаг того, что больше выставлять ордер не надо
      ticket_limit = mytrade.ResultOrder();
      return(true);  
   }
   else //если не удачно
   {
      counter++; //увеличиваем счетчик попыток на 1
      Alert("Не удалось выставить лимитный ордер ");
   }
return(false);   
}

В коде топикстартера никаких инициализаций нет, значит IOC или FOK, а это не отложенный ордер.

 
prostotrader #:

Удивительная способность форумчан читать только последний топик.

В коде топикстартера никаких инициализаций нет, значит IOC или FOK

С этим согласен. Но всё же не такой уж и страшный класс CTrade из СБ. Имхо
 
Denis Kirichenko #:
С этим согласен. Но всё же не такой уж и страшный класс CTrade из СБ. Имхо

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

Вообщем для ленивых написан...

Добавлено

И не забывайте, что еще аттачится это

#include <Object.mqh>

#include "OrderInfo.mqh"

#include "HistoryOrderInfo.mqh"

#include "PositionInfo.mqh"

#include "DealInfo.mqh"

А нужна всего одна функция OrderSend() :)

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