[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 298

 
Croaker:

Salutations à tous les connaisseurs et lecteurs expérimentés de ce fil ! Et toute personne qui peut m'aider=)

Quelle est la manière la plus simple et la plus "correcte" d'obtenir la périodicité ? En d'autres termes, pour simplifier, je veux exécuter automatiquement une action toutes les 15 minutes.

Dans mon cas, il s'agit de sauvegarder un fichier sur le disque avec quelques statistiques. Maintenant, j'ai un script qui fait ce que je veux, et c'est littéralement 20 lignes de code. Alors comment faire pour que ces 20 lignes se répètent à intervalles réguliers ? Si j'ai bien compris, il n'y a pas de timers dans MQL... Dois-je utiliser un EA qui fera une sorte de vérification à chaque tick... ?

J'espère votre aide et vos conseils)

Par exemple, vérifiez la présence d'une nouvelle barre dans l'intervalle de temps 15 minutes.

Ou bien mémorisez l'heure de départ et vérifiez l'heure actuelle.

https://docs.mql4.com/ru/dateandtime/TimeCurrent

et=timecurrent() ;

if (et-bt>15*60) {bt=timecurrent() ; charger les données}

 
Croaker:

Je veux qu'une certaine action soit exécutée automatiquement toutes les 15 minutes.

datetime save_time;
int tf=15;

start()===============================================

if(save_time!=iTime(0,tf, iBarShift(0,tf,Time[0]))){
        save_time =iTime(0,tf, iBarShift(0,tf,Time[0]));
        Alert("Новая свеча ТФ=" tf);
     }
 
pvm117:

Les estimés gourous ne peuvent-ils pas aider ?

pvm117 20.10.2011 18:26

Bonjour !

Comme première expérience, j'ai décidé de mettre en œuvre l'algorithme suivant : je peux m'attendre à un fort mouvement du marché à la hausse ou à la baisse dans un certain temps après que les lignes de Bollinger convergent dans un couloir étroit. Dans mon Expert Advisor, j'analyse l'état des lignes de Bollinger et lorsqu'elles deviennent très proches(Delta pips), nous plaçons un ordre de vente en attente dans la direction inférieure (à un pasOpen pips en dessous de la ligne inférieure), en espérant que le marché ira soudainement dans cette direction. Si le marché est allé dans une autre direction, nous supprimons simplement cet ordre.

L'algorithme fonctionne de manière instable, ouvre parfois deux ordres dans de courts intervalles, donne constamment des erreurs OrderSend Error 130 et OrderSend Error 138, et la suppression des ordres ouverts au cas où le marché évoluerait dans une autre direction ne fonctionne pas du tout.

S'il vous plaît, conseillez-nous ! Merci !

Pour un testeur et sans prêter attention à l'erreur 130, il n'est tout simplement pas possible de placer un ordre stop à ce prix.

Ensuite, c'est à vous de jouer.

Dossiers :
temp_2.mq4  21 kb
 

Les gars, je suis nouveau dans ce domaine, aidez-moi à trouver un bug s'il vous plaît.

J'ai essayé d'écrire un indicateur pour calculer le nombre de bougies montantes et descendantes pour une certaine période de l'histoire. J'ai essayé d'écrire un indicateur pour cela, il ne s'affiche pas quand je le mets dans la fenêtre des indicateurs. Qu'est-ce qu'il y a ? Voici mon code. Merci d'avance.

#propriété indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

int Wh ;
int Bl ;
int a[];b[] ;
extern int Histoire=500 ;
//+------------------------------------------------------------------+
int init(){
SetIndexBuffer(0,a) ;
SetIndexBuffer(1,b) ;
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1) ;
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1) ;
return(0);}
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
int start()
{
int CountedBars=IndicatorCounted() ;
int i=Bars-CountedBars-1 ;
si (i>Histoire-1) i=Histoire-1 ;
while(i>=0)
{
si (Close[i]>Open[i])Wh++ ;
si (Close[i]<Open[i])Bl++ ;
a[i]=Wh ;
b[i]=Bl ;
i-- ;
}
return(0);}

 
Ellie:

Les gars, je suis nouveau dans ce domaine, aidez-moi à trouver un bug s'il vous plaît.

J'ai essayé d'écrire un indicateur pour calculer le nombre de bougies montantes et descendantes pour une certaine période de l'histoire. J'ai essayé d'écrire un indicateur pour cela, il ne s'affiche pas quand je le mets dans la fenêtre des indicateurs. Qu'est-ce qu'il y a ? Voici mon code. Merci d'avance.



Remplacer par

int a[],b[];

Aller à

double a[],b[];
 
Ooh, merci, ça marche. Je ne comprends pas pourquoi il faut que ce soit comme ça ? Le nombre de bougies est un nombre entier. Pouvez-vous m'expliquer en quelques mots ?
 
Ellie:
Ooh, merci, ça marche. Je ne comprends pas pourquoi il faut que ce soit comme ça ? Le nombre de bougies est un nombre entier. Pouvez-vous m'expliquer en quelques mots ?


Faites attention aux types de paramètres passés à la fonction SetIndexBuffer() .

 
Merci beaucoup. Je veux dire, j'ai lu cette fonctionnalité huit fois hier mais je ne l'ai pas eue. ((((((((
 
Roll:
Si vous le corrigez un peu plus :
ce serait mieux...

Oui, merci, j'ai déjà remarqué))))
 
Ellie:
Oui, merci, j'ai déjà remarqué))))
Il y a des femmes dans les villages russes. Et c'est une bonne chose.
Raison: