Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1535

 
Artyom Trishkin:

Et la bonne option est, eh bien, très simple...

Alors, qu'est-ce que c'est ?

 
Andrey Sokolov:

Alors lequel ?

C'est si simple :)

S'il n'y a pas de données, on sort jusqu'au prochain tick.

 
Bonjour, est-il possible d'enregistrer un signal dans MT4 à partir d'un compte de démonstration ? Merci.
 
Artyom Trishkin:

C'est si simple :)

S'il n'y a pas de données, on sort jusqu'au prochain tick.

Non, j'ai écrit que les calculs et les affichages sur ces derniers sont nécessaires en même temps.

S'il y aura des problèmes avec la solution existante, je pense que, comme alternative, on peut écrire une fonction de calcul de bollinger, cela ne semble pas difficile. Mais pour l'instant et ce que nous avons fonctionne.

 
Bonjour, Comment puis-je connaître le prix futur de l'objet graphiqueOBJ_TREND? Par exemple, nous avons un rayon vers la droite et avons besoin de connaître à chaque nouvelle barre la valeur de ce rayon. merci !
 
MakarFX:

Cette structure doit être

Je l'ai fait, ça a marché. Merci.

 
Andrey Sokolov:

Non, j'ai écrit que les calculs et les affichages sont nécessaires immédiatement.

S'il y aura des problèmes avec la solution existante, alors je pense, comme une option, vous pouvez écrire une fonction pour calculer la bollinger, il semble pas compliqué. Mais pour l'instant, celui qui existe fonctionne.

L'indicateur, s'il est correctement conçu, calcule toujours l'historique complet en premier. Qu'est-ce que vous avez ?

 
Artyom Trishkin:

Qu'est-ce que tu as ?

Je ne comprends pas la question.

 
Les gars, aidez-moi à faire une alerte à un indicateur. Je veux tester une combinaison de différents indicateurs, mais j'ai besoin d'une fonction d'alerte. J'ai besoin que l'alerte ne s'affiche qu'une seule fois lorsque la flèche apparaît. Si vous n'êtes pas dur s'il vous plaît aidez-moi à écrire cette fonction, je ne peux pas le faire, les alertes pop up une minute entière ou tout le temps, même mt4 hangs.
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

    int limit=rates_total-prev_calculated-2;
   if(limit<1) return(0);
   for(int i=limit;i>=0;i--)
     {
     
      // Снимем показания индикатора
     double in1b = iCustom(NULL,0,"in1",1,i); // индикатор 1 стрелка вверх
     double in1s = iCustom(NULL,0,"in1",0,i); // индикатор 1 стрелка вниз
      
     
     
     double in2b = iCustom(NULL,0,"in2",0,i); // индикатор 2 стрелка вверх
     double in2s = iCustom(NULL,0,"in2",1,i); // индикатор 2 стрелка вниз
    
    Comment("in1v = "+DoubleToString(in1b)+"\n" +"in1n = "+DoubleToString(in1s)+"\n"
    +"in2v = "+DoubleToString(in2b)+"\n" +"in2n = "+DoubleToString(in2s));
     
    if(in1b > 2147483647 && in2b > 2147483647) // индикатор стрелка вверх
           {
           Sell[i]=low[i];
                      
          
          // Alert(Symbol()+"BUY";
              
           
           
           
         
           }
   
     if(in1s > 2147483647 && in2s > 2147483647) // индикатор стрелка вниз
           {
            Buy[i]=high[i];
            
              // Alert(Symbol()+"SELL М"+Period());
              
              
           
           }
         
   
     }
   
     
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
jarikn:
Les gars, aidez-moi à créer une alerte pour un indicateur. Je veux tester une combinaison de différents indicateurs, mais j'ai besoin d'une fonction d'alerte. J'ai besoin que l'alerte ne s'affiche qu'une seule fois lorsque la flèche apparaît. Si vous n'êtes pas dur s'il vous plaît aidez-moi à écrire cette fonction, je ne peux pas le faire, les alertes pop up une minute entière ou tout le temps, même mt4 gèle.

Essayez ceci, ça semble fonctionner

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   datetime show_alert=time[1];
   int limit=rates_total-prev_calculated-2;
   if(limit<1) return(0);
   for(int i=limit;i>=0;i--)
     {
     
      // Снимем показания индикатора
      double in1b = iCustom(NULL,0,"in1",1,i); // индикатор 1 стрелка вверх
      double in1s = iCustom(NULL,0,"in1",0,i); // индикатор 1 стрелка вниз
      
      double in2b = iCustom(NULL,0,"in2",0,i); // индикатор 2 стрелка вверх
      double in2s = iCustom(NULL,0,"in2",1,i); // индикатор 2 стрелка вниз
    
      Comment("in1v = "+DoubleToString(in1b)+"\n" +"in1n = "+DoubleToString(in1s)+"\n"
      +"in2v = "+DoubleToString(in2b)+"\n" +"in2n = "+DoubleToString(in2s));
     
      if(in1b > 2147483647 && in2b > 2147483647) // индикатор стрелка вверх
        {
         Sell[i]=low[i];
         if(show_alert!=time[i])
           {
            Alert(Symbol()+"BUY М"+Period()); show_alert=time[i];
           }
        }
   
      if(in1s > 2147483647 && in2s > 2147483647) // индикатор стрелка вниз
        {
         Buy[i]=high[i];
         if(show_alert!=time[i])
           {
            Alert(Symbol()+"SELL М"+Period()); show_alert=time[i];
           }
        }
     }
     
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
Raison: