FORTS cerca trader MT5

 

Buon pomeriggio!

Cerco qualcuno che faccia trading su FORTS con robot MT5 NON in Open.

Sto cercando qualcuno che faccia trading su FORTS usando un robot MT5, non un Opener.

Fatemi sapere se avete un problema serio da risolvere.

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

ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,. - - Категория: автоматические торговые системы
 
Sono tutti in commercio all'Open House?
 
Михаил:
Tutti fanno trading all'Open?
Potrebbe anche essere che non si scambiano affatto.
 
Ho un conto alla BCS, ma non ho ancora scambiato robot lì. Posso eseguire uno spreader per spammare i limiti per misurare il tempo di esecuzione (se ho capito bene di cosa avete bisogno).
 
Adept:
Ho un conto alla BCS, ma non ho ancora scambiato robot lì. Posso eseguire uno spreader per spammare i limiti per misurare il tempo di esecuzione (se ho capito bene di cosa avete bisogno).

Buon pomeriggio!

Certo che hai capito bene.

Hai solo bisogno di piazzare e cancellare ordini pendenti, ma solo per un lungo periodo (preferibilmente l'intera giornata) e molto preferibilmente per più di un simbolo.

E poi allegare il file di log qui.

Molte grazie in anticipo!

Non dimenticate che gratuitamente potete fare 2000 transazioni.

P/S Se ricordo bene, lo spreader mette ordini molto vicini al mercato.

Devi mettere ordini al prezzo MAX e MIN in modo che non si attivino.

Se non avete un tale EA, ne scriverò uno veloce.

 

Cucito stamattina presto, non l'ho testato (meglio testarlo prima su una demo)

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

Cucito stamattina presto, non l'ho testato (meglio testarlo prima su una demo)

Ok, sarò al terminale da mezzogiorno domani e allegherò il file in serata.
 
Adept:
Ok, domani sarò al terminale a metà giornata e allegherò il file in serata.

L'ho controllato sulla demo - funziona correttamente!

Modificato un po' l'Expert Advisor (vedi allegato)

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

L'ho controllato sulla demo - funziona correttamente!

Modificato un po' l'Expert Advisor (vedi allegato)

Su quale strumento della BCS dovrei testare la demo?

Ho un demo sul reale - non riempito. Sto pensando a dove riempirlo...

Forti - l'accesso da BCS è aperto sul reale.

C'è una demo di MT 5 su forex-bcs.ru.

Ci sono strumenti:


 
Roman Shiredchenko:

Su quale strumento della BCS deve essere testato il demo?

Ho su un vero - non riempito DEP. Sto pensando dove riempire...

Forti - l'accesso da BCS è aperto sul reale.

C'è una demo MT 5 su forex-bcs.ru.

Ci sono gli strumenti:

Buona giornata!

Su qualsiasi strumento FORTS (es.) Si-9.15

 
Михаил:

Buon pomeriggio!

Su qualsiasi strumento FORTS (per esempio) Si-9.15

Ri U5 si adatta a questo settembre?

Stavo guardando l'ora. Batte l'orologio di Otkritie o BCS... Intendo il tempo di negoziazione...

Kamp funziona sempre...

Versato l'immagine nel pre-post.