[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 - 5. - page 350

 
smartemiy:

avec le même bouclage ?

Je vais essayer
 
Serg16:

Veuillez m'aider à résoudre le problème de la limite de décalage dans iHigh(Symbol(),timeframe,shift), qui est limitée au nombre 1000.

iTime(Symbol(),timeframe,1001) donne 1970.01.01 00:00

Personne ne peut aider qu'il n'y a qu'une seule option, lire à partir du fichier historique ? Si c'est la seule option, quelqu'un a-t-il une méthode toute faite pour identifier les informations nécessaires dans le fichier historique ?
 
sergeev:

Vous n'appuyez pas sur la barre d'espacement, mais maintenez le bouton d'alimentation enfoncé pendant 5 à 10 secondes jusqu'à ce que le signal disparaisse.

Dans KVN, parmi les modérateurs, vous serez le capitaine de l'équipe ... Je vais répéter la question, peut-être que quelqu'un y répondra : l'alerte ne s'éteint pas après avoir appuyé sur la barre d'espace .... La version du terminal est la dernière 500... Je n'ai jamais vu ça avant.
 
Et dans l'onglet "Événements" du menu "Outils - Paramètres", les choses vont plutôt mal. Essayez de l'utiliser :(
 

Les gars, s'il vous plaît, donnez-moi un indice. J'ai déjà posé cette question, mais je n'ai pas réussi à obtenir le bon code.

Une fois de plus, je vais vous dire l'essentiel de l'idée. Par l'indicateur Awesom, du bas (en dessous de 0) au haut (au-dessus de 0), le volume de la vague (indicateur Volumes) est calculé.

L'étiquette de texte avec la somme du volume de la vague, doit être imprimée sur le graphique de l'indicateur et calculée sur l'historique complet.

J'ai eu ça :

fig4

Quelle est l'erreur ?

#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Red
#property  indicator_color2  SteelBlue
#property  indicator_width1  2

//---- basic fan indicator parameters

extern bool Show_AOLine_2=true;
extern int SlowEMA3=34;
extern int EMA=3;
extern bool Show_Volume=true;
extern double coaf=0.5;
//---- indicator buffers
double AOBuffer3[];
double ExtMapBuffer1[];


    double VLUP, AO_up,AO_dn;
    double prhgh_e=0, prhgh_s, prlw_e=0, prlw_s;
    datetime tmhgh, tmlw;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   //---- drawing settings
   
  string name_ind = "Awesome_super_volumes";
   IndicatorShortName("Awesome_super_volumes");
   
   
//---- AO_fan line 2 (basic)
   if(Show_AOLine_2 ==true){Show_AOLine_2=DRAW_LINE; }
   else 
    {Show_AOLine_2=DRAW_NONE; }
   SetIndexBuffer(0,AOBuffer3);
   SetIndexStyle(0,Show_AOLine_2);
   SetIndexLabel(0,"basic line");   

   SetIndexBuffer(1,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexLabel(1,"Volume");
   
  //---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Awesome Oscillator                                               |
//+------------------------------------------------------------------+
int start()
  {
  
   int    limit;
   int    counted_bars=IndicatorCounted();
   double prev,current;
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;

   for(int i=0; i<limit; i++)
   {
     
 //---- AO_fan + Volumes
     
AOBuffer3[i]=iMA(NULL,0,EMA,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,SlowEMA3,0,MODE_SMA,PRICE_MEDIAN,i);
if (Show_Volume==true)
{
double nSum = Volume[i]*Point*coaf;
   if (AOBuffer3[i]<=0)ExtMapBuffer1[i] = nSum;
   if (AOBuffer3[i]>0)ExtMapBuffer1[i] = -nSum;


double Vol_Arr[];
  if (AOBuffer3[i]<=0)Vol_Arr[i]=Volume[i]*Point*coaf;
  if (AOBuffer3[i]>0)Vol_Arr[i] = -Volume[i]*Point*coaf;
}
}

  //-- Поиск High & Time & Min_AO  
  if (AOBuffer3[i]>0)
  {
    
  AO_up = AOBuffer3[i]*0.1+AOBuffer3[i];
  prhgh_s = High[i];
  if (prhgh_s >= prhgh_e) {prhgh_e = prhgh_s; tmhgh = Time[i];}
  //SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmhgh, AO_up, Black);
  }   
   
  //-- Поиск Low & Time & Max_AO 
  if (AOBuffer3[i]<0)
  {
  AO_dn = AOBuffer3[i]*0.1+AOBuffer3[i];
  prlw_s = Low[i];
  if (prlw_s > prlw_e) {prlw_e = prlw_s; tmlw = Time[i];}
  //SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmlw, AO_dn, Black);
  } 
  
  // -- Пересчет баров от High до Low
  
  if(NewBar())
{ 
int colbr = iBarShift(NULL,0,tmhgh)-iBarShift(NULL,0,tmlw);     
int shift=iBarShift(NULL,0,tmhgh);
 for (i=0; i<=colbr; i++)
{VLUP += MathAbs(iVolume(NULL,0, shift+i));}
}


    
   Comment("Vol_",VLUP,prlw_e,prhgh_e); 
  for(i=0; i<limit; i++)
   {     
SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmlw, AO_dn, Black);     
 }
        
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
void SetText(string name, string Vl, datetime t1, double p1, color c)
 {
 // if (ObjectFind(name)!=-1) ObjectDelete(name);
  ObjectCreate(name,OBJ_TEXT,WindowFind("Awesome_super_volumes"),0,0,0,0);
  ObjectSetText(name, Vl, 10, "Times New Roman", c);
  ObjectSet(name, OBJPROP_TIME1 , t1);
  ObjectSet(name, OBJPROP_PRICE1, p1);
  ObjectSet(name, OBJPROP_COLOR, c); 
  }
  
  bool NewBar()
{
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   if(lastbar!=curbar)
   {
      lastbar=curbar;
      return (true);
   }
   else
   {
    return(false);
   }}
 
smartemiy:

1. La fonction de conversion convertit et les changements de variables dans cette fonction ne changeront pas s'il n'y a pas de tique. TimeToStr(TimeLocal(), TIME_MINUTES) - dépend du tick.

Avez-vous une idée de comment extraire l'heure de Win32/User32 afin de ne pas bloquer l'EA ?

1. Aucune de ces fonctions ne dépend de la tique. Il suffit d'appeler la fonction pour obtenir la valeur de retour. L'indicateur et le conseiller expert l'appellent à l'arrivée d'un tick, mais ce n'est pas grave. Vous pouvez boucler un conseiller expert ou un script. La fréquence des appels sera la même que dans l'indicateur ou le script.

2. Il n'y a pas de sens. Vous devrez inventer la même TimeLocal().

 
Heroix:

Je n'ai rien trouvé dans le manuel sur la signification de "&" dans les paramètres de la fonction formelle. Pouvez-vous me dire ce que cela affecte et ce que cela signifie ?


https://docs.mql4.com/ru/basis/variables/formal


La deuxième partie de la page avec les mots "Il est possible de passer des paramètres par référence..." Regardez bien là Exemple.

 
Vous êtes rapide, cependant. J'ai supprimé le message car je l'ai trouvé moi-même. Merci ! (Rires)
 

Bon après-midi.

Pourriez-vous me conseiller sur la meilleure façon d'enregistrer le croisement de, disons, stochastiques :

sur la première et la troisième barre, comparer les valeurs de la ligne de signal et de la ligne principale ou de la première et de la deuxième ?

 
Heroix:
Vous êtes rapide, cependant. J'ai supprimé le message car je l'ai trouvé moi-même. Merci beaucoup !

C'est bon d'avoir de vos nouvelles, je pensais répondre à un vieux message que je n'arrive pas à trouver :)