[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 335

 
snowman647 >> :

C'est loin d'être aléatoire. Je veux un Conseiller Expert utilisant des variables aléatoires aussi aléatoires que possible)) si je ne le trouve pas, je le posterai.

Pour autant que je sache, il n'y a pas de nombre aléatoire dans MCL. Il y a un nombre pseudo-aléatoire, donc c'est à peu près la même chose que le schéma que j'ai suggéré.

En fait, à propos des nombres pseudo-aléatoires, lisez ici https://www.mql4.com/ru/search/?keyword=%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE%D0%B5+%D1%87%D0%D0%B8%D1%81%D0%BB%D0%BE

[Deleted]  
vik-777 >> :
>> Bonjour, pourriez-vous me dire comment rechercher une barre par heure et afficher le prix d'ouverture et de fermeture ?

Encore une fois, j'ai vraiment besoin

[Deleted]  
Stepan241 >> :

Tout d'abord, l'entrée n'est pas tout à fait correcte

MA_1 = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,0) ; // Appel de l'indicateur de fonction
MA_2 = iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,0) ;

Les zéros doivent être remplacés par des 1

Pour déterminer le moment du franchissement, il faut prendre en compte non seulement la valeur actuelle (supérieure ou inférieure, mais aussi la valeur précédente).

Nous devrions donc ajouter

MA_1_Prev = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,2) ; // Appel de la fonction d'indicateur
MA_2_Prev= iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,2) ;

note numéro 2

En d'autres termes, ce bloc aura désormais l'aspect suivant

MA_1 = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,1) ; // Appel de l'indicateur de fonction
MA_2 = iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,1) ;

MA_1_Prev = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,2) ; // Appel de la fonction d'indicateur
MA_2_Prev= iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,2) ;

La ligne

si (MA_2 < MA_1 && Fact_Up == true)

remplacer par if (MA_2 < MA_1 && MA_2_Prev>MA_1_Prev && Fact_Up == true)


Effectuez le même remplacement pour la deuxième condition et la condition de sortie. L'état neuf est marqué en bleu. Nous allons maintenant entrer dans une position longue lorsque la première moyenne mobile est supérieure à la seconde, alors que la valeur précédente de la première moyenne mobile est inférieure à la valeur précédente de la seconde.

Merci.

 
vik-777 писал(а) >>

>> Encore une fois, j'ai vraiment besoin

[Deleted]  
DDFedor >> :

>> C'est ça, il trouve combien de secondes avant cette barre.

datetime some_time=D'2004.03.21 12:00' ;

int shift=iBarShift("EUROUSD",PERIOD_M1,some_time) ;

[Deleted]  
vik-777 >> :

>> C'est ça, il trouve combien de secondes avant cette barre.

mais comment connaître le prix d'ouverture et de fermeture de cette barre ?

 
vik-777 писал(а) >>

et comment trouver le prix d'ouverture et de fermeture de cette barre.

https://docs.mql4.com/ru/series

alors le numéro de la barre trouvée est utilisé dans les fonctions de timeseries...

double MyOpenPrice =  iOpen(Symbol(),Period(),iBarShift(Symbol(),Period(), some_time));
[Deleted]  

Je ne comprends pas comment faire, j'ai déjà cherché un exemple sur internet (2 jours) et je ne l'ai pas trouvé.

[Deleted]  
DDFedor >> :

https://docs.mql4.com/ru/series

Ensuite, le numéro de la barre trouvée est utilisé dans les fonctions de séries temporelles...

merci beaucoup

 
vik-777 >> :
>> Bonjour, pourriez-vous me dire comment rechercher une barre par heure et afficher le prix d'ouverture et de fermeture ?


datetime some_time=D'2009.12.07 01:15';
int shift=iBarShift("EURUSD",PERIOD_M1,some_time);

Alert("бар: ",shift," * время: ",TimeToStr(some_time)," * цена откр.: ",
iOpen("EURUSD",PERIOD_M1,shift)," * цена закр.: ",iClose("EURUSD",PERIOD_M1,shift));