Erreurs, bugs, questions - page 1311

 
Alexandr Bryzgalov:

Seulement par paires.

Voici le code (ancien style), il peut être amélioré :

Merci pour l'astuce, mais le script lui-même est là pour fermer les commandes superposées !

Je suis intéressé par la réalisation de cette fonctionnalité par le biais du terminal lui-même !

Dossiers :
 
murad:

Malheureusement, les machines plus anciennes ne supportent pas la connexion sécurisée utilisée sur nos serveurs web.

Nous recommandons les options suivantes :

  1. si possible, mettez à jour votre version d'Android
  2. Utilisez un autre navigateur (Chrome par exemple)
  3. mettre à jour votre appareil

Je ne peux pas voir les publicités non plus.

 
Lorsque l'option "Tracer les transactions sur le graphique" est activée, la trace doit-elle apparaître automatiquement sur le graphique ou dois-je effectuer des actions supplémentaires ? Terminal MetaTrader 5 build 1135.
 

J'ai un courtier avec une exécution en bourse.

Mon conseiller expert utilise une bibliothèque standard.

Lorsque je l'exécute, je vois dans le journal de mon conseiller expert qu'une commande a été déclenchée.

         trade.PositionOpen(_Symbol,// инструмент
                            ORDER_TYPE_BUY,// 
                            inLot,// количество лотов для торговли
                            ask,// последняя цена  ask
                            0.0,// Stop Loss
                            0.0,// Take Profit 
                            " ");                                             // без комментариев  

Mais il n'y a rien dans le journal du terminal. Je fais quelques recherches à la bibliothèque. J'ai trouvé ça.

   if(!FillingCheck(symbol))
      return(false);

Il se plante ici.

J'ai cherché plus loin et je suis arrivé à ceci.

         //--- wrong filling policy, set error code
         m_result.retcode=TRADE_RETCODE_INVALID_FILL;
         return(false);

Je suis revenu et j'ai trouvé ceci

//--- get possible filling policy types by symbol
   uint filling=(uint)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);

Retourne 0.

J'ai essayé de parler au personnel de soutien de ce courtier.

Ils m'ont dit.

"Si vous définissez l'exécution en bourse dans votre Expert Advisor, désactivez la vérification du type.

Je ne sais pas quoi en faire. Je devrais demander à mon courtier quel type d'erreur j'ai dans mon contrat de courtage.

 
Alexey Klenov:

J'ai un courtier avec une exécution en bourse.

Mon conseiller expert utilise la bibliothèque standard.

Lorsque je l'exécute, je vois dans le journal de mon conseiller expert qu'une commande a été déclenchée.

Mais il n'y a rien dans le journal du terminal. Je fais quelques recherches à la bibliothèque. J'ai trouvé ça.

Il se plante ici.

J'ai cherché plus loin et je suis arrivé à ceci.

Je suis revenu et j'ai trouvé ceci

Retourne 0.

J'ai essayé de parler au personnel de soutien de ce courtier.

Ils m'ont dit.

"Si vous définissez l'exécution en bourse dans votre Expert Advisor, désactivez la vérification du type.

Je ne sais pas quoi en faire. Je devrais demander à mon courtier quel type d'erreur j'ai dans mon contrat de courtage.

Essayez d'utiliser OrderSend() au lieu detrade.PositionOpen().
 
Михаил:
Essayez d'utiliser OrderSend() au lieu detrade.PositionOpen().
         MqlTradeRequest req;
         req.action=TRADE_ACTION_DEAL;       // Тип выполняемого действия
         req.symbol=_Symbol;                 // Имя торгового инструмента
         req.volume=inLot;                   //Запрашиваемый объем сделки в лотах
         req.type=ORDER_TYPE_BUY;            //Тип ордера
         //req.type_filling=ORDER_FILLING_FOK; // Тип ордера по исполнению
         //+------------------------------------------------------------------+
         //|                                                                  |
         //+------------------------------------------------------------------+
         MqlTradeResult rez;

         OrderSend(req,rez);

2015.05.20 23:01:55.387 Trades '*********' : échec de l'échange pour l'achat de 0.10 EURUSD au marché [Mode de remplissage non supporté].

avec le type_filling commenté le résultat est le même

 
Alexey Klenov:

2015.05.20 23:01:55.387 Trades '*********' : échec de l'échange pour l'achat de 0.10 EURUSD au marché [Mode de remplissage non supporté].

MqlTradeRequest request = {0};
  MqlTradeResult  result  = {0};
   
//--- Fill structure
  request.magic = 987654321;
  request.symbol = _Symbol;
  request.volume = inLot; 
  request.type_filling = ORDER_FILLING_IOC; //Взять то, что можно взять :)
  request.type_time = ORDER_TIME_DAY;
  request.action = TRADE_ACTION_DEAL;

 request.type = ORDER_TYPE_BUY;            //Тип ордера 

  request.comment = "Рыночный ордер...";
 
Михаил:
Le résultat est le même
 
Alexey Klenov:
Le résultat est le même

Courtiers à la FUCK !

Sec, je vais déposer un chèque et tu posteras les résultats...

//+------------------------------------------------------------------+
//| Expert Check Market Parametrs function                           |
//+------------------------------------------------------------------+
bool CheckMarketParam( const string a_symbol )
{
//--- Check for full mode
  long trade_mode = long( SymbolInfoInteger( a_symbol, SYMBOL_TRADE_MODE ) );
  
  if ( ( SYMBOL_TRADE_MODE_FULL & trade_mode ) != SYMBOL_TRADE_MODE_FULL )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает полную торговлю!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
//--- Check trade execution mode
  long market_info = long ( SymbolInfoInteger( a_symbol, SYMBOL_TRADE_EXEMODE ) );
    
  if ( market_info != SYMBOL_TRADE_EXECUTION_EXCHANGE )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает TRADE EXECUTION EXCHANGE режим!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
//--- Check orders mode
  int order_mode = int( SymbolInfoInteger( a_symbol, SYMBOL_ORDER_MODE ) );
  
  if ( ( SYMBOL_ORDER_MARKET & order_mode )!= SYMBOL_ORDER_MARKET )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Market Execution режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_LIMIT & order_mode )!= SYMBOL_ORDER_LIMIT )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Limit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_STOP_LIMIT & order_mode ) != SYMBOL_ORDER_STOP_LIMIT )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Stop Limit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_STOP & order_mode )!= SYMBOL_ORDER_STOP )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Stop режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_SL & order_mode) != SYMBOL_ORDER_SL )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Stop Loss режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_TP & order_mode) != SYMBOL_ORDER_TP )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Take Profit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
//---Filing mode
  int filling_mode = int( SymbolInfoInteger( a_symbol, SYMBOL_FILLING_MODE ) );
  
  if ( ( SYMBOL_FILLING_IOC & filling_mode ) != SYMBOL_FILLING_IOC )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает filling IOC режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_FILLING_FOK & filling_mode ) != SYMBOL_FILLING_FOK )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает filling IOC режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }      
//---Ckeck expiration
  int symbol_exp_type = int( SymbolInfoInteger( a_symbol, SYMBOL_EXPIRATION_MODE ) );
  
  if ( ( symbol_exp_type & SYMBOL_EXPIRATION_DAY ) != SYMBOL_EXPIRATION_DAY )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает экспирацию DAY!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  return( true );
}
 
Михаил:

Brokers to the FUCK !

Sec, je vais déposer un chèque et tu posteras les résultats...