[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 43

 
sergeev:

Transaction à un moment donné


1
Mega4alik 03.08.2011 17:34

Comment puis-je écrire une EA qui ouvre une transaction à une certaine seconde ?

Je ne vois rien d'autre que le démarrage, mais il ne s'ouvre que lorsque le prix change, et j'ai besoin qu'il s'ouvre en une seconde...

Et si dans cette seconde il y a une brève interruption de la connexion ? Et ce phénomène est très courant chez tous les courtiers.

if(TimeHour(prevtime)==1 && TimeMinute(prevtime)==1 && TimeSeconds(prevtime)==1)
{
fonction d'ouverture des commandes
}

prevtime=TimeCurrent() ;

Tu dois mettre en boucle tout le début :


int start()
{
while(!IsStopped())
{

RefreshRates() ;

toutes les opérations

}

}

 
demlin:
...Ctrl+Alt+M permettait de coller du code, mais cela ne fonctionne pas. Le SRC ne le trouve pas, désolé, s'il vous plaît.
Comment faire un post, insérer le code d'un programme, d'une image, d'une vidéo
 

demlin, c'est-à-dire que la deuxième condition sera-t-elle remplie dans tous les cas ?



 
if (x2==x1) return(y1);
else
return((y2-y1)/(x2-x1)*(x-x1)+y1);}
 
nuan:

c'est le but de tout cela - calculer la valeur de
 
Demlin, tu essaies de renvoyer une valeur d'abord
return(y1);
потом сразу другое
return((y2-y1)/(x2-x1)*(x-x1)+y1);
а смысл у1 возвращать
 
nuan:
Vous essayezde retourner une valeur en premier

y1 est retourné si x1=x2, c'est-à-dire qu'il n'y a qu'un seul point. S'il y a deux points et que x1 n'est pas égal à x2, alors le calcul est effectué.

La fonction est correcte, je l'ai testée séparément en dehors de la boucle - elle fonctionne correctement.

 
nuan:

Qu'est-ce que vous ne comprenez pas ? N'embrouillez pas l'homme :

double EquationDirect(double x1, double y1, double x2, double y2, double x) 
{
  if (x2==x1) return(y1);              // Если х2 равно х1, то вычислять ничего не нужно, а просто вернуть значение y1
  return((y2-y1)/(x2-x1)*(x-x1)+y1);   // а тут вычисления нужны (х2 не равно х1), вычисляем значение по формуле уравнения прямой и возвращаем его
}

C'est plus clair ?

 
demlin:

y1 est retourné si x1=x2, c'est-à-dire qu'il n'y a qu'un seul point. S'il y a deux points et que x1 n'est pas égal à x2, alors le calcul est effectué.

La fonction est correcte, je l'ai testée séparément en dehors de la boucle - elle fonctionne correctement.

Redonnez-moi le fragment de code de l'indicateur où vous voulez mettre tout cela. Mais... Vous n'avez pas besoin d'augmenter le tampon - vous devez déplacer le pointeur vers la cellule du tampon où vous voulez mettre la valeur.