[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 350

 
Ja, Sie müssen den Fahrplan weiterhin selbst aktualisieren.
 
smartemiy:

mit der gleichen Schleife?

Ich werde es versuchen.
 
Serg16:

Bitte helfen Sie mir, das Problem mit der Verschiebungsgrenze in iHigh(Symbol(),timeframe,shift)zu lösen , die auf die Zahl 1000 begrenzt ist.

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

Niemand kann helfen, dass es nur eine Option gibt, nämlich aus der Verlaufsdatei zu lesen? Wenn das die einzige Möglichkeit ist, hat jemand eine fertige Methode, um die erforderlichen Informationen in der Verlaufsdatei zu ermitteln?
 
sergeev:

Sie drücken nicht die Leertaste, sondern halten die Einschalttaste 5-10 Sekunden lang gedrückt, bis das Signal verschwindet.

In KVN bist du unter den Moderatoren der Teamkapitän ... Ich wiederhole die Frage, vielleicht kann sie jemand beantworten: Der Alarm schaltet sich nicht aus, wenn man die Leertaste drückt ... Die Terminalversion ist die neueste 500... Das habe ich noch nie gesehen.
 
Auf der Registerkarte "Ereignisse" des Menüs "Extras - Einstellungen" sieht es allerdings ziemlich schlecht aus. Versuchen Sie, es zu benutzen :(
 

Leute, bitte gebt mir einen Tipp. Ich habe diese Frage bereits gestellt, aber ich habe es nicht geschafft, den Code richtig hinzubekommen.

Ich werde Ihnen noch einmal das Wesentliche der Idee erläutern. Mit dem Awesom-Indikator wird von unten (unter 0) nach oben (über 0) das Volumen der Welle (Indikator Volumes) berechnet.

Die Textbeschriftung mit der Summe des Volumens der Welle, sollte auf dem Indikator-Chart gedruckt und über die gesamte Historie berechnet werden.

Ich habe das hier:

Abbildung 4

Worin besteht der Fehler?

#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. Die Konvertierungsfunktion konvertiert und die Variablenänderungen in dieser Funktion ändern sich nicht, wenn kein Häkchen vorhanden ist. TimeToStr(TimeLocal(), TIME_MINUTES) - hängt vom Tick ab.

Haben Sie eine Idee, wie man die Zeit aus Win32/User32 herausziehen kann, damit der EA nicht stecken bleibt?

1. Keine dieser Funktionen ist tickabhängig. Sie müssen die Funktion nur aufrufen, um den Rückgabewert zu erhalten. Der Indikator und der Expert Advisor rufen ihn beim Eintreffen eines Ticks auf, aber das ist nicht weiter schlimm. Sie können einen Expert Advisor oder ein Skript schleifen. Der Anruf wird mit der von Ihnen eingestellten Frequenz getätigt.

2. Das hat keinen Sinn. Sie müssen das gleiche TimeLocal() erfinden .

 
Heroix:

Ich konnte im Lehrbuch nichts darüber finden, was "&" in den formalen Funktionsparametern bedeutet. Können Sie mir sagen, welche Auswirkungen sie hat und was sie bedeutet?


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


Der zweite Teil der Seite ab den Worten "It is possible to pass parameters by reference..." Schauen Sie dort genau hin Beispiel.

 
Sie sind aber schnell. Ich habe den Beitrag gelöscht, da ich ihn selbst gefunden habe. Danke! (Lacht)
 

Guten Tag.

Könnten Sie mir einen Rat geben, wie ich das Kreuzen von z. B. Stochastiks am besten aufzeichnen kann?

auf dem ersten und dritten Balken die Werte der Signal- und Hauptleitungen oder der ersten und zweiten ?

Grund der Beschwerde: