Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 443

 
Alexey Viktorov: Glissement à l'ouverture et à la fermeture.

Alexey ! MT5 est devenu généralement verbeux aujourd'hui - duplicates TP dans le commentaire :


 
STARIJ:

Merci Alexey ! !! C'est ce que je pensais aussi - mais comment le vérifier ? et comment savoir ce que c'est ? et pourquoi il n'y a pas de comptes réels. Peut-être parce qu'il est ancien et que le compte de démonstration est récent ?

La différence entre le prix tp et le prix de clôture de l'ordre est divisée par _Point et rapprochée de l'entrée dans le commentaire de l'ordre. C'est exactement ce que nous avons découvert. Une coïncidence aléatoire ne peut pas durer indéfiniment et de manière stable. Je suppose qu'il n'y a pas de tels dérapages sur le compte réel. Bien que j'en aie eu l'habitude. Je le calculais sur le compte réel. J'ai d'abord remarqué que la clôture était sur tp et que le prix de clôture n'était pas surligné en vert.

 

Bonjour, pouvez-vous m'aider, s'il vous plaît ?

Je veux, à tout moment, connaître le numéro de la barre où se trouve la flèche indicatrice.

Dans l'exemple, on a essayé de remplir le tampon si la flèche se trouve sur la dixième barre.

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(rates_total<2) return(0);
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)
     {
      for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE
            )
           {
            num_buy=il;
            break;
           }
        }
      //
      if(num_buy==10)
        {
         BufferUP[i+1]=low[i+1]-distance*MyPoint;

        }

      for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",1,il),Digits)!=EMPTY_VALUE
            )
           {
            num_sell=il;
            break;
           }
        }
      if(num_sell==10)
        {
         BufferDN[i+1]=high[i+1]+distance*MyPoint;
         
         
        }

      Comment(num_buy,"num_sell",num_sell);
     }
//--- return value of prev_calculated for next call

   return(rates_total);
  }

Où est-ce que c'est mal ?

 
mila.com: Bonjour, pouvez-vous m'aider, s'il vous plaît ?
Je veux connaître à tout moment le numéro de la barre où se trouve la flèche de l'indicateur.
Dans l'exemple, j'ai essayé de remplir le tampon si la flèche se trouve sur la dixième barre.
Où est-ce que c'est mal ?

En général, quand je le vérifie, je l'exécute et je vois le résultat. C'est juste une partie du code. Tout est très petit ici, c'est difficile de voir. Dans mon éditeur, c'est plus grand.

if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE)
{
    num_buy=il;
    break;  // Это выход из цикла. Остальные бары лишаются чести быть просмотренными. Ошибка здесь?
}
 

Bonjour, pourriez-vous m'indiquer comment faire en sorte qu'un indicateur enregistre les données dans un fichier ?

au lieu de l'indicateur RSI Pourcentage d'écart de Williams


//| fonction de démarrage de l'expert |

//+------------------------------------------------------------------+

int start()

{

//----

int iRSI ;

iRSI=FileOpen("File.txt", FILE_CSV|FILE_WRITE, '\t') ;

//------------------------------------------------//

//-------------------------------------------------//

si(iRSI>0)

{

FileWrite(iRSI, [0]) ;

FileClose(iRSI) ;

}

//----

retour(0) ;

}

 
STARIJ:

Tout est très superficiel ici,

Il y a une option dans le navigateur pour changer l'échelle ;)

STARIJ:
Ошибка здесь?


Malheureusement, ce n'est pas la seule erreur.

La valeur correcte est affichée dans le commentaire, à partir de la barre actuelle, maintenant num_buy 9

Pourquoi n'y a-t-il pas de condition dans l'histoire ?

if(num_buy==10)

Je l'ai vérifié, dans l'EA, il ouvre une position lorsque la flèche est sur la barre 10.

for(int il=1;il<=300;il++)
        { 
        if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE)
            
           {
            num_buy=il;
            break;
           }
        }
        if(num_buy==10)
           {
            B_OrderSend();
           }

Comment placer un point dans l'indicateur lorsque la flèche est sur la barre 10 ?

 
mila.com:

Dans le navigateur, il y a une option pour changer l'échelle )


Malheureusement, ce n'est pas la seule erreur.

Le commentaire affiche la valeur correcte, de la barre actuelle, maintenant num_buy 9

Pourquoi n'y a-t-il pas de condition dans l'histoire ?

Coché dans l'EA, ouvre la position lorsque la flèche est sur la barre 10.

Comment placer un point dans l'indicateur lorsque la flèche est sur la barre 10 ?

Vous interrompez la boucle dès que vous voyez la première valeur d'indicateur non-blanche. C'est pourquoi il n'atteint pas 10.

 
Artyom Trishkin:

Ainsi, vous interrompez la boucle ici dès que vous rencontrez la première valeur d'indicateur non vide. C'est pourquoi il n'atteint pas dix.

J'ai enlevé une pause de l'indicateur ; comme recommandé par STARIJ

toujours pas de point sur le graphique, et dans le commentaire écrit les numéros des troisième et quatrième flèches, mais la première et la deuxième (la plus proche de la date actuelle) ne voit pas.

 
mila.com:

Dans l'indicateur, j'ai supprimé la rupture ; comme recommandé par STARIJ

toujours pas de point sur le graphique

Mais vous l'avez laissé dans le conseiller expert. Et que fait-il ? Il trouve le premier point de l'indicateur et... rupture

 
Artyom Trishkin:

Mais le conseiller est resté en arrière. Alors, que fait-il ? Il trouve le premier point de l'indicateur et... rupture

J'ai fait le Conseiller Expert pour vérifier la possibilité, il s'ouvre correctement, mais dans l'indicateur il ne voit pas du tout les valeurs des deux tampons d'indicateur les plus proches "Arrow v.3".

Raison: