Wie aktualisiert man die Indikatoren für Build 600+? - Seite 4

 
qjol:
Sie scherzen natürlich, dass es funktioniert


Ja, es funktioniert jetzt.

Ich habe die neueste Version mit allen 10 Parametern verwendet und es funktioniert jetzt.

Danke dafür.

BTW, ich verstehe immer noch nicht, warum die ältere Version mit 7 Parametern nicht funktioniert hat!

Wie in der obigen Abbildung, hat dieser Indikator 8 externe Parameter. Hier wurde 'TimeFrame' als '0' vor dem String "xpMA" definiert.

Dann habe ich den Rest der 7 Parameter wie unten angegeben:

double  signal = iCustom(NULL,0,"xpMA",MA_Period,MA_Type,MA_Applied ,T3MA_VolumeFactor,JMA_Phase,Step_Period,DebugMode,3,0); 

Also, wo ich den Fehler gemacht bitte angeben.

Mit freundlichen Grüßen

 
deysmacro:

Er muss aus häufigen Fehlern lernen.

Danke für die Unterstützung und das Verständnis :)
 
Arav007:


BTW, ich verstehe immer noch nicht, warum die ältere Version mit 7 Parametern nicht funktioniert hat!

Wie im obigen Bild zu sehen, hat dieser Indikator 8 externe Parameter. Hier wurde 'TimeFrame' als '0' vor dem String "xpMA" definiert.

Dann habe ich den Rest der 7 Parameter wie unten angegeben:

Bitte geben Sie an, wo ich den Fehler gemacht habe.


Ich möchte es noch einmal wiederholen: Bei der Verwendung von iCustom müssen Sie die Parameter in der Reihenfolge der Deklaration übergeben


Die übergebenen Parameter und ihre Reihenfolge müssen mit der Deklarationsreihenfolge und dem Typ der externen Variablen des benutzerdefinierten Indikators übereinstimmen. Wenn die Werte der Eingabeparameter nicht angegeben sind, werden die Standardwerte verwendet.

Sie können KEINEN Parameter auslassen

Wenn ein benutzerdefinierter Indikator beispielsweise 5 Parameter hat, können Sie ihn so verwenden:

double x = iCustom (Symbol(), Period(), "Name", Param1, Param2, Param3, mode, shift);

aber Sie können es so nicht verwenden:

double x = iCustom (Symbol(), Period(), "Name", Param2, Param3, Param4, mode, shift);
 
qjol:


Lassen Sie es mich noch einmal sagen: Wenn Sie iCustom verwenden, müssen Sie die Parameter in der Reihenfolge der Deklaration übergeben.

Sie können KEINEN Parameter auslassen

Wenn ein benutzerdefinierter Indikator beispielsweise 5 Parameter hat, können Sie ihn so verwenden:

aber Sie können es nicht so verwenden:



Das ist es, was ich falsch mache und nicht erkennen kann.

Ok, hier ist, wie ich die Parameter zugewiesen habe:

Param1=MA_Periode

Parameter2=MA_Typ

Param3=MA_Angewandt

Param4=T3MA_VolumenFaktor

Param5=JMA_Phase

Param6=Schritt_Periode

Param7=DebugMode

Welcher Parameter ist nun falsch?

Mit freundlichen Grüßen

 

Sie haben den ersten Punkt "TimeFrame" übersprungen.



 
qjol:


Sie haben den ersten Parameter "TimeFrame" übersprungen.




ohh, dann ist das der Fall.

Wenn ich einen der externen Parameter auslasse, wird es nicht funktionieren.

Ich habe ihn aber bewusst übersprungen, da es mit dem aktuellen Zeitrahmen funktionieren sollte, der am Anfang definiert ist:

iCustom(Null, 0, Param1,...)

Deshalb dachte ich, dass es nicht nötig ist, ihn erneut als 'TimeFrame' zu definieren.

Danke für die Korrektur.

 
Arav007:


ohh, dann ist dies der Fall.

Wenn ich einen der externen Parameter auslasse, wird es nicht funktionieren.

Nein, man kann sie auslassen, aber man kann sie nicht überspringen, d.h. wenn es 5 Parameter gibt und man die letzten 2 auslässt, gibt es kein Problem.

aber man kann nicht 1 überspringen und 2 3 4 5 verwenden

Ich habe sie aber bewusst weggelassen, da es mit dem aktuellen Zeitrahmen funktionieren sollte, der am Anfang definiert ist:

iCustom(Null, 0, Param1,...)

ja, aber das Terminal weiß nicht, was dieser Parameter enthält, er kann alles enthalten (nicht unbedingt den Zeitrahmen)

Deshalb dachte ich, dass es nicht nötig ist, ihn erneut als 'TimeFrame' zu definieren.

nicht denken, handeln! ;-)

Danke für die Korrektur.

Grund der Beschwerde: