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

 
Prix:
Guten Tag. Weiß jemand, wo man einen ZIGZAG-Indikator herunterladen kann, der den Punkt markiert, an dem ein neuer Strahl erscheint (z.B. in einer anderen Farbe). Wenn es überhaupt eine gibt...

Suchen Sie nach DT_ZZ_Nen
 
Vinin:

Suchen Sie nach DT_ZZ_Nen

Danke, ich werde es gleich ausprobieren.
 
Helfen Sie mir bei der Behandlung von Arrays, die an die Funktion iMAOnArray übergeben werden.
Aus irgendeinem Grund funktioniert diese Funktion nur mit Pufferarrays (im VMA-Beispiel)
und funktioniert nicht mit "normalen" (z. B. SMA).

Im Folgenden finden Sie eine Übersicht darüber, wie ich in meinen Programmen vorgehe. Was ist los?

double MA1[],MA2[],VMA[],SMA[];

int init()
{

   SetIndexBuffer(0,MA1);
   SetIndexBuffer(1,MA2);
   SetIndexBuffer(2,VMA);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);  
   ArrayResize(SMA,1);  
   ArrayInitialize(SMA,0);

 return(0);
}

int start() 
{  
 
SMA[i]=...........;
VMA[i]=...........;

MA1[i]=iMAOnArray(SMA,0,8,0,0,0); //----этот вариант НЕ работает
MA2[i]=iMAOnArray(VMA,0,8,0,0,0); //----этот вариант всегда работает  
   
  return(0);
}

 

Ich habe Ihnen bereits darüber geschrieben, aber Sie haben es ignoriert:

Wenn Sie ein Array deklarieren, das kein Indikatorpuffer ist, MÜSSEN Sie seine Größe angeben, vorzugsweise größer, damit der Interpreter Speicherplatz zuweist.

 
Vinin:

Suchen Sie nach DT_ZZ_Nen

Wenn ich es richtig verstehe, zeigt der Punkt nicht an, wann der neue Strahl erscheint, sondern das Maximum oder Minimum der Kerze, an der er erschienen ist... Aber auch nicht schlecht... danke...
 
Fox_RM:
Helfen Sie mir bei der Behandlung von Arrays, die an die Funktion iMAOnArray übergeben werden.
Aus irgendeinem Grund funktioniert diese Funktion nur mit Pufferarrays (im VMA-Beispiel)
und funktioniert nicht mit "normalen" (z. B. SMA).

Im Folgenden finden Sie eine Übersicht darüber, wie ich in meinen Programmen vorgehe. Was ist los?

Die Reihenfolge der Vorbereitung von SMA[]- und VMA[]-Arrays geht aus diesem Codefragment nicht klar hervor, wenn man davon ausgeht, dass Sie die Größe eines "Nicht-Puffer"-Arrays angegeben haben.

Diese Arrays müssen zuerst mit Daten gefüllt werden, und dann müssen die Arrays MA1[] und MA2[] mit iMAOnArray() erstellt werden.

 
FAQ:

Ich habe Ihnen bereits darüber geschrieben, aber Sie haben es ignoriert:

Wenn Sie ein Array deklarieren, das kein Indikatorpuffer ist, MÜSSEN Sie seine Größe angeben, vorzugsweise größer, damit der Interpreter Speicherplatz zuweist.

Ich habe ihm eine Größe von 1 bis Bars gegeben. Sowohl bei der Deklaration als auch bei ArrayResize hat sich nichts geändert;(
 
double SMA[];

int init()
{
   ArrayResize(SMA,1);     //--- Размер различный задавал от 1 до Bars 
   ArrayInitialize(SMA,0);

 return(0);
}

int start() 
{  
 
SMA[i]=...........; // --- Заполнение массива.

MA1[i]=iMAOnArray(SMA,0,8,0,0,0); //----MA1 буферный.
   
  return(0);
}

Normalerweise mache ich das mit einer ungepufferten Version.

 
double MA1[],MA2[],VMA[],SMA[3000];<= вписать размер!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
FAQ:

Ich verstehe, was Sie meinen.) Ich habe ihm eine Größe von 1 bis Bars gegeben. Sowohl bei AD als auch bei ArrayResize. Liegt der Fehler vielleicht an einer anderen Stelle?