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

 
Usual_Trader:


Si je comprends bien, est-ce queRefreshrates( ) fonctionne sur l'instrument actuel ou met-il à jour les données sur tous les instruments ?


Pour tous les instruments.
 
Sarguss:

Bonsoir.

Je suis un peu "crucian" quand il s'agit de coder :) Je suis en train de construire un conseiller expert basé sur l'indicateur Fibonacci. Je ne fais pas attention à la stratégie jusqu'à présent. Le problème est 7 niveaux de Fibonacci, comment faire pour que chaque niveau traversé ne fixe que 2 ordres en attente différents et pas plus.

J'apprécierais tout conseil.

Désolé pour mon russe maladroit.


Travail

P.S. "Un brochet pour une carpe crucifère, ça ne se fait pas" (proverbe russe).

 
Roll:


Travail

P.S. "Un brochet pour une carpe crucifère" (proverbe russe).


Merci pour le proverbe :)))) En plein dans le sujet -

Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Sans toi, nulle part - 4.

Finissez-le - toute réponse Profi !

 

Bonjour les experts, veuillez m'aider à créer un script. Il y a deux indicateurs MA(Moving Average) sur le graphique, MA1 est marqué en rouge et MA2 est marqué en bleu. La tâche du script : croiser MA1 et MA2 de sorte que la ligne rouge croise la bleue de haut en bas. Nous appellerons ce point A et si la ligne rouge croise la ligne bleue de haut en bas, ce sera le point B. Donc, au point A, nous avons besoin que le script ferme un ordre de vente et ouvre un ordre d'achat et au point B, qu'il ferme un ordre d'achat et ouvre un ordre de vente. Cette boucle devrait être infinie. Ci-joint un code similaire, merci de m'aider, je vous en serai très reconnaissant.

Dossiers :
 
Lisi4ka330:
Afin de ne pas aggraver la confusion, je veux corriger l'erreur que j'ai faite dans la réponse précédente - la notation "array1[Bars*6-60,60][0]" n'est pas correcte, car Bars*6 est le nombre total d'éléments dans array1.Chaque barre a 6 propriétés, supposons que nous ayons 30 barres, en multipliant par 6 nous obtenons le nombre d'éléments dans le premier tableau - 180. Le deuxième tableau ne comporte que 60 "cellules" libres (c'est-à-dire 10 x 6 propriétés), nous devons donc sélectionner seulement 60 éléments du premier tableau à copier. En utilisant l'expression [Bars*6-60,60] nous soustrayons 60 du total, c'est-à-dire 180 - 60 = 120, c'est-à-dire que 120 éléments du premier tableau seront copiés dans l'élément zéro du second, 121 dans le premier, et ainsi de suite. Une autre question est de savoir comment il se fait que les informations sur les dernières barres formées ne sont pas écrites au début du premier tableau, mais à la fin ... Mais apparemment, la réponse se trouve dans le code de la fonction, et cela n'a aucun sens de creuser davantage...


J'ai une base de données, ça n'a rien à voir avec ça. Natalya a écrit logiquement correctement. Et même dans le cas où nous avons 30 barres, la valeur de l'index dutableau 1 est de 120. Par conséquent, la valeur de l'indice correspondant dutableau 2 est déjà déclarée comme étant 10 pendant l'initialisation.

https://docs.mql4.com/ru/array/ArrayCopy

double array2[10][6];

J'ai lu ça dans un livre de C :

Le langage C ne contrôle pas les dépassements de tableau, ce qui signifie que techniquement vousv ous pouvezécrire quelque chose dans un élément dont l'indice n'existe pas, par exemple dans A[345] ou dans A[-12].Mais en faisant cela, vous effacerez une cellule de la mémoire qui n'appartient pas au tableau, doncles conséquences d'une telle étape sont imprévisibles et le programme se bloque dans de nombreux cas.

Il s'avère que l'indice du tableau1(le tableau source) est plus grand que l'indice correspondant dutableau2 (le tableau destination). Et par conséquent, vous ne devriez pas le faire de cette façon ! C'est ce que je voulais dire...

 

Bonjour à tous !

J'ai essayé d'écrire mon premier EA :-), mais certaines difficultés sont apparues.

La logique derrière cela est la suivante, il y a un indicateur qui montre les maximums et les minimums pour les n dernières barres, quand il casse un maximum ou un minimum, un ordre doit être ouvert.

Lorsque j'attache l'EA au graphique, il ouvre une position de VENTE. Je ne sais pas pourquoi cela se passe ainsi.

Je pense que l'erreur se trouve dans la fonction iCustom(), qui envoie les paramètres de l'indicateur.

J'ai joint l'EA et l'indicateur.

Dossiers :
xox.mq4  10 kb
 
Et voici l'indicateur.
Dossiers :
go_go_1.mq4  2 kb
 
Pacman:

Bonjour à tous !

J'ai essayé d'écrire mon premier EA :-), mais certaines difficultés sont apparues.

La logique derrière cela est la suivante, il y a un indicateur qui montre les maximums et les minimums pour les n dernières barres, quand il casse un maximum ou un minimum, un ordre doit être ouvert.

Lorsque j'attache l'EA au graphique, il ouvre une position de VENTE. Je ne sais pas pourquoi cela se passe ainsi.

Je pense que l'erreur se trouve dans la fonction iCustom(), qui envoie les paramètres de l'indicateur.

J'ai joint le conseiller expert et l'indicateur.

Vous ne remplissez pas le 0ème indice des tableaux d'indicateurs,

   for(k=1; k<=Quant_Bars; k++)
      {
       Line_1[k]= Minimum;
       Line_2[k]= Maximum;
      }

mais vous y accédez :

   double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
   double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

Elle est un peu maladroite (structurellement), mais elle fera l'affaire pour la première fois. Mon conseil : "Habituez-vous tout de suite à des approches correctes pour écrire du code. Par exemple, en utilisant cette condition dans votre code :

       if(Total==0 && Opn_B==true)              //Открытых ордеров нет + 
C'est de l'analphabétisme, car tôt ou tard, vous passerez du testeur au trading en ligne, et il y a plusieurs Expert Advisors qui travaillent en parallèle, et ce code ne fonctionnera pas.
 
Pacman:
Et voici l'indicateur.

Quel est votre problème avec iHighest() et iLowest()?
 
Raison: