[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 264

 

Pouvez-vous me dire comment assigner le temps de la ligne d'indicateur val1[]. Ou dites-moi comment faire et quoi utiliser parce que je n'arrive pas à comprendre. Indicateur de Laguerre.

i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
  // присваиваем время;}

Par exemple, lorsque la ligne val1[c] croise 0,45 vers le haut, la valeur du temps est définie dans la variable TimeBegin et lorsqu'elle croise vers le bas, la valeur du temps est définie dans la variable TimeEnd. Et ainsi de suite sur l'ensemble du graphique.

L'idée est que lorsque la ligne traverse 0.45 vers le haut et après qu'elle traverse 0.45 vers le bas, pour cette période, compter les points dans le graphique (Combien de points l'indicateur a donné au maximum pour ce signal). J'espère avoir pu vous expliquer.

Dossiers :
 
VeyRON123:
Existe-t-il un moyen de déconnecter MT4 lui-même d'Internet sans désactiver Internet sur votre ordinateur ?
hrenfx 20.03.2011 16:18

Déconnectez-vous du broker en cochant la case "proxy" dans les paramètres du terminal. Un seul geste et vous êtes soit hors ligne, soit en ligne.

 
Bonjour, pourriez-vous me dire pourquoi la fonction standard OrderSend ne fonctionne pas ? J'ai pris le code source du tutoriel sur ce site, mais rien ne se passe. Lorsque j'ai ajouté la sortie d'erreur, elle a montré 4109 - chaîne non initialisée dans un tableau...
 
Merci pour les conseils, je vais y réfléchir...
 
Golden-dark:
Bonjour, pourriez-vous me dire pourquoi la fonction standard OrderSend ne fonctionne pas ? J'ai pris le code source du tutoriel sur ce site, mais rien ne se passe. Lorsque j'ai ajouté la sortie d'erreur, elle a montré 4109 - chaîne non initialisée dans un tableau...
montrez-moi le code complet
 

Salutations camarades !

Pouvez-vous me dire quelle pourrait être l'erreur dans le code suivant :

//+------------------------------------------------------------------+
//|                                                         BB_k.mq4 |
//|                                                     |
//|                                                          no link |
//+------------------------------------------------------------------+
#property copyright "123"
#property link      "no link"

#property indicator_separate_window
#property indicator_buffers 1

#property indicator_color1 MediumSpringGreen

#property indicator_width1 1

double   buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {

   SetIndexBuffer (0, buf_0);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexLabel (0, "Koefficient");
   SetIndexShift (0, 0);

   return;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i;
   int    counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1;
   
   while (i>=0)
   {
      double x1 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 1, i); //Верхняя полоса
      double x2 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 2, i); //Нижняя полоса
   
      buf_0[i] = x1 / x2;
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+

L'essentiel est le suivant : je veux un indicateur qui affiche une ligne de valeurs divisant la bande de Bollinger supérieure par la bande de Bollinger inférieure.

Mais il n'y a pas de résultat.

La fenêtre de l'indicateur est vide :

Merci d'avance si quelqu'un peut vous aider !

 
ramirez17:

Salutations camarades !

Pouvez-vous me dire quelle pourrait être l'erreur dans le code suivant :

L'essentiel est le suivant : je veux un indicateur qui affiche une ligne de valeurs divisant la bande de Bollinger supérieure par la bande de Bollinger inférieure.

Mais il n'y a pas de résultat.

La fenêtre de l'indicateur est vide :

Merci d'avance si quelqu'un peut vous aider !

buf_0[i] = x1 / x2;

vous avez x2=0 sur les barres les plus à gauche. Et diviser par zéro n'est pas une bonne chose...

 
ilunga:

vous avez x2=0 sur les barres les plus à gauche. Et diviser par zéro n'est pas une bonne chose...


Que pouvez-vous faire, par exemple, pour éviter cela ?
 
ramirez17:

Que pouvez-vous faire, par exemple, pour éviter cela ?
if (x2 == 0) buf_0[i] = 0;
else buf_0[i] = x1 / x2;
Il est préférable d'éviter que cela ne se produise.
 
Pouvez-vous me donner un indice ? Il y a deux conditions, pour l'achat et pour la vente. Après avoir attrapé un faux signal de vente, par exemple d'achat, le conseiller expert commence à ouvrir la position suivante à nouveau par ce faux signal et attrape à nouveau un faux signal. Comment faire pour que mon EA attende le signal dans la direction opposée après la perte et ne soit pas ouvert par le faux signal à nouveau ? Merci !