ФОРТС ищу трейдера МТ5

 

Добрый день!

Ищу человека, который торгует на ФОРТС роботом МТ5 НЕ в Открывашке.

Большая просьба отозваться, т.к нужно решить

серьёзную проблему касающуюся всех. 

https://www.mql5.com/ru/forum/38456 

ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,. - - Категория: автоматические торговые системы
 
Неужели все торгуют в Открывашке? 
 
Михаил:
Неужели все торгуют в Открывашке? 
Может быть ещё вариант - не торгуют вообще.
 
У меня есть счет в БКС, но роботами не торговал там пока что. Могу запустить спредер, чтобы поспамил лимитками для замера времени исполнения (если я правильно понял то что вам нужно).
 
Adept:
У меня есть счет в БКС, но роботами не торговал там пока что. Могу запустить спредер, чтобы поспамил лимитками для замера времени исполнения (если я правильно понял то что вам нужно).

Добрый день!

Конечно правильно поняли.

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

А потом прикрепить лог-файл здесь.

Заранее ОГРОМНОЕ СПАСИБО! 

Не забудьте, что бесплатно, Вы можете сделать 2000 транзакций.

 

P/S Как мне помнится, спредер выставляет ордера очень близко к рынку.

Нужно ставить ордера по MAX и MIN цене, чтобы они не сработали.

Если у Вас нет такого советника, я напишу по-быстренькому. 

 

Настрочил рано утром, не проверял (лучше проверить сначала на демо)

//+------------------------------------------------------------------+
//|                                                     BKS_Test.mq5 |
//|                                          Copyright 2015, Mikalas |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Mikalas"
#property link      "https://www.mql5.com"
#property version   "1.00"
//
double sell_price;
double buy_price;
ulong buy_ticket;
ulong sell_ticket;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
  sell_price = 0;
  buy_price = 0;
  buy_ticket = 0;
  sell_ticket = 0;
//---
  if ( !GlobalVariableCheck( "trans_count" ) )
  {
    datetime a_time = GlobalVariableSet( "trans_count", 0 );
    
    if ( ulong( a_time ) == 0 )
    {
      MessageBox( "Глобальная переменная терминала 'Счётчик транзакций' не создана!", "Ошибка", MB_OK | MB_ICONHAND );
      return( INIT_FAILED );
    }
  }
//---  
  if ( !MarketBookAdd( _Symbol ) )
  {
    MessageBox( "Не добавлен стакан по символу " + _Symbol,   "Ошибка", MB_OK | MB_ICONHAND );
    return( INIT_FAILED );
  }
  return( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
  MarketBookRelease( _Symbol );   
}
//+------------------------------------------------------------------+
//| Expert Set transaction count function                            |
//+------------------------------------------------------------------+
void SetTransCount( const bool up_down )
{
  double tr_count;
  uint i = 0;
  do
  {
    i++;
    if ( GlobalVariableGet( "trans_count", tr_count ) )
    {
      if ( up_down )
      {
        if ( GlobalVariableSetOnCondition( "trans_count", tr_count + 1, tr_count ) )
        {
          i = 100;
        }
      }
      else
      {
        if ( GlobalVariableSetOnCondition( "trans_count", tr_count - 1, tr_count ) )
        {
          i = 100;
        }
      }
    }
  }  
  while( i < 100 );
}
//+------------------------------------------------------------------+
//| Remove order function                                            |
//+------------------------------------------------------------------+
void RemoveOrder( ulong &ticket )
{
   MqlTradeRequest request = {0};
   MqlTradeResult  result  = {0};
            
  request.action = TRADE_ACTION_REMOVE;
  request.order = ticket;
          
  if ( OrderSend( request, result ) )
  {
    if ( result.retcode == TRADE_RETCODE_PLACED )
    { 
      ticket = 0;
      SetTransCount( true );
    }
  }
  else
  {
    Print( "Ордер не удалён. Билет = ", ticket );
  }  
}
//+------------------------------------------------------------------+
//| Set order function                                               |
//+------------------------------------------------------------------+
void SetOrder( ulong &ticket, const double price, const bool buy_sell )
{
  ticket = 0;
  MqlTradeRequest request = {0};
  MqlTradeResult  result  = {0};
    
//--- Fill structure
  request.action = TRADE_ACTION_PENDING;
  request.magic  = 987654321;
  request.symbol = _Symbol;
  request.volume = 1;
  request.price  = price;
    
  if ( buy_sell )
  {
    request.type = ORDER_TYPE_BUY_LIMIT;
  }
  else
  {
    request.type = ORDER_TYPE_SELL_LIMIT;
  } 
  request.comment = "Отложенный ордер...";      
  request.type_filling = ORDER_FILLING_RETURN;
  request.type_time = ORDER_TIME_DAY;
  
//--- Send order
  if ( OrderSend( request, result ) )
  {
    if ( result.retcode == TRADE_RETCODE_PLACED ) 
    {
      ticket = result.order;
      SetTransCount( true );
    }
  }
  else
  {
    Print( "Ордер не установлен! ", _Symbol, ", Цена = ", price, "; Код возврата = ", result.retcode );
  }  
}
//+------------------------------------------------------------------+
// Expert Check orders timer function                                |
//+------------------------------------------------------------------+
bool CheckOrdersTimer( const uint start_value, const uint per_value )
{
  uint end_value = GetTickCount();
  
  if ( end_value < start_value )
  {
    if ( ( start_value - end_value ) >= per_value ) return( true );
  } 
  else
  {
    if ( ( end_value - start_value ) >= per_value ) return( true );
  }
  return( false );
}
//+------------------------------------------------------------------+
//| BookEvent function                                               |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
{
  if ( symbol == _Symbol )
  {
    double trc_value = GlobalVariableGet( "trans_count" );
//---
    if ( long( trc_value ) < 2000 )
    {
      uint st_val = GetTickCount();
      int tick_cnt = 1;
      sell_price = SymbolInfoDouble( _Symbol, SYMBOL_SESSION_PRICE_LIMIT_MAX );
      buy_price = SymbolInfoDouble( _Symbol, SYMBOL_SESSION_PRICE_LIMIT_MIN );
//---
      while ( !CheckOrdersTimer( st_val, 2000 ) )  //Используем вместо sleep 2 сек
      {
        tick_cnt--;
        tick_cnt++;
      }
//---           
      if ( ( sell_ticket > 0 ) && ( OrderSelect( sell_ticket ) ) )
      {
        RemoveOrder( sell_ticket );
      }
      else
      {
        SetOrder( sell_ticket, sell_price, false);
      }
//---      
      if ( ( buy_ticket > 0 ) && ( OrderSelect( buy_ticket ) ) )
      {
        RemoveOrder( buy_ticket );
      }
      else
      {
        SetOrder( buy_ticket, buy_price, true );
      }        
    }
    else
    {
      if ( ( sell_ticket > 0 ) && ( OrderSelect( sell_ticket ) ) )
      {
        RemoveOrder( sell_ticket );
      }
      if ( ( buy_ticket > 0 ) && ( OrderSelect( buy_ticket ) ) )
      {
        RemoveOrder( buy_ticket );
      }  
      ExpertRemove();
    }  
  } 
}
 
Михаил:

Настрочил рано утром, не проверял (лучше проверить сначала на демо)

Хорошо, завтра буду у терминала с середины дня и вечером прикреплю файл.
 
Adept:
Хорошо, завтра буду у терминала с середины дня и вечером прикреплю файл.

Щас проверил на демо Открывашки - работает правильно!

Немного подправил советник (см. вложение) 

Файлы:
BKS_Test.mq5  7 kb
 
Михаил:

Щас проверил на демо Открывашки - работает правильно!

Немного подправил советник (см. вложение) 

На каком инструменте от БКС  демо надо  тестировать?

У меня на реал - не залит дЕп. Размышляю куда залить...

Фортс - доступ от БКС открыт на реале.

Есть демо  МТ 5 на forex-bcs.ru.

Есть инструменты:


 
Roman Shiredchenko:

На каком инструменте от БКС  демо надо  тестировать?

У меня на реал - не залит дЕп. Размышляю куда залить...

Фортс - доступ от БКС открыт на реале.

Есть демо  МТ 5 на forex-bcs.ru.

Есть инструменты:

Добрый день!

На любом инструменте ФОРТС (н-р) Si-9.15 

 
Михаил:

Добрый день!

На любом инструменте ФОРТС (н-р) Si-9.15 

Ри У5 это сентябрь подойдёт?

По времени смотрел. Бьёт по часам что с Открытия, что у БКС... Я о времени торговли...

Камп работает постоянно...

Картинку в пред посте залил.