Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 722

 
Zver4991:
Gibt es irgendwelche Kodexregeln?

Natürlich, und nicht nur den Code!

https://forum.mql4.com/ru/38943

 
Ich kann nicht herausfinden, warum es hängen bleibt
//+------------------------------------------------------------------+
//|                     Машка за больший период без перерисовки .mq4 |
//|                                                             Zver |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Zver"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
#property  indicator_color1 Aqua
extern int Otobrajat_v_istorii = 1000;
extern int ma_shift=0;
extern int ma_method =0;
extern int applied_price=0;


double buf_ma[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
     SetIndexBuffer(0,buf_ma);         // Назначение массива буферу
   SetIndexStyle(0,DRAW_LINE,EMPTY,2);// Стиль линии
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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 i,// Индекс бара
   Counted_bars;
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if(i>Otobrajat_v_istorii-1) // Если много баров то ..
      i=Otobrajat_v_istorii-1;                  // ..рассчитывать заданное колич.
     
   while(i>=1) // Цикл по непосчитанным барам
     {

    
     buf_ma[i]=iMA(Symbol(),Period(),5,ma_shift,ma_method,applied_price,i);
  
     
     }
   
   
   
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

 
Code-Variante
int Err;   //Номер ошибки
int FunErr(int Err) // Функция обработки ошибок
gibt eine Warnung aus:
Deklaration von 'Err' verdeckt globale Deklaration in Zeile 51
Eine weitere Code-Variante
int Err;   //Номер ошибки
int FunErr(Err) // Функция обработки ошибок
ergibt einen Fehler:
Err" - Erklärung ohne Typ
Wie schreibt man ihn richtig?
 
Zver4991:
Ich kann nicht herausfinden, warum es hängen bleibt
int i// Balkenindex
while(i>=1) // Durchlaufen der nicht gezählten Balken
i>=1immer.
 
Shurkin:
int i// Balkenindex
while(i>=1) // Schleife über nicht gezählte Balken
i>=1immer.

Richtig, das hatte ich vergessen... Danke.

i--;

 
//--------------------------------------------------------------------
int Count=0;                                    
//--------------------------------------------------------------------
void OnTick()   
  {
   Count++;
   Comment("Новый тик ", Count);
   //if(Count>2) ExpertRemove();
  }
//--------------------------------------------------------------------
void OnDeinit(const int reason)
  {
   Comment("Сработала ф-ия deinit() при выгрузке");
  }
//--------------------------------------------------------------------

Wenn Sie if(Count>2) ExpertRemove() auskommentieren und mit dieser Funktion beenden, wirdnach dem Entladen des EA der Kommentar "Deinit() triggered during unloading" auf dem Chartangezeigt .

Weiß jemand, warum, wenn ein solcher EA über das Kontextmenü aus dem Diagramm entfernt wird, Comment() von OnDeinit nicht im Diagramm verbleibt?

 

Shurkin:

Code-Variante
int Err;   //Номер ошибки
int FunErr(int Err) // Функция обработки ошибок
gibt eine Warnung aus:
Deklaration von 'Err' verdeckt globale Deklaration in Zeile 51
Eine weitere Code-Variante
int Err;   //Номер ошибки
int FunErr(Err) // Функция обработки ошибок
ergibt einen Fehler:
Err" - Erklärung ohne Typ
Wie schreibt man ihn richtig?

Dies ist ein Fehler des Sprachdesigns im Allgemeinen, der auf höchster Ebene verteidigt wird. Zwei Fakten:

1. Die Sprache MQL4++ erlaubt es, Variablennamen in verschachtelten Bereichen zu verstecken.

2. Beim Ausblenden von Variablennamen in verschachtelten Bereichen muss eine Warnung ausgegeben werden, die nicht deaktiviert werden kann.

Um die Frage zu beantworten, gibt es mindestens zwei Möglichkeiten:

1. das Ausblenden von Namen verwenden, aber das Vorhandensein einer Warnung in Kauf nehmen (schlecht, Sie könnten eine wirklich wichtige andere Warnung unter den vielen Warnungen zum Ausblenden von Namen übersehen, die dazu beitragen könnte, einen potenziellen Fehler zu erkennen und zu beseitigen).

2. Verwenden Sie nicht das Ausblenden von Namen, auch wenn die Sprache über eine solche Funktion verfügt. Benennen Sie zum Beispiel die globale Variable gErr statt Err.

Anstatt das Verstecken von Namen zu verbieten, wird eine nicht zu entfernende Warnung eingeführt. Nutzen Sie es aus.

 

Auf Russisch: Die richtige Option ist die erste, ignorieren Sie die Warnhinweise.

 
tara:

Auf Russisch: Die richtige Option ist die erste, ignorieren Sie die Warnhinweise.

Ich danke Ihnen.
 
Wo finde ich Funktionsbeschreibungen in den Einbeziehungsdateien?