[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 430

 
Trendy:
Bonjour, j'étudie actuellement le tutoriel MQL4 de Sergey Kovalev et je n'ai pas encore trouvé comment accéder aux tableaux de séries chronologiques d'autres paires de devises. J'ai besoin de télécharger dans un EA des tableaux de séries temporelles de plusieurs paires de devises. Je sais qu'il est possible d'accéder à certaines données à l'aide de la fonction MarketInfo(), mais le problème est que les ID des requêtes ne contiennent pas de paramètres de clôture ou autres pour les séries de prix. S'il vous plaît, indiquez-moi où je peux lire comment organiser le travail (le cas échéant) avec des tableaux de séries chronologiques et plusieurs instruments, ou peut-être comment contourner cette limitation.
double iClose( string symbol, int timeframe, int shift)
Renvoie la valeur du prix de clôture de la barre spécifiée par le paramètre shift à partir du graphique correspondant(symbole,cadre temporel). En cas d'erreur, la fonction renvoie 0. Pour plus d'informations sur l'erreur, appelez GetLastError().
Pour le graphique actuel, les informations sur les prix de clôture se trouvent dans le tableau prédéfini Close[].
Paramètres :
symbole - Nom du symbole. NULL signifie le symbole actuel.
cadre temporel - Période. Peut être l'un des horizons temporels d'un graphique. 0 signifie la période du graphique actuel.
équipe - Indice de la valeur obtenue à partir de la série chronologique (décalage par rapport à la barre actuelle du nombre de périodes en arrière spécifié).
Exemple :
 Print("Barre actuelle pour USDCHF H1 : ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ", iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ", iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i) ;

C'est comme ça.
 

Il existe un indicateur compilé dans ex4 qui est une

une bande de points bleus et rouges comme signal d'achat ou de vente.

J'ai besoin d'un code pour une condition permettant d'entrer dans une transaction lorsque le graphique à barres change de couleur.

Je vous en serais très reconnaissant, même pour une ébauche.

 
Bonjour les amis. Il est nécessaire d'implémenter la chose suivante : la stochastique traverse un certain niveau de haut en bas n-nombre de fois et à condition que cela se produise dans un certain intervalle de temps, la variable se voit attribuer une valeur (+). Eh bien, si par exemple dans 30 minutes le stochastique croise 80 trois fois de haut en bas. Merci d'avance)
 

Salutations à tous !

J'utilise cet indicateur, mais il a tendance à se figer après l'ouverture de chaque nouvelle barre. Je pense que c'est à cause du grand nombre de barres qui sont recalculées. J'ai essayé de limiter le nombre de barres mais cela ne fonctionne pas - l'indicateur change d'apparence. Quelqu'un peut-il m'aider avec cette fonction ? Je vous en serais très reconnaissant !

Dossiers :
 
Integer:

Je l'ai essayé. EMA sur mql et dans dll.

C'est assez perceptible. Si les calculs sont plus complexes, cela sera plus perceptible.


Je vous le ferai savoir. J'ai beaucoup de cycles là-dedans aussi.
 

Bonjour ! Le seul preneur de bénéfices dans l'EA est le Trailing Stop, qui ferme effectivement les transactions. Il n'y a pas de StopLoss et de TakeProfit séparés.

Bien sûr, il y a des situations où l'EA ouvre dans une direction, alors que le marché va dans une autre.

Dans de tels cas, les transactions sont clôturées avec un profit minimal, mais deux transactions de la période de test ont été clôturées avec des pertes de -2,40 et -2,50.

Dans les résultats du test, le StopLoss est fixé plusieurs points au-dessus ou même en dessous du prix d'ouverture de la transaction.

Voici le code de suivi de MacdSample ci-dessous. Aidez-nous à comprendre !

//-------------------------Trailing Stop----------------------------------+
for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
 
skyjet:

Bonjour...


Probablement un échange.
 
Integer:

Probablement un échange.


Le problème est que je n'arrive pas à comprendre pourquoi le Trailing Stop ferme une transaction avant que la distance entre le prix actuel et le prix d'ouverture n'ait dépassé la valeur TS, après que le prix ait évolué dans la direction opposée à l'ouverture puis soit revenu au prix d'ouverture ?

 
Bon après-midi.
Je veux ouvrir un ordre avec un volume de 0.01 sur mon compte 12.93$, stop loss et take profit 0, mais le programme dit qu'il n'y a pas assez d'argent, pourquoi ?
 
r772ra:
double iClose( string symbol, int timeframe, int shift)

Quelque chose comme ça.

Merci beaucoup !