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

 

Bonjour !

Je suis en train d'écrire un cahier des charges et je ne sais pas comment créer les conditions lorsque le prix franchit la ligne,
Je ne sais pas comment faire,
J'ai opté pour celui-ci :


1. sil'ouvertureest en dessous et la clôture au-dessus de la ligne, on considère qu'il s'agit d'un passage de bas en haut.
2. Si l'ouverture est supérieure et la clôture inférieure à la ligne, il s'agit d'un croisement à l'envers.
3. l'ouverture et la fermeture au-dessus de la ligne et le haut au-dessus, le bas en dessous de la ligne sont considérés comme croisés à l'envers.
4. L'ouverture et la clôtureen dessous de la ligne et lehaut au-dessus, le bas en dessous de la ligne sont considérés comme croisés de bas en haut.


Merci d'avance !



 
Digamma: J'écris un cahier des charges et je ne sais pas comment créer correctement des conditions lorsque le prix franchit la ligne
.

Peut-être vous suffirait-il d'analyser où se trouvait la barre précédente - sous la ligne ou au-dessus de la ligne et où la barre est analysée ?

i.e. if(High[2] < Y_line && Low[2] < Y_line) // la barre numéro 2 était sous la ligne

mais il est préférable d'écrire une telle condition if(High[2] < Y_line) - nous savons que High[2] est toujours supérieur à Low[2].

SZZ : A partir de vos dessins, il est difficile de suggérer comment le prix a bougé, il part toujours de l'ouverture et va former un haut et un bas, dans quelle séquence nous ne pouvons le découvrir qu'en utilisant le TF inférieur, l'analyse de clôture dans cette situation n'a pas de sens, car plus le TF est ancien, plus le nombre de fois où le prix a actualisé le haut et le bas est élevé. Tu te souviens que le prix fait un nouveau bar en ligne ?

 
markich:
Vous pouvez supprimer quoi et où ? Pour ne pas supprimer quelque chose dont vous avez besoin
.


Je vois que vous n'avez pas été aidé... Essayons :

0. Fermez le terminal s'il est ouvert.

Recherchez le fichier d'historique ici : C:\Program Files\MT4\history\... (au lieu de MT4 - le nom de votre courtier)

2. Ici, vous aurez probablement plusieurs dossiers (historique des comptes démo et réel), choisissez le dossier du compte et cherchez le fichier "GBPUSD15.hst".

3. Supprimez-la (ou copiez-la à un autre endroit) et démarrez le terminal.

Historique des mises à jour (F5)

 
IgorM:

Peut-être vous suffirait-il d'analyser où se trouvait la barre précédente - sous la ligne ou au-dessus de la ligne et où la barre est analysée ?

i.e. if(High[2] < Y_line && Low[2] < Y_line) // la barre numéro 2 était sous la ligne

mais il est préférable d'écrire une telle condition if(High[2] < Y_line) - nous savons que High[2] est toujours supérieur à Low[2].

SZZ : A partir de vos dessins, il est difficile de supposer comment le prix a bougé, il part toujours de l'ouverture et va former un haut et un bas, dans quelle séquence nous ne pouvons le découvrir qu'en utilisant le TF inférieur, l'analyse de clôture dans cette situation n'a pas de sens, parce que plus le TF est ancien, plus le nombre de fois où le prix a actualisé le haut et le bas est élevé. Vous vous rappelez comment le prix forme un nouveau bar en ligne ?

Merci !

y a-t-il autre chose que des barres pour analyser cette situation ?

 
Digamma:

Bonjour !

Je suis en train d'écrire un cahier des charges et je ne sais pas comment créer les conditions lorsque le prix franchit la ligne,
Je ne sais pas comment faire autrement,
J'ai opté pour celui-ci :


1. sil'ouvertureest en dessous et la clôture au-dessus de la ligne, on considère qu'il s'agit d'un passage de bas en haut.
2. L'ouverture au-dessus et la fermeture au-dessous de la ligne sont considérées comme croisées à l'envers.
3. l'ouverture et la fermeture au-dessus de la ligne et le haut au-dessus, le bas en dessous de la ligne sont considérés comme croisés à l'envers.
4. L'ouverture et la clôtureen dessous de la ligne et lehaut au-dessus, le bas en dessous de la ligne sont considérés comme croisés de bas en haut.


Merci d'avance !



Deux autres options ont été oubliées
 

Messieurs les pros. Question.

Qu'advient-il des données dans l'EA lors de la reconnexion ?

C'est-à-dire qu'il y a une variable déclarée au début, disons a=0, dans le processus de travail, on lui attribuera la valeur 4. et la reconnexion au serveur se produira. que lui arrivera-t-il avec ce a ?

 
Myth63:

Messieurs les pros. Question.

Qu'advient-il des données dans l'EA lors de la reconnexion ?

C'est-à-dire qu'il y a une variable déclarée au début, disons a=0, dans le processus de travail, on lui attribuera la valeur 4. et la reconnexion au serveur se produira. que lui arrivera-t-il avec ce a ?

Rien ne changera avec la variable a et sa valeur, et si, par exemple, un ordre a été attribué, l'attribution sera annulée.
 
TarasBY:
Rien ne change avec la variable a et sa valeur, et si, par exemple, un ordre a été attribué, l'attribution est annulée.


c'est-à-dire que les valeurs des variables sont sauvegardées et que l'EA commence à fonctionner après la fonction de démarrage ? et non depuis le tout début ? jusqu'à ce que le fichier journal indique que l'EA est chargé ?

 
Veuillez suggérer un script qui afficherait la structure interne de la barre où le marqueur est placé (icône ou ligne verticale), c'est-à-dire qu'au TF actuel, le marqueur est placé sur la barre d'intérêt, et en dessous est dessinée la structure interne de la barre avec un des TF inférieurs.
 
Aidez-moi à traiter les tableaux transmis à la fonction iMAOnArray.
Pour une raison quelconque, cette fonction ne fonctionne qu'avec un tableau tampon (dans l'exemple de l'AMV).
et ne fonctionnera pas avec les "ordinaires" (SMA, par exemple).

Vous trouverez ci-dessous un aperçu de la manière dont je procède dans mes programmes. Qu'est-ce qu'il y a ?

double MA1[],MA2[],VMA[],SMA[];

int init()
{

   SetIndexBuffer(0,MA1);
   SetIndexBuffer(1,MA2);
   SetIndexBuffer(2,VMA);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);  
   ArrayResize(SMA,1);  
   ArrayInitialize(SMA,0);

 return(0);
}

int start() 
{  
 
SMA[i]=...........;
VMA[i]=...........;

MA1[i]=iMAOnArray(SMA,0,8,0,0,0); //----этот вариант НЕ работает
MA2[i]=iMAOnArray(VMA,0,8,0,0,0); //----этот вариант всегда работает  
   
  return(0);
}