FORTS recherche un trader MT5

 

Bonjour !

Je recherche quelqu'un qui négocie sur les FORTS avec un robot MT5 PAS dans l'Open.

Je cherche quelqu'un qui trade sur FORTS en utilisant un robot MT5, pas un Opener.

Faites-moi savoir si vous avez un problème sérieux à résoudre.

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

ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,. - - Категория: автоматические торговые системы
 
Est-ce que tout le monde fait des échanges lors de la journée portes ouvertes ?
 
Михаил:
Est-ce que tout le monde négocie à l'Open ?
Il se pourrait aussi qu'ils ne fassent pas de commerce du tout.
 
J'ai un compte chez BCS, mais je n'y ai pas encore négocié de robots. Je peux exécuter un spreader pour spammer les limites afin de mesurer le temps d'exécution (si je comprends bien ce dont vous avez besoin).
 
Adept:
J'ai un compte chez BCS, mais je n'y ai pas encore négocié de robots. Je peux exécuter un spreader pour spammer les limites afin de mesurer le temps d'exécution (si je comprends bien ce dont vous avez besoin).

Bonjour !

Bien sûr, tu as raison.

Il vous suffit de placer et de supprimer des ordres en suspens, mais pour une longue période (de préférence toute la journée) et très préférablement pour plusieurs symboles.

Et ensuite, attachez le fichier journal ici.

Merci d'avance !

N'oubliez pas que vous pouvez effectuer 2000 transactions gratuitement.

P/S Si je me souviens bien, le spreader passe des ordres très proches du marché.

Vous devez placer des ordres au prix MAX et MIN pour qu'ils ne se déclenchent pas.

Si vous ne disposez pas d'une telle évaluation, je vais en écrire une rapide.

 

Stitched tôt ce matin, je ne l'ai pas testé (mieux vaut le tester sur une démo d'abord).

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

Stitched tôt ce matin, je ne l'ai pas testé (mieux vaut le tester sur une démo d'abord).

Ok, je serai au terminal à partir de midi demain et j'attacherai le fichier dans la soirée.
 
Adept:
Ok, demain je serai au terminal en milieu de journée et j'attacherai le fichier dans la soirée.

Je l'ai vérifié sur la démo - cela fonctionne correctement !

J'ai un peu modifié le conseiller expert (voir pièce jointe).

Dossiers :
BKS_Test.mq5  7 kb
 
Михаил:

Je l'ai vérifié sur la démo - cela fonctionne correctement !

J'ai légèrement modifié le conseiller expert (voir pièce jointe).

Sur quel instrument de BCS dois-je tester la démo ?

J'ai une démo sur le réel - non remplie. Je me demande où la remplir...

Forts - l'accès depuis BCS est ouvert sur le réel.

Il existe une démo de MT 5 sur forex-bcs.ru.

Il existe des instruments :


 
Roman Shiredchenko:

Sur quel instrument de BCS la démo doit-elle être testée ?

J'ai sur un vrai - non rempli DEP. Je pense où remplir...

Forts - l'accès depuis BCS est ouvert sur le réel.

Il existe une démo de MT 5 sur forex-bcs.ru.

Il existe des instruments :

Bonne journée !

Sur tout instrument FORTS (par exemple) Si-9.15

 
Михаил:

Bonjour !

Sur tout instrument FORTS (par exemple) Si-9.15

Ce septembre s'adaptera-t-il à Ri U5 ?

Je regardais l'heure. C'est mieux que l'horloge d'Otkritie ou de BCS... Je veux dire le temps d'échange...

Kamp travaille tout le temps...

J'ai versé l'image dans le pré-post.