Erreurs, bugs, questions - page 2687

 
Andrey Khatimlianskii:

Y a-t-il une limite de 100 millions là aussi ?

également

 
Andrey Kaunov:

En général, le courtier s'est entêté à supprimer ma question du forum. Après la troisième fois, ils ont répondu à des absurdités dans mon message personnel :

Je n'ai pas reçu de réponse du courtier, mais je ne sais pas comment répondre.


P.S. Ils ont laissé mon message dans un fil, mais pas de réponse ou d'au revoir.

https://forum.alpari.com/index.php?/topic/

Je traite avec le même courtier. J'ai rencontré le même problème. La différence entre les devises et l'or (ainsi que les indices) réside dans la propriété SYMBOL_TRADE_MODE.

Pour les devises, SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_FOREX et pour les métaux et les indices, SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_CFDLEVERAGE.

Il semble que ce courtier ou la plateforme pour le mode SYMBOL_CALC_MODE_CFDLEVERAGE ne calcule pas correctement les propriétés SYMBOL_TRADE_TICK_VALUE_PROFIT et SYMBOL_TRADE_TICK_VALUE_LOSS.

Vous devez donc vous accroupir un peu plus pour calculer les symboles en mode SYMBOL_CALC_MODE_CFDLEVERAGE. J'utilise la formule de la documentation

Profit : (prix de clôture - prix d'ouverture) * Taille du contrat*Lots

.

Voici un exemple de la fonction qui, chez ce courtier, calcule le volume de la position en fonction du prix d'ouverture, du prix stop-loss et de la perte maximale dans la devise du compte. Il fonctionne correctement avec Alpari, je n'ai pas encore vérifié avec d'autres courtiers.

double calcVolume(double sl, double price, double maxLoss){
   ENUM_SYMBOL_CALC_MODE cm = si.TradeCalcMode();       // si - внешняя переменная CSymbolInfo из стандартной библиотеки
   double priceDiff = MathAbs(price - sl); 
   double ticks = priceDiff/si.Point();         
   double lots;
   string convertSymbol;
   string accountCurrency = AccountInfoString(ACCOUNT_CURRENCY);
   Print("SL ticks: ", ticks);
   switch(cm) {
      case SYMBOL_CALC_MODE_FOREX:      
         // это для валютных пар
         lots = maxLoss / ticks / si.TickValueLoss();
         break;
      case SYMBOL_CALC_MODE_CFDLEVERAGE: 
         // а эти танцы с бубном для металлов и индексов
         lots = maxLoss / priceDiff / si.ContractSize();
         if (si.CurrencyProfit() != accountCurrency) {
            // валюту прибыли конвертируем в валюту депозита
            convertSymbol = si.CurrencyProfit() + accountCurrency + SymbolSuffix;
            double convert = SymbolInfoDouble(convertSymbol, SYMBOL_BID);
            if (convert != 0) {
               Print("Convert currency1 to ", convertSymbol, " convert bid: ", convert);            
               lots = lots / convert;
            }
            else {
               convertSymbol = accountCurrency + si.CurrencyProfit() + SymbolSuffix;
               convert = SymbolInfoDouble(convertSymbol, SYMBOL_ASK);
               Print("Convert currency2 to ", convertSymbol, " convert ask: ", convert);            
               lots = lots * convert;
            }
         }
         break;
      default:
         Print("ERROR need support calc for: ", EnumToString(cm));
         lots = 0;
         break;
   }
   double floorLots = MathFloor(lots / si.LotsStep()) * si.LotsStep();
   Print("raw lots: ", lots, ", floorLots: ", floorLots, " diff: ", NormalizeDouble(100*floorLots/lots, 2), "%");
   return floorLots;
}
 
Alexey Rassvetnyy:

Les profits/pertes dans l'infobulle pour les ordres d'achat et de vente à cours limité sont calculés de manière incorrecte.

Messieurs, MQ, le défaut décrit a-t-il été corrigé ? Devons-nous nous attendre à ce qu'il soit corrigé dans la prochaine version ?

Lien vers l'article original sur le défaut.

https://www.mql5.com/ru/forum/1111/page2670#comment_15391563

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2020.03.11
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Andrey Dik:

également

Puis les problèmes.

 
J'ai trouvé ça dans le journal de bord.
2020.03.29 20:58:28.061 SymbolClone (EURUSD,M1) Unknown runtime error in 'SymbolClone.mq5' (1,1)

Pour jouer, démarrez en Debug et atteignez le point d'arrêt. Ensuite, dans le Terminal (pas ME), changez de profil - SHIFT+F5.

 
Alexey Rassvetnyy:

Négocier avec le même courtier. J'ai rencontré le même problème. La différence entre les devises et l'or (ainsi que les indices) réside dans la propriété SYMBOL_TRADE_MODE.

Pour les devises, SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_FOREX et pour les métaux et les indices, SYMBOL_TRADE_MODE = SYMBOL_CALC_MODE_CFDLEVERAGE.

Il semble que ce courtier ou la plateforme pour le mode SYMBOL_CALC_MODE_CFDLEVERAGE ne calcule pas correctement les propriétés SYMBOL_TRADE_TICK_VALUE_PROFIT et SYMBOL_TRADE_TICK_VALUE_LOSS.

Vous devez donc vous accroupir un peu plus pour calculer les symboles en mode SYMBOL_CALC_MODE_CFDLEVERAGE. J'utilise la formule de la documentation

Profit : (prix de clôture - prix d'ouverture) * Taille du contrat*Lots

.

Voici un exemple de la fonction qui, chez ce courtier, calcule le volume de la position en fonction du prix d'ouverture, du prix stop-loss et de la perte maximale dans la devise du compte. Chez Alpari, cela fonctionne correctement, chez d'autres courtiers je n'ai pas encore vérifié.


C'est génial, bien sûr. Mais pourquoi dois-je suivre la voie difficile si je peux et dois utiliser la fonction standard TICK VALUE ?

Peut-être que les développeurs feront tout de même attention à cette erreur.

Alexey Rassvetnyy:

Messieurs, représentants de la société MQ, ce défaut a-t-il été corrigé ? Attendez-vous un correctif dans la prochaine version ?

Lien vers l'article original sur le défaut.

https://www.mql5.com/ru/forum/1111/page2670#comment_15391563

Je me joins à la question.

Voici mon message originalhttps://www.mql5.com/ru/forum/351/page4#comment_15429966
Расчет TickValue и прибыли
Расчет TickValue и прибыли
  • 2010.09.26
  • www.mql5.com
На межбанке Equity постоянно меняется, если вы открыли и закрыли позицию с валютой прибыли не равной валюте счета (например, на USD-счете совершили сделку на USDJPY).
 
Andrey Khatimlianskii:

Puis les problèmes.

Pour les tâches de l'ordre de la milliseconde, il n'y a aucun sens à optimiser sur les agents, il est préférable de tout faire manuellement et non sur mql. donc la limitation est tout à fait raisonnable dans tous les cas, c'est juste dommage qu'elle soit implicite

 
Andrei Trukhanovich:

pour les tâches de l'ordre de la milliseconde, il n'y a aucun sens à optimiser sur les agents, il est préférable de tout faire manuellement et non sur mql. la limitation est donc tout à fait raisonnable dans tous les cas, c'est juste dommage qu'elle soit implicite

Même si vous connectez Claud et donnez 100-500-1000K packs par agent ?

Peut-être, oui, les coûts de réseau ruineraient tout le gain.

 
fxsaber:

mq5 - normal. mq4 - cassé. Vous pouvez prendre TypeToBytes_ExampleScript.mq4 d'ici. Compile seulement si l'extension est changée en mq5.

2372 - l'erreur a été corrigée, merci.

 

2 heures de test et observation que le testeur échoue sur 3 ordinateurs et vps différents

Le bouton de démarrage ne fonctionne plus après quelques essais dans le testeur (toujours différents).

Je dois toujours redémarrer le terminal

Qui a la même chose en ce moment ? Je suppose que cela a quelque chose à voir avec la connexion aux serveurs.