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

 

Questions théoriques :

1. Comment écrire une fonction (où lire à ce sujet) ?

2. Avec quelle extension doit-il être compilé et sauvegardé ?

3. Dans quel dossier dois-je le sauvegarder ?

4. Dois-je écrire un script séparé pour l'exécuter (ou le conseiller expert s'exécutera lui-même) ?

Un grand merci à ceux qui n'ont pas passé ma question !))

 

Bonjour, l'indicateur ne dessine pas de nouvelles valeurs, ce n'est que lorsque je le replace sur le graphique qu'il met à jour les valeurs.

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 White
#property indicator_color2 White

//---- input parameters

extern int CountBars=3500;

//---- buffers
double val1[];
double val2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,217);
   SetIndexBuffer(0, val1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,218);
   SetIndexBuffer(1, val2);
   SetIndexEmptyValue(1,0.0);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| AltrTrend_Signal_v2_2                                            |
//+------------------------------------------------------------------+
int start()
  { double F_u_EUR, F_u_GBP, F_d_EUR, F_d_GBP, F_u_USD, F_d_USD;
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if( counted_bars>0) counted_bars--;
   limit=Bars- counted_bars;
   for(int i=3; i< limit; i++)
{ 

	F_u_EUR=iFractals("EURJPY",15,MODE_UPPER, i);
	F_d_EUR=iFractals("EURJPY",15,MODE_LOWER, i);
	F_u_GBP=iFractals("GBPJPY",15,MODE_UPPER, i);
	F_d_GBP=iFractals("GBPJPY",15,MODE_LOWER, i);
	F_u_USD=iFractals("USDJPY",15,MODE_UPPER, i);
	F_d_USD=iFractals("USDJPY",15,MODE_LOWER, i);

if ( F_u_EUR> F_d_EUR&& F_u_GBP> F_d_GBP&& F_u_USD> F_d_USD)
{
	val1[ i]=High[ i]+35*Point;
}
if ( F_u_EUR< F_d_EUR&& F_u_GBP< F_d_GBP&& F_u_USD< F_d_USD) 
{
	val2[ i]=Low[ i]-35*Point;
}


}
   return(0);
  }

Si vous pouvez réparer le code !

Merci.

 
Kostay писал(а) >>

Bonjour, l'indicateur ne dessine pas de nouvelles valeurs, ce n'est que lorsque je le replace sur le graphique qu'il met à jour les valeurs.

Si vous pouvez réparer le code !

Merci

int start()
  { double F_u_EUR, F_u_GBP, F_d_EUR, F_d_GBP, F_u_USD, F_d_USD;
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if( counted_bars>0) counted_bars--;
   limit=Bars- counted_bars;
   if ( limit<3) limit+=3;
   for(int i=3; i< limit; i++)
{ 

F_u_EUR=iFractals("EURJPY",15,MODE_UPPER, i);
F_d_EUR=iFractals("EURJPY",15,MODE_LOWER, i);
F_u_GBP=iFractals("GBPJPY",15,MODE_UPPER, i);
F_d_GBP=iFractals("GBPJPY",15,MODE_LOWER, i);
F_u_USD=iFractals("USDJPY",15,MODE_UPPER, i);
F_d_USD=iFractals("USDJPY",15,MODE_LOWER, i);

if ( F_u_EUR> F_d_EUR&& F_u_GBP> F_d_GBP&& F_u_USD> F_d_USD)
{
val1[ i]=High[ i]+35*Point;
}
if ( F_u_EUR< F_d_EUR&& F_u_GBP< F_d_GBP&& F_u_USD< F_d_USD) 
{
val2[ i]=Low[ i]-35*Point;
}


}
   return(0);
  }
 

Vinin merci pour l'aide. J'ai corrigé l'indicateur en le mettant dans la visualisation mais il ne dessine toujours pas de nouvelles valeurs !!!!.

Je ne comprends rien.

 
Kostay писал(а) >>

Vinin merci pour l'aide. J'ai corrigé l'indicateur en le mettant dans la visualisation mais il ne dessine toujours pas de nouvelles valeurs !!!!.

Je ne comprends rien.

Je suppose que le nombre de barres mises à jour est toujours inférieur à trois et que la condition de la boucle n'est jamais satisfaite.

for(int i=3; i< limite; i++)
parce que les nouvelles barres arrivent une par une. Peut-être quelque chose comme

for(int i=3; i< limite+3; i++)

 
Kostay писал(а) >>

Vinin merci pour l'aide. J'ai corrigé l'indicateur en le mettant dans la visualisation mais il ne dessine toujours pas de nouvelles valeurs !!!!.

Je ne comprends rien.

C'est ainsi que l'indicateur multidevise n'est pas censé fonctionner sur la visualisation. Il prend les données d'autres horizons temporels à partir du graphique actuel. Vous devez faire de la synchronisation temporelle pour ce genre de travail.

 
Vinin >> :

Ce n'est pas la façon dont l'outil multidevise est censé fonctionner sur la visualisation. Il prend les données d'autres horizons temporels à partir du graphique actuel. La synchronisation du temps doit être faite pour ce genre de travail.

Maintenant je comprends. Merci beaucoup ! !!!!!!!!!!!.

 

Salut !

Est-il possible de modifier les paramètres de MT4 avec un EA, par exemple la taille du lot ?

Si oui, veuillez nous en informer !

 
vikon >> :

Salut !

Est-il possible de modifier les paramètres de MT4 avec un EA, par exemple la taille du lot ?

Si oui, conseillez-nous !

La taille du lot n'est pas pertinente pour les paramètres MT4. :) Il est spécifié en tant que paramètre de la fonction OrderSend lors de l'envoi d'une demande d'ouverture d'un ordre.

 
Everlost >> :

La taille du lot n'est pas liée aux paramètres de MT4. :) Il est spécifié en tant que paramètre de la fonction OrderSend lors de l'envoi d'une demande d'ouverture d'un ordre.

Je sais comment ouvrir une commande en utilisant un code.

Je dois créer un système semi-automatique avec des propriétés de gestion.

J'ouvre une position manuellement, mais la taille du lot est surveillée par l'EA et la modifie par défaut dans MT (service/settings/trading/default volume).

Est-il possible de le faire ?