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

 

Je l'ai eu. Merci pour votre aide.

 
spidey:

Bonsoir, pourriez-vous me conseiller comment mettre une alerte dans l'indicateur, j'ai tout essayé, il bip à chaque tic, ou ne bip pas du tout....


Prenez-le et signez-le :)

Dossiers :
 
Veuillez indiquer comment comparer le prix de clôture de la i-ème barre (par exemple М15) avec le prix d'ouverture du jour dans l'indicateur
 

Bonjour.

Pouvez-vous me dire ou me conseiller où obtenir le .hst ou quoi générer les ondes Eliot pour le testeur visuel, (peut être dans un fichier csv) comme dans l'image ci-dessous :

 
RomanS:
S'il vous plaît, dites-moi comment comparer le prix de clôture de la barre i dans l'indicateur (par exemple М15) avec le prix d'ouverture du jour
.


Je n'ai pas dû l'expliquer correctement... par exemple

#property indicator_separate_window
#property  indicator_buffers 4
#property  indicator_color1  Red
#property  indicator_color2  Green
#property  indicator_color3  Blue
#property  indicator_color4  Black

extern int DAY       = 0;
extern int History   = 500;

double GBP[],EUR[],JPY[],USD[]; 

int init()
  {
   SetIndexBuffer(0, GBP);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(1, EUR);    
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(2, JPY);
   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(3, USD);
   SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2);
   IndicatorShortName("...");
   return;
  }

int start()
  {
  int limit = 0, 
      counted_bars = IndicatorCounted();
      if(counted_bars>0) counted_bars--; 
      limit = Bars - counted_bars;
 
  for(int i=0; i<limit; i++)
    {
     USD[i] = -(iClose("EURUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY))
              -(iClose("GBPUSD",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY))
              +(iClose("USDJPY",NULL,i)-iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i);
     EUR[i] = +(iClose("EURUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY))
              +(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              +(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)/iOpen("GBPUSD",PERIOD_D1,DAY))*iClose("GBPUSD",NULL,i);
     GBP[i] = +(iClose("GBPUSD",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY))
              +(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)/iOpen("GBPUSD",PERIOD_D1,DAY))*iClose("GBPUSD",NULL,i);
     JPY[i] = -(iClose("USDJPY",NULL,i)-iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("EURUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i)
              -(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-iOpen("GBPUSD",PERIOD_D1,DAY)*iOpen("USDJPY",PERIOD_D1,DAY))/iClose("USDJPY",NULL,i);
    }
   return(0);
  }

Si je fixe DAY = 0, alors le prix de la i-ème barre, soit M5, sera comparé au prix ouvert d'aujourd'hui, si DAY = 1, alors au prix ouvert d'hier, etc.

comment le rendre dynamique... Si je voulais le comparer dynamiquement, c'est-à-dire lorsque je regarde la 1278ème barre, il serait comparé au prix ouvert du jour lorsque je vois cette barre.

 

En supposant qu'il s'agit d'un graphique d'un indicateur MAKD ou STOH tout de même, conseillez comment décrire le point d'entrée dans l'EA Xmax*0.25 pour la vente et Xmin*0.25 pour l'achat. Si la période "n" n'est pas constante et que Xmax et Xmin changent.

Dossiers :
ypi.rar  7 kb
 

comment mettre en œuvre un tel opérateur

while ( Условие если закрылся любой ордер )                  
{   то опредеяем тип закрытого ордера из списка   }  
значение передаем следущему оператору

{  по переданому значению выбераем из списка нужный ордер и открываем его  } 
после того как ордер открыт возращяемся в начало

ou quelle autre façon cette boucle peut être implémentée

 
RomanS:


J'ai dû mal l'expliquer... par exemple

Si je fixe DAY = 0, le prix de la i-ème barre sera comparé au prix ouvert d'aujourd'hui, si DAY = 1, alors à hier, etc.

comment le faire dynamiquement... C'est-à-dire que lors du calcul de la 1278ème barre par exemple, il a été comparé au prix ouvert du jour où cette barre a été ouverte.

J'ai une fonction pour cela, qui renvoie l'OHLC de n'importe quelle période senior :)

//+------------------------------------------------------------------+
//| getOHLC                                                          |
//+------------------------------------------------------------------+
double getOHLC(int OHLC, string symbol, int timeframe, int shift = 0){
   if(timeframe < Period())return(-1);
   switch(OHLC){
      case 0:  return(iOpen(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 1:  return(iLow(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 2:  return(iHigh(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
      case 3:  return(iClose(symbol, timeframe, iBarShift(symbol, timeframe, Time[shift])));
   }
}
//+------------------------------------------------------------------+

Paramètres :
int OHLC - quelles données doivent être prises dans le cadre temporel haut, correspondent aux constantes standard.
string symbol - nom symbolique de l'instrument.
int timeframe - période du cadre temporel supérieur à travailler, correspond aux constantes standard.
int shif t - paramètre facultatif, spécifiant le numéro de la barre actuelle, de la période actuelle, pour rechercher des correspondances de périodes plus anciennes.

Exemple d'appel de fonction pour votre cas :

for(int i=0; i<limit; i++)
    {
     USD[i] = -(iClose("EURUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i))
              -(iClose("GBPUSD",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i))
              +(iClose("USDJPY",NULL,i)-getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i);
     EUR[i] = +(iClose("EURUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i))
              +(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              +(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)/getOHLC(0, "GBPUSD",PERIOD_D1,i))*iClose("GBPUSD",NULL,i);
     GBP[i] = +(iClose("GBPUSD",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i))
              +(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)/iClose("GBPUSD",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)/getOHLC(0, "GBPUSD",PERIOD_D1,i))*iClose("GBPUSD",NULL,i);
     JPY[i] = -(iClose("USDJPY",NULL,i)-getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("EURUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "EURUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i)
              -(iClose("GBPUSD",NULL,i)*iClose("USDJPY",NULL,i)-getOHLC(0, "GBPUSD",PERIOD_D1,i)*getOHLC(0, "USDJPY",PERIOD_D1,i))/iClose("USDJPY",NULL,i);
    }

En conséquence, iClose("EURUSD",NULL,i) trouvera le prix de clôture de la barre numéro i du graphique actuel, et getOHLC(0, "EURUSD",PERIOD_D1,i) le prix d'ouverture du jour dans lequel se trouve la barre i du graphique actuel.

 
RomanS:


J'ai dû mal l'expliquer... par exemple

Si je fixe DAY = 0, alors le prix de la i-ème barre, soit M5, sera comparé au prix ouvert d'aujourd'hui, si DAY = 1, alors au prix ouvert d'hier, etc.

comment le faire dynamiquement... C'est-à-dire que lors du calcul de la 1278ème barre par exemple, il a été comparé au prix ouvert du jour où cette barre a été ouverte.

Vous devez d'abord calculer à quel jour correspond cette barre. Je ne suis pas à la maison en ce moment, alors je vous donnerai la fonction plus tard quand je rentrerai dans la soirée. Entre-temps, recherchez-le vous-même ou trouvez comment le mettre en œuvre.

Oups... Déjà offert une variante....

 
akuma_san1:

En supposant qu'il s'agit d'un graphique d'un indicateur MAKD ou STOH tout de même, conseillez comment décrire le point d'entrée dans l'EA Xmax*0.25 pour la vente et Xmin*0.25 pour l'achat. Si la période "n" n'est pas constante et que Xmax et Xmin changent.

Vos critères d'entrée sont définis de manière très vague. Ce n'est pas clair pour moi personnellement. Si vous avez besoin de contrôler le franchissement d'un niveau quelconque, alors la modification de tous les paramètres fournis n'a aucun facteur d'interférence. Il suffit de regarder la valeur du paramètre requis sur la première barre et la valeur du même paramètre sur la deuxième barre. Si la valeur du paramètre sur la première barre est supérieure à une valeur seuil que vous avez spécifiée et que la valeur sur la deuxième barre est inférieure, nous avons un croisement de bas en haut. Si la valeur de la première barre est inférieure et que la deuxième barre est supérieure, nous avons un passage de la hausse à la baisse. Ici, nous avons deux signaux d'achat et de vente. Vous pouvez vérifier uniquement la valeur supérieure ou inférieure - nous aurons donc le même signal, mais pendant tout le temps où le paramètre est soit supérieur soit inférieur à la valeur surveillée.
SZY. Si les paramètres ne changeaient pas, nous n'aurions jamais de signal... :)