Erreurs, bugs, questions - page 922

 
sergeev:
La touche F9 de votre terminal de courtage est cassée ?

Dans la vidéo https://www.youtube.com/watch?v=uEGd4g8xK40 j'ai essayé de montrer que par F9 tout fonctionne.
J'ai peut-être raté quelque chose... Vous parlez du DC (dealing center)
J'essaie de travailler sur un compte de démonstration MT5 avec le courtier Otkritie.
Aujourd'hui, j'ai cherché qui d'autre travaille (quels courtiers) sur MT5 avec les futures... Je n'ai pas pu trouver de courtier russe... Toutes les démos, toutes les démos...

 
Rone:

2. Il existe une classe qui possède cette méthode :

Le nom du fichier est une propriété et une valeur lui est attribuée lors de l'initialisation de l'objet. Autrement dit, lorsque la méthode est appelée, nous ouvrons le fichier, le lisons ligne par ligne et, dès que nous trouvons une ligne appropriée, nous renvoyons sa sous-chaîne. Si le fichier n'est pas ouvert ou s'il n'y a pas de chaîne correspondante, nous retournons la chaîne qui a été introduite dans l'entrée.

Si nous appelons la méthode une fois, tout fonctionne. Mais si vous appelez plusieurs fois de suite - cela ne fonctionne que la première fois, tandis que la deuxième et les tentatives suivantes d'ouvrir le fichier - INVALID_HANDLE (vérifié avec print). Quel pourrait être le problème ?

Le fichier n'est pas toujours fermé lorsque la fonction se termine.
 
На видео  https://www.youtube.com/watch?v=uEGd4g8xK40 я постарался показать что по F9 все работает.

Si l'heure est réglée pendant le réglage normal de la commande par F9,

alors l'heure est également fixée de manière programmatique à partir de MQL5.

Par conséquent, cherchez une erreur. Faites un ordre, faites des logs et criez.

Mais rien ne dépend de la société de courtage dans ce cas, puisque tout fonctionne par F9.

 


Chers développeurs, voici ce qu'il en était il y a un an


https://www.mql5.com/ru/forum/1931/17217#comment_17217

Lari333:

Bonjour.

2. Lorsque j'établis un ordre de façon programmatique avec le paramètre d'expiration, l'ordre n'est pas établi et donne l'erreur 10022 (date d'expiration non valide dans la requête).

request.action=TRADE_ACTION_PENDING ;
request.symbol=Symbol() ;
request.volume=Lots ;
request.price=NormalizeDouble(Price,Digits) ;
request.sl=NormalizeDouble(Loss,Digits) ;
request.tp=NormalizeDouble(Take,Digits) ;
request.type=ORDER_TYPE_SELL_LIMIT ;
request.magic=NombreMagique ;
request.type_time=ORDER_TIME_SPECIFIED ;
request.expiration=TimeTradeServer()+5*60*kol5ot ;
OrdreEnvoi(demande,résultat) ;

Je dois modifier l'ensemble des commandes sans expiration et la date d'expiration sera acceptée.

OrderSelect(ticket) ;
request.symbol=Symbol() ;
request.volume=OrderGetDouble(ORDER_VOLUME_INITIAL) ;
request.price=OrderGetDouble(ORDER_PRICE_OPEN) ;
request.sl=OrderGetDouble(ORDER_SL) ;
request.tp=OrderGetDouble(ORDER_TP) ;
request.type=ORDER_TYPE_SELL_LIMIT ;
request.magic=NombreMagique ;
request.order=ticket ;
request.action=TRADE_ACTION_MODIFY ;
request.type_time=ORDER_TIME_SPECIFIED ;
request.expiration=TimeTradeServer()+5*60*kol5ot ;
OrdreEnvoi(demande,résultat) ;


Est-ce que ça a l'air d'être encore là ?

Expiration. Проблема с результатами
Expiration. Проблема с результатами
  • www.mql5.com
При оформлении запроса на установку отложенного ордера пробую использовать такую конструкцию:.
 
sergeev:


Chers développeurs, voici ce qui s'est passé il y a un an.


https://www.mql5.com/ru/forum/1931/17217#comment_17217


On dirait que c'est toujours là, n'est-ce pas ?

Je viens de vérifier avec une légère modification de l'exemple ci-joint. Le pendule est affiché normalement.

//--- input parameters
input bool     use_expir=true;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlTradeRequest request;
   MqlTradeResult result;
   double Lots=0.1;
   double Price=SymbolInfoDouble(_Symbol,SYMBOL_BID)+1000*SymbolInfoDouble(_Symbol,SYMBOL_POINT);
   double Loss=Price+1000*SymbolInfoDouble(_Symbol,SYMBOL_POINT);
   double Take=Price-1000*SymbolInfoDouble(_Symbol,SYMBOL_POINT);
   int MagicNumber=55555;
   int kol5ot=PeriodSeconds(PERIOD_D1);
//---
   request.action=TRADE_ACTION_PENDING;
   request.symbol=Symbol();
   request.volume=Lots;
   request.price=NormalizeDouble(Price,_Digits);
   request.sl=NormalizeDouble(Loss,_Digits);
   request.tp=NormalizeDouble(Take,_Digits);
   request.type=ORDER_TYPE_SELL_LIMIT;
   request.magic=MagicNumber;
   request.type_time=ORDER_TIME_SPECIFIED;
   request.expiration=TimeTradeServer()+5*60*kol5ot;
   if(OrderSend(request,result))
     {
      PrintFormat("OrderSend for %s returned true. Expiration date = %s", EnumToString(request.type), TimeToString(request.expiration));
     }
  }
//+------------------------------------------------------------------+

Sortie vers le Journal des experts

2013.01.22 16:11:00     Experts AutoTrading is enabled
2013.01.22 16:16:15     CheckExpirationinOrders (EURUSD,H1)     OrderSend for ORDER_TYPE_SELL_LIMIT returned true. Expiration date = 2013.11.18 13:16
 

Nikos52 , Exécutez et déboguez le script du haut.

Si vous obtenez une erreur 1022, écrivez au Service Desk en indiquant tous les détails de votre courtier.

 
sergeev:

Nikos52 , Exécutez et déboguez le script du haut.

Si vous obtenez une erreur 1022, écrivez au Service Desk en indiquant tous les détails de votre courtier.

Désolé, je ne connais pas vraiment le jargon. Que voulez-vous dire par "déboguer" ? Cela vient-il du mot déboguer ? :)
 
Nikos52:
Cela vient-il du mot debug ? :)

oui

maintenant vous connaissez l'argot :)

 
sergeev:
Oui

Peinture à l'huile et vue de côté...

Je viens de parler aux "sauveteurs" du courtier - ils disent que cette erreur ne concerne que les comptes de démonstration, ils disent que cela ne se produira pas sur les comptes réels.
Mais comment écrire un EA et le tester sur l'historique ? - Eh bien, nous sommes en train de décider, nous correspondons avec les développeurs.

C'est comme la vieille anecdote sur l'asile de fous... Si tu apprends à nager, on mettra de l'eau dans la piscine.

 
Nikos52:

Je viens de parler aux "sauveteurs" du courtier et ils disent que cette erreur ne concerne que les comptes de démonstration et qu'elle ne se produira pas sur les comptes réels.

Si vous avez un problème avec la touche F9 dans les comptes de démonstration, mais pas avec MQL5, envoyez une demande au Service Desk sur le forum avec tous les logs et une description du problème .

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
Raison: