Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ищи и скачивай программы из Code Base через MetaTrader. Это быстро!
Valerii Mazurenko
3484
Valerii Mazurenko 2014.04.28 23:53 

По аналогии с веткой Опыты с МетаТрейдер 5 в "Открытие", хотелось бы обсудить некоторые вопросы касаемые MetaTrader 5 и Украинской Биржи в части торговли фьючерсом на индех UX (другие инструменты всё-равно недоступны).

Итак, пока не могу побороть модификацию отложенного ордера.

Инструмент имеет настройки:

Согласно справке:

Modify Pending Order
Trade order to modify the prices of a pending order. It requires to specify the following 7 fields:
·action
·order
·price
·sl
·tp
·type_time
·expiration

Соответственно, мой запрос:

MqlTradeRequest request;
MqlTradeResult res;
request.price        = someprice;
request.action       = TRADE_ACTION_MODIFY;
request.order        = OrderGetTicket(0);   
request.sl           = 0;
request.tp           = 0;
request.type_filling = ORDER_FILLING_RETURN;
request.type_time    = ORDER_TIME_DAY;
OrderSendAsync(request, res); 
В итоге получаю "Invalid request" в OnTradeTransaction (result.retcode = 10013 -> 

TRADE_RETCODE_INVALID

)

 Хотя, может нужно NormalizeDouble сделать, но это уже только завтра проверю.

Есть ещё идеи? 

Vladimir Karputov
Модератор
32667
Vladimir Karputov 2014.04.29 07:02  
Когда Вы выставляли отложенный ордер, скорее всего, упустили из виду настройку инструмента "Expiration". По умолчанию значение равно "Сегодня". В таком ордере дату истечения изменить нельзя ( можете попробовать проверить вручную).
Valerii Mazurenko
3484
Valerii Mazurenko 2014.04.29 22:48  
barabashkakvn:
Когда Вы выставляли отложенный ордер, скорее всего, упустили из виду настройку инструмента "Expiration". По умолчанию значение равно "Сегодня". В таком ордере дату истечения изменить нельзя ( можете попробовать проверить вручную).

Не, выставлял этот флаг для отложки изначально (а то не хотела выставляться). 

NormalizeDouble не помог, вспомнил о ZeroMemory - завтра проверю. 

Mikhail Filimonov
5918
Mikhail Filimonov 2014.04.30 00:11  

У меня работает так:

 

//+------------------------------------------------------------------+
//| Modify order                                                     |
//+------------------------------------------------------------------+
void Modify( const double price, const ulong ticket )
{
  if ( ticket > 0 )
  {
    MqlTradeRequest request = {0};
    MqlTradeResult  result  = {0};
  
    request.action    = TRADE_ACTION_MODIFY;
    request.magic     = magic_num;
    request.symbol    = a_symbol;
    request.order     = ticket;
    request.price     = price;
    request.type_time = ORDER_TIME_DAY;
  
    if ( OrderSend( request, result ) )
    {
      if ( result.retcode == TRADE_RETCODE_PLACED ) 
      {
        Print( "Modify done." );
      }
      else
      {
        Print( "Result modify order failed! Ticket = ", ticket, " Request type = ", EnumToString( request.type ), " Result retcode = ", GetRetCode( result.retcode ) );
      }
    }
    else
    {
      Print( "Modify order failed! Ticket = ", ticket, " Request type = ", EnumToString( request.type ), " Result retcode = ", GetRetCode( result.retcode ) );
    }
  }
}

Работает на реальном счёте.

Valerii Mazurenko
3484
Valerii Mazurenko 2014.04.30 08:01  
Mikalas:

Работает на реальном счёте.

спс, попробую
Valerii Mazurenko
3484
Valerii Mazurenko 2014.05.01 12:37  
Mikalas:

У меня работает так:

К Вашему варианту добавил request.type_filling и начали наконец-то появляться успешные модификации, спасибо.

Но, к сожалению, ещё Invalid Request проскакивают. Буду дальше изучать после выходных  (много мест у меня с модификацией)

Gennadiy Stanilevych
11664
Gennadiy Stanilevych 2014.06.03 09:17  

МастерБрок - первый украинский брокер, который установил и эксплуатирует на РЕАЛЕ МТ5. Реально можно торговать только индекс украинской биржи. На заданный вопрос о сроках подключения в терминал акций для реальной торговли, получен следующий ответ от брокера:

"Добрый день.
Есть от вас письмо с вопросом по поводу подключения акций в МТ5.
Но МетаКвотсы по техническим причинам пока не могут добавить их в терминал.
В mql мы запрос не отправляли.
Mql знают о проблеме невозможности торговать акциями на УкрБирже.

С уважением компания «МАСТЕР БРОК», "

Уважаемые разработчики!

Убедительно прошу вас разъяснить по какой причине нет возможности торговать акциями украинской биржи! 

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

Aytugan Khafizov
Модератор
444
Aytugan Khafizov 2014.06.03 09:35  
iTC:


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

Этот вопрос точно к конкретному брокеру. в МТ4/5 серверах есть все инструменты для работы с историей: и через API, и вручную через импорт-экспорт в CVS формате. 
Vladimir Karputov
Модератор
32667
Vladimir Karputov 2014.06.03 09:46  
aytugan:
Этот вопрос точно к конкретному брокеру. в МТ4/5 серверах есть все инструменты для работы с историей: и через API, и вручную через импорт-экспорт в CVS формате. 
Отслеживать дыры в истории должно программное обеспечение на стороне брокера. Причем в автоматическом режиме, а не кто-нибудь из техподдержки брокера. Брокер получает все данные через шлюз с биржи, а следовательно имеет доступ к истории на стороне биржи. Поэтому восстанавливать историю должно программное обеспечение брокера, а не "... API, и вручную через импорт-экспорт в CVS формате".
Aytugan Khafizov
Модератор
444
Aytugan Khafizov 2014.06.03 15:33  
barabashkakvn:
Отслеживать дыры в истории должно программное обеспечение на стороне брокера. 

Вот пусть брокер и напишет это програмное обеспечение, благо разработчики и торговой платформы, и биржи сделали необходимый функционал в виде API.

В чем тогда добавленная стоимость продукта от такого брокера? Что он нажатием кнопки "Next" поставил МТ5 и шлюзы? 

Gennadiy Stanilevych
11664
Gennadiy Stanilevych 2014.06.03 19:12  
aytugan:

Вот пусть брокер и напишет это програмное обеспечение, благо разработчики и торговой платформы, и биржи сделали необходимый функционал в виде API.

В чем тогда добавленная стоимость продукта от такого брокера? Что он нажатием кнопки "Next" поставил МТ5 и шлюзы? 

Ну да. Зачем это брокеру нужно. Заплатить около 150 косарей за МТ5, а потом еще писать какие-то скрипты?! У них есть Quik.

Я связывался с сисадминами Украинской биржи с просьбой помочь в этом вопросе. Или хотябы рассказать в чем проблема с МТ5. Они ответили, что фидер у них одинаковый для всех платформ. Как забирать инфу все знают. Если МТ5 это делать не умеет, то это пробдема разработчика. На вопрос, если МТ5 работает криво, зачем ее сертифицировали на украинской бирже, они не ответили. Наверное коррупционная составляющая... =) 

/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий