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

 
jommerbot:

OK, selbst im einfachsten Fall funktioniert es nicht:

Ich verstehe nicht, wo mein Fehler liegt. Das Kopieren des Puffers desselben Indikators in EA und Skript funktioniert, aber nicht im Indikator. Der Indikatorgriff wird ohne Fehler initialisiert.

Finden Sie den Unterschied. )

#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
#property  indicator_type1   DRAW_LINE
#property  indicator_color1  clrRed
//---
double ExtLineBuffer[];
int    iRocHandleEURUSD =INVALID_HANDLE;
int    iPlotShift       =0;
int    iPeriod          =6;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
   IndicatorSetInteger(INDICATOR_DIGITS,2);
   SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA);
   PlotIndexSetInteger(0,PLOT_SHIFT,iPlotShift);
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,iPeriod-1);
//---
   iRocHandleEURUSD=iCustom("EURUSD",0,"Examples\\ROC");
   if(iRocHandleEURUSD==INVALID_HANDLE)
      Print("Не удалось получить хендл индикатора ROC EURUSD");
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int    rates_total,
                const int    prev_calculated,
                const int    begin,
                const double &price[])
  {
//---
   if(rates_total<iPeriod)
      return(0);
//---
   int first=0;
   double aRocRatesEURUSD[];
   ArraySetAsSeries(ExtLineBuffer,true);
//---
   if(prev_calculated==0)
      first=0;
   else
      first=prev_calculated-1;
//---
   for(int bar=first; bar<rates_total; bar++)
     {
      CopyBuffer(iRocHandleEURUSD,0,bar,1,aRocRatesEURUSD);
      Print("bar: ",bar,"; value: ",DoubleToString((aRocRatesEURUSD[0]!=EMPTY_VALUE)?aRocRatesEURUSD[0]:0,2));
      ExtLineBuffer[bar]=aRocRatesEURUSD[0];
     }
//---
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

Ja, ich hab's, in der letzten Version meines Codes wurde der Indikator-Handler in den falschen Bereich der Variablen gebracht. Ich habe es verpasst, danke. Aber es gibt ein Problem - im Tester funktioniert der Indikator auf historischen Balken vor Beginn des Testzeitraums normal, aber ab dem Beginn des Testzeitraums werden die neu eingetroffenen Ticks nicht berücksichtigt. D.h. der Puffer eines untergeordneten Indikators wird nicht aktualisiert.

 

Gute Leute, bitte helft mir, den Code zu korrigieren, so dass von der Job-Zeile in "Input-Parameter" des Beraters
extern string Lot = "0.2 0.2 0.3 0.4 0.5"; // (durch ein Leerzeichen)
der letzte Wert (in diesem Fall 0.5) würde unendlich wiederholen, d.h. nicht
"0.2 0.2 0.2 0.3 0.4 0.5 0.5 0.5 0.5 0.5 0.5 0.5" zu schreiben;

//----------------------------

StringToArrayLot(Lot,xiLot);

//---------------------------------------------------

int StringToArrayLot(string st,double &ad[])
{
int i=0,np; string stp;ArrayResize(ad,0);
while(StringLen(st)>0)
{
np=StringFind(st," ");
if(np<0)
{
stp=st;
st="";
} else{
stp=StringSubstr(st,0,np);
st=StringSubstr(st,np+1);
}
i++;
ArrayResize(ad,i);
ad[i-1]=StrToDouble(stp);
}
return(ArraySize(ad));
}

 
Warum kann ich meinen EA nicht auf der Website oder im Terminal sehen?
 
Krasev157:
Warum kann ich meinen EA nicht auf der Website oder im Terminal sehen?
Um es auf der Website zu sehen, müssen Sie es hochladen. Um es im Terminal zu kompilieren.
 
zfs:
Um es auf der Website zu sehen, müssen Sie es hochladen. Um es im Terminal zu kompilieren.

Ich kann es nicht in meinem Profil sehen, aber ich kann es nicht in meinem Profil sehen.

 
Krasev157:

Ich werde es auf der Website veröffentlichen, da ich es nicht in meinem Profil sehen kann.

Geben Sie mir bitte einen Link zu einem albanischen Wörterbuch.
 
barabashkakvn:
Geben Sie mir bitte einen Link zu einem albanischen Wörterbuch.

http://www.txtblog.ru/blog/1165306807 hier geht's los

 
Krasev157:

http://www.txtblog.ru/blog/1165306807 hier geht's los

Herr Hattar ist Feuer und Flamme.

Na los!

Bazinga!

 
Hallo, wenn es nicht zu viel Mühe macht, könnten Sie mir das bitte sagen? Wie kann ich den Preis der letzten 5 Ticks in ein Array einfügen?
Grund der Beschwerde: