Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 930

 
ascerdfg:
Ist das möglich?

ersetzen durch:

Warum nicht? Natürlich können Sie das.

 
double Open[3];

int Ind_Handle;

int OnInit()
  {
      Ind_Handle=iCustom(_Symbol,_Period,"Pop"); // Pop.ex5
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Не удалось получить хендл индикатора");
         return(INIT_FAILED);
        }
   
   return(INIT_SUCCEEDED);
  }


void OnTick()
  {
 
      CopyBuffer(Ind_Handle,0,1,1,Open);
      Print("Open0 ",Open[0]);
  }

Druckt: "Open0 1.797693134862316e+308".

Obwohl ich sowohl die Nummer der Indikatorpufferzelle als auch den Index geändert habe.

Ich weiß mit Sicherheit, dass der Indikator eine ganze Zahl enthält. Warum wird das so gedruckt?

 
ascerdfg:

Druckt: "Open0 1.797693134862316e+308".

Obwohl ich sowohl die Nummer der Indikatorpufferzelle als auch den Index geändert habe.

Ich weiß mit Sicherheit, dass der Indikator eine ganze Zahl enthält. Warum wird das so gedruckt?

Entweder ArraySetAsSeries nach der Array-Deklaration wahr machen oder Array mit Größe 1 deklarieren
 
void OnTick()
  {
     int i;
     double price=.5;
     double Open[];
      ArraySetAsSeries(Open,true);

      Print("Кол-во ",BarsCalculated(Ind_Handle));
      Print("хэндл ",Ind_Handle);
      CopyBuffer(Ind_Handle,0,0,100,Open);
                 
      
    for(i=0; i<100; i++)
    {
        if(Open[i]!=EMPTY_VALUE)
        {
            price=Open[i];
            break;
        }
    }
           
      Print(price);
  }
Funktioniert nicht, schreibt die ganze Zeit 0,5. Es scheint immer mit der maximalen Anzahl zu puffern.
 
ascerdfg:
Hilft nicht, schreibt die ganze Zeit 0,5. Es stellt sich heraus, der Puffer die ganze Zeit mit der maximalen Anzahl.

Wenn Sie eine genaue Antwort wünschen, stellen Sie die Frage richtig: Geben Sie den Code des Indikators und den Code des Expert Advisors an. Jetzt ist nicht klar, WAS, WER und WO :)

 

Rohr - Indikator

rrr - Berater

Dateien:
Pop.mq5  38 kb
ppp.mq5  4 kb
 
ascerdfg:

Ror - Indikator

rrr - EA

Schreiben Sie den Indikator neu - prüfen Sie erstens, ob STOP WORDS vorhanden sind, und vereinfachen Sie ihn zweitens so weit wie möglich - geben Sie z. B. die Zahl, die der Nummer des aktuellen Balkens entspricht, in den Indikatorpuffer ein.

Was wir bekommen: array[0]=0.0, array[1]=1.0 und so weiter. Dies wird das Verständnis des Datenempfangs durch den Indikator SEHR, SEHR vereinfachen. Drittens: Lassen Sie nur einen Indikatorpuffer übrig.

 

Können Sie mir bitte sagen, wie ich das aktualisierte Symbol in dieser Funktion explizit angeben kann? Zum Beispiel EURUSD.m

//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates(void)
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
     {
      Print("RefreshRates error");
      return(false);
     }
//--- protection against the return value of "zero"
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);
//---
   return(true);
  }
//+------------------------------------------------------------------+
 

Guten Tag!

Wissen Sie, wie man einen Indikator für Market erstellt?

Ich habe eine Datei mit der Erweiterung .mq5 und einige Include-Dateien mit der Erweiterung .mqh.

Soweit ich weiß, kann man die .mqh-Datei nicht über Ressourcen an die .mqh-Datei anhängen. Sollte ich wirklich alles manuell in eine Datei konvertieren?

Und wenn es eine neue Version gibt:? Es ist verrückt +)))

Danke.

 
EgorKim:

Können Sie mir bitte sagen, wie ich das aktualisierte Symbol in dieser Funktion explizit angeben kann? Zum Beispiel EURUSD.m

Eine Folgefrage: "Warum müssen Sie das Symbol hier explizit angeben?

Wenn Sie diese Funktion verwenden, müssen Sie m_symbol in OnInit ein Symbol zuweisen:

   if(!m_symbol.Name(Symbol())) // sets symbol name
      return(INIT_FAILED);
   RefreshRates();

Wenn Sie in diesem Fall den Expert Advisor für das Symbol "EURUSD.m" ausführen, wird m_symbol automatisch auf "EURUSD.m" gesetzt.

Grund der Beschwerde: