Erreurs, bugs, questions - page 3175

 
fxsaber #:

Les pointeurs sont-ils devenus des adresses dans MQL ou quelle est la signification de ceci maintenant ?

Oui, rien ne semble avoir changé (dans la build 2949 également). Un pointeur vers une classe peut être converti en void * avant que la classe ne soit convertie.

 

Existe-t-il un moyen de surmonter le fait de cliquer sur l'objet à travers l'objet.

Je crée une ligne de tendance et juste au-dessus d'elle, il y a un BitmapLabel qui la recouvre complètement. Si vous cliquez directement sur l'endroit où se trouve la ligne de tendance sous le BitmapLabel , elle commence à bouger.

J'en joins une vidéo.

 
William Roeder #:

Votre courtier a fait une erreur. Parlez-lui.

Je comprends que le courtier a peut-être oublié d'ajuster quelque chose correctement dans les paramètres de certains symboles, mais ce n'est pas seulement le problème de mon courtier, mon client a également ce problème avec un autre borker.

Et aujourd'hui nous n'avons pas d'alternative pour OrderCalcMargin(). Si cette fonction renvoie une valeur erronée de la marge requise, alors toutes les autres fonctions personnalisées renvoient également une valeur erronée.

OrderCalcMargin est souvent utilisé par de nombreux outils de trading, qui aident à voir la marge requise par le client et à calculer le lot correctement.

Que faire ? Peut-être pouvons-nous obtenir une formule qui ne dépende pas des facteurs humains ? Certains courtiers ajustent tout correctement, et beaucoup d'autres non. Et nous aurons toujours cette erreur avec une marge incorrecte.

 
Aleksei Beliakov #:

Existe-t-il un moyen de surmonter le fait de cliquer sur l'objet à travers l'objet.

Je crée une ligne de tendance et juste au-dessus d'elle, il y a un BitmapLabel qui la recouvre complètement. Si vous cliquez directement sur l'endroit où se trouve la ligne de tendance sous le BitmapLabel , elle commence à bouger.

J'en joins une vidéo.

Est-il possible de faire quelque chose avec OBJPROP_SELECTABLE... Disons qu'en appuyant sur une certaine touche (ou bouton sur le graphique) pour bloquer ou débloquer la sélection d'un objet

 

Je suppose qu'il serait pratique que le compilateur affiche un avertissement si la pièce jointe, qui se trouve après OrderSelect(), contient d'autres appels OrderSelect(), y compris des appels de fonction.

Hier toute la nuit à la recherche du bug, et c'est la deuxième fois pour cette raison.

void Trailing()
{
   for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber()==magic)
         {
            if(OrderType() == OP_BUY)
            {
               if(Bid >= GetAveragePrice(OP_BUY)+start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Bid >= OrderStopLoss()+(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Bid-tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing buy err ", GetLastError());
                     }
                  }
               }
            }
            if(OrderType()==OP_SELL)
            {
               if(Ask <= GetAveragePrice(OP_SELL)-start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Ask <= OrderStopLoss()-(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Ask+tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing sell err ", GetLastError());
                     }
                  }   
               }   
            }   
         }
      }
   }
}
double GetAveragePrice(int in_type)//расчет средней цены позиций
{
   double dRes=-1;
   double dSum=0;
   double dLot=0;
   double dComission=0;
   double dSwap=0;
   int iTotalPos=OrdersTotal();
   for(int cnt=0;cnt<iTotalPos;cnt++)
   {
      if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) Print( "Error Select Order");
      {
         if(OrderType()==in_type && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
         {
            dSum+=OrderOpenPrice()*OrderLots();
            dLot+=OrderLots();
            dSwap+=OrderSwap();
            dComission+=OrderCommission();
         }
      }    
   }     
   if(in_type==OP_BUY && dLot!=0) dRes=dSum/dLot-dSwap/dLot*Point-dComission/dLot*Point;
   if(in_type==OP_SELL && dLot!=0) dRes=dSum/dLot+dSwap/dLot*Point+dComission/dLot*Point;
   
   return dRes;
}
 
Andrei Sokolov appels de fonction.

Hier, j'ai cherché l'insecte toute la nuit et c'est la deuxième fois pour cette raison.

Encore quelques jours comme ça et vous n'aurez plus besoin d'avertissements.

 
Alexey Viktorov #:

Encore quelques jours comme ça et tu n'auras plus besoin d'avertissement.

Cela n'invalide pas le fait que ce serait plus pratique avec un avertissement

 
Comment utiliser cette application est comment gagner
 
Hanene1304 #:
Utiliser cette application, c'est gagner

Veuillez consulter les messages/informations/liens ci-dessous.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

comment gagner 1 million de dollars ?

Sergey Golubev, 2022.02.17 15:20

Trouvez un courtier Metatrader (il y a beaucoup de courtiers Metatrader, utilisez google pour les trouver), et ouvrez le compte selon leurs conditions sur leurs sites web.
Essayez d'abord avec la démo.

1. L'article - MQL5.community - User Memo

2. Aide MetaTrader 5 -Ouvrir un compte

3. Par où commencer ?
https://www.mql5.com/en/forum/212020

4. Aide MetaTrader 5 - Plate-forme de trading - Manuel d'utilisation

5. Comment faire une recherche sur le forum
https://www.mql5.com/en/forum/193510

6. Trouver un serveur par le nom du courtier:
https://www.mql5.com/en/forum/214820

7. Ma liste de courtiers : https://www.mql5.com/en/forum/353226/page3


 
Andrei Sokolov appels de fonction.

Hier, j'ai cherché le bug toute la soirée, et c'est la deuxième fois pour cette raison.

En règle générale, toutes les méthodes, qui ont OrderSelect, se souviennent du ticket sélectionné au début, et le sélectionnent à nouveau avant la sortie. Sinon, il est difficile de trouver de telles erreurs...