Questions des débutants MQL5 MT5 MetaTrader 5 - page 1456

 

Bonjour !

Aidez-moi : l'objectif est d'implémenter la fermeture de position lorsque le prix traverse le MA.

Dans cette section de code

if(Bid<iMA(Symbol(),0,Fast_Ma_Period,Fast_Ma_Shift,Fast_Ma_Method,Fast_Ma_Price,0) && CountBuy()>0)
          
           
     {
     for(int i=OrdersTotal ()-1; i>=0; i--)
     {
     if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
     {
       if (OrderMagicNumber ()== MagicNumber && OrderType() == OP_BUY)
       if(!OrderClose(OrderTicket(), OrderLots(),Bid, Slippage, Black))
       Print("Ошибка");

j'obtiens l'image suivante sur le testeur : le prix traverse la MA et ferme la position à la fermeture de la bougie / ouverture de la bougie suivante, déjà loin du niveau de fermeture souhaité (limite de la MA)....

Dossiers :
 
rex1818 fermeture de position lorsque le prix franchit le MA.

Dans cette section de code

j'obtiens l'image suivante sur le testeur : le prix traverse la MA et ferme la position à la fermeture de la bougie / ouverture de la bougie suivante, déjà loin du niveau de fermeture souhaité (limite de la MA)....

Les ticks sont beaucoup plus volatiles que la moyenne des MA sur le cloz des ticks, de sorte que l'écart entre les ticks au sein desquels la valeur MA est apparue est une chose courante. Le prix est discret, et j'espère que vous ne confondez pas l'offre et la demande, c'est-à-dire que le MA par l'offre et les prix ouverts à la clôture sont également l'offre, et le MA par la demande et les prix sont également la demande).

Zy, vous ne pouvez pas recalculer ma par bid ou ask, mais ajouter le spread et soustraire, l'erreur sera minime.
 
Valeriy Yastremskiy #:

Les ticks sont beaucoup plus volatils que la moyenne des MA sur le cloz des ticks, de sorte que l'écart entre les ticks au sein desquels la valeur MA est apparue est une chose courante. Le prix est discret, et j'espère que vous ne confondez pas le bid et le ask, c'est-à-dire que le ma by bid et les prix ouverts de clôture sont également bid, et le ma by ask et les prix sont également ask).

Zy, vous ne pouvez pas recalculer ma by bid ou ask d'ailleurs, mais ajouter spread à soustraire, l'erreur sera minime.

Merci pour la réponse !

Aujourd'hui je vais essayer de comprendre en tenant compte de vos recommandations.

 
rex1818 fermeture de position lorsque le prix franchit le MA.

Dans cette section de code

j'obtiens l'image suivante sur le testeur : le prix traverse la MA et ferme la position à la fermeture de la bougie / ouverture de la bougie suivante, déjà loin du niveau de fermeture souhaité (limite de la MA)....

Le test par barres de fermeture n'est-il pas sélectionné ?

 
Alexey Viktorov #:

Les tests par fermeture de bar ne sont-ils pas sélectionnés ?

Bonjour !

Modèle de test : Tous les ticks (.....). Je comprends que le modèle le plus précis...

 
rex1818 #:

Bonjour !

Modèle de test : tous les ticks (.....). Je comprends que le modèle le plus précis...

Et le conseiller expert n'est pas écrit en fonction de l'ouverture d'une nouvelle barre ?

La partie du code que vous avez montrée n'est pas suffisante pour supposer la cause d'un tel comportement avec plus de précision.

 

Merci à tous ceux qui ont répondu !

J'ai trouvé les erreurs.

Maintenant tout fonctionne comme il se doit.

 

Quelqu'un peut-il nous indiquer, si le graphique a une limite de 3000 barres, et que nous avons besoin de prendre l'historique de 2000000 barres, les options possibles pour extraire les données historiques, sans changer le paramètre - max. barres dans la fenêtre ? ???.


Mon système surcharge lorsque le tableau atteint 2 millions d'index. Je dois chercher une solution pour décharger l'historique en contournant le graphique.

   void SMA(const int aRatesTotal,const int aPrevCalc,const double  &aData[], double  &aMA[])
     {
      int Start=0;
      if(aPrevCalc==0)
        {
         for(int i=0;i<aRatesTotal;i++)
           {
            if(aData[i]!=0 && aData[i]!=EMPTY_VALUE)
              {
               Start=i+m_MAPeriod-1;
               break;
              }
           }
         aMA[Start]=0;
         for(int i=Start;i>Start-m_MAPeriod;i--)
           {
            aMA[Start]+=aData[i];
           }


Mais avant cela, j'alimente ce tableau.


   rt=aRatesTotal;
   prv=aPrevCalc;
   for(int i=0; i<m_max_period; i++)
     {
      ArrayResize(d[i].m,rt);
      ArrayResize(d[i].f,rt);
     }

   chsma.Solve(rt,prv,aData,d[m_max_period-1].m);
Il semble que le système se bloque non pas à cause d'un tableau, mais parce qu'il commence à créer des tableaux d'une telle taille.
 

Bonjour à tous !

Je souhaite passer de Mql4 à Mql5. J'ai commencé à lire le manuel de référence de Mql5. Malheureusement, je comprends, mais pas tout. Où puis-je trouver des informations comme le manuel de Kovalev sur Mql4 qui commencerait par les bases et décrirait en détail les caractéristiques de Mql5 et surtout qui donnerait des exemples spécifiques de codage des opérations les plus simples et les plus courantes. En d'autres termes, nous avons besoin d'informations de formation non pas pour les utilisateurs avancés, mais pour les débutants qui ont besoin d'apprendre les bases et de progresser à partir de celles-ci.

Merci pour votre aide

 
ANDREY #:

Bonjour à tous !

Je souhaite passer de Mql4 à Mql5. J'ai commencé à lire le manuel de référence de Mql5. Malheureusement, je comprends, mais pas tout. Où puis-je trouver des informations comme le manuel de Kovalev sur Mql4 qui commencerait par les bases et décrirait en détail les caractéristiques de Mql5 et surtout qui donnerait des exemples spécifiques de codage des opérations les plus simples et les plus courantes. En d'autres termes, nous avons besoin d'informations de formation non pas pour les utilisateurs avancés, mais pour les débutants qui ont besoin d'apprendre les bases et de progresser à partir de celles-ci.

Merci pour votre aide

Dans la base de code, il y a des Expert Advisors et des indicateurs qui ont été écrits à l'origine sur MT4 et ensuite réécrits sur MT5 - vous pouvez les utiliser pour la formation.

Les langages sont similaires à bien des égards, fixez-vous pour tâche de réécrire le code que vous comprenez sur MT5 - et utilisez activement la recherche sur les instructions et le portail - vous trouverez toujours la réponse, y compris dans les articles.

Raison: