FORTES à procura do comerciante MT5

 

Boa tarde!

Procurando por alguém que negocia em FORTS com o robô MT5 NÃO no Open.

Estou procurando alguém que negocia em FORTS usando um robô MT5, não um Opener.

Por favor, avise-me se você tiver um problema sério para resolver.

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

ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,. - - Категория: автоматические торговые системы
 
Todos estão negociando no Open House?
 
Михаил:
Todos estão negociando no Open?
Também pode ser que eles não negociem de forma alguma.
 
Tenho uma conta na BCS, mas ainda não negociei lá robôs. Posso fazer um "spreader" para fazer spam os limites para medir o tempo de execução (se eu entender corretamente o que você precisa).
 
Adept:
Eu tenho uma conta na BCS, mas ainda não negociei lá robôs. Posso fazer um "spreader" para fazer spam os limites para medir o tempo de execução (se eu entender corretamente o que você precisa).

Boa tarde!

É claro que você acertou.

Você só precisa colocar e apagar pedidos pendentes, mas apenas por um longo tempo (de preferência o dia inteiro) e muito de preferência por mais de um símbolo.

E depois anexe o arquivo de registro aqui.

Muito obrigado de antemão!

Não esqueça que, de graça, você pode fazer 2000 transações.

P/S Se bem me lembro, o spreader coloca os pedidos muito próximos do mercado.

Você tem que fazer pedidos pelo preço MAX e MIN para que eles não acionem.

Se você não tiver tal EA, eu escreverei uma rápida.

 

Cosido esta manhã cedo, não o testei (é melhor testá-lo em uma demonstração primeiro)

//+------------------------------------------------------------------+
//|                                                     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();
    }  
  } 
}
 
Михаил:

Cosido esta manhã cedo, não o testei (é melhor testá-lo em uma demonstração primeiro)

Ok, estarei no terminal a partir do meio-dia de amanhã e anexarei o arquivo à noite.
 
Adept:
Ok, amanhã eu estarei no terminal no meio do dia e anexarei o arquivo à noite.

Confira na demonstração - funciona corretamente!

Ajustou um pouco o Expert Advisor (ver anexo)

Arquivos anexados:
BKS_Test.mq5  7 kb
 
Михаил:

Confira na demonstração - funciona corretamente!

Ajustou um pouco o Expert Advisor (ver anexo)

Em que instrumento da BCS devo testar a demonstração?

Tenho uma demonstração sobre o real - não preenchida. Estou pensando onde preenchê-la...

Forts - o acesso da BCS está aberto no real.

Há uma demonstração do MT 5 em forex-bcs.ru.

Existem instrumentos:


 
Roman Shiredchenko:

Em qual instrumento da BCS a demonstração deve ser testada?

Tenho um DEP real - não preenchido. Estou pensando onde preencher...

Forts - o acesso da BCS está aberto no real.

Há uma demonstração MT 5 em forex-bcs.ru.

Aí estão os instrumentos:

Bom dia!

Em qualquer instrumento FORTS (por exemplo) Si-9.15

 
Михаил:

Boa tarde!

Em qualquer instrumento FORTS (por exemplo) Si-9.15

Ri U5 caberá neste mês de setembro?

Eu estava olhando para a época. Bate o relógio da Otkritie ou da BCS. Refiro-me ao tempo de negociação...

O Kamp funciona o tempo todo...

Desfrutei da imagem no pré-post.

Razão: