Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Das inf könnte für 'infinitely' (unendlich) stehen, ist mir noch nicht untergekommen.
Das mit den 2 Variablen in der for-schleife ist ok.
Das inf könnte für 'infinitely' (unendlich) stehen, ist mir noch nicht untergekommen.
Das mit den 2 Variablen in der for-schleife ist ok.
das unendlich würde irgendwie passen, das würde auch den zeitweiligen Wert von -inf erklären
was mir aufgefallen ist,
bei MT4 war ja im Indicator noch erlaubt
das ist ja beim MT5 (scheinbar) nicht mehr erlaubt, ich muss in der for schleife + zählen oder?
bzw müsste ich sonst den Array mit ArraySetAsSeries(Array,false) initialisieren? nicht das es jetzt einen großen unterschied machen würde, aber rein der neugierde halber, da man ja im MT5 generell -- verwenden sollte
rein theoretisch darf ich ja in der for schleife für die Berechnung den MA verwenden
buffer1[i] = MA[i]*1.1;
welchen ich zuvor über
eingefügt habe oder seh ich das falsch?
interessanterweise den MA berechnet er noch richtig, zeichnet ihn richtig ein,
aber dann bei der weiterverarbeitung bekomme ich eben den Array out of range.
Muss ich die Range noch definieren? das wäre mir ja so noch nicht untergekommen
In der for-schleife darfst du rauf UND runter zählen. Ist simples standard C.
Hast du den buffer1 als IndicatorBuffer definiert? Nur dann wird er für dich verwaltet. INDICATOR_CALCULATION.
Und der Debugger ist da natürlich auch sehr hilfreich. Diese 'Array_out_of_range' Fehler können dir sogar den Tester abstürzen lassen.
Hier hab ich eine Frage, und zwar bekomme ich beim dekompilieren immer einen Error
viel einfacher kann ich einen Code ja eigentlich gar nicht machen, Periode ist übrigens als input Periode = x definiert
das funkt soweit, der Indi zeigt sogar was an
es verändern sich nur die Werte nicht, egal was ich für eine Periode nehme
und war schreit er in dieser Zeile
da gefällt ihm
nicht, was ich natürlich nicht versehe
die Idee dahinter ist, ich kumuliere nur Open + High auf
quasi sollte das dann aussehen
test 3 = (Open1+High1) / 2 + ........+ (openX + HighX)/2;
lassen wir die sinnhaftigkeit dahin, aber warum bekomme ich den Error.
Im Debugger sieht alles gut aus, da bekomme ich keinen Fehler
Edit: die Werte verändern sich schon, nur werden Sie mit zunehmender Periode kleiner statt größer
Amando, mach Dir mal mit dem Degugger klar wie Deine Schleifen laufen. Zugegeben das ist bei MQL5 ziemlich verwirrend!
Wenn das ein Indikator ist kannst Du ja im Debugger die Zeitpunkte und deren indices der verwendeten Preise anzeigen lassen: i, time[i], j, time[j], i+j, time{i+j] anzeigen lassen und dann überleg, welche Werte da wie berechnet werden.
Und vergiss nicht ganz oben im Debugger _LastError!
Amando, mach Dir mal mit dem Degugger klar wie Deine Schleifen laufen. Zugegeben das ist bei MQL5 ziemlich verwirrend!
Wenn das ein Indikator ist kannst Du ja im Debugger die Zeitpunkte und deren indices der verwendeten Preise anzeigen lassen: i, time[i], j, time[j], i+j, time{i+j] anzeigen lassen und dann überleg, welche Werte da wie berechnet werden.
Und vergiss nicht ganz oben im Debugger _LastError!
Es kann hilfreich sein auf kariertem Papier sich die 'Zellen' des Arrays vorzustellen oder aufzuzeichnen.
Das ist aber bei MQL4 ganz genauso, besonders bei verschachtelten Schleifen.
StartIndex und EndIndex der Schleifen vorher berechnen und diese zu überprüfen bringt's.
ResetLastError() wird überbewertet, da _LastError beim Auftreten eines Fehlers sowieso verändert wird.
Viele Funktionen (wie zB. CopyBuffer()) liefern im Fehlerfall WRONG_VALUE (-1).
Erst dann ist der Aufruf von GetLastError() sinnvoll.
Ist alles Info für amando, ich kann es aber oben nicht mehr einfügen.
Zu dem obigen Codefragment denke ich daß da in der Grundstruktur was nicht passt.
Ich vermute amando meint etwa das:
Da raucht dir schon mal die Birne beim Berechnen der Indizes ;)
Ich frag mich halt ob es sinnvoll ist Indikatoren neu zu erfinden.
Da gibt es ziemlich komplexe wie den Hull, Ozymandias oder Regressionskanäle(linear oder n-ter Ordnung).
Als Einsteiger schnallt man das nicht und es sind auch profunde mathematische Grundlagen erforderlich.
Ich beschränke mich darauf bestehende Indikatoren zu überarbeiten und meinen Wünschen anzupassen.
Das ist nicht so viel Aufwand und kann einen EA deutlich entlasten.
Da ist einer meiner Lieblinge. Ein Simpler MA, der aber Signalbuffer besitzt die der EA lesen kann.
Kannst vielleicht brauchen:
PS: Diesen Code kann man auch am Tablet lesen.
Es gibt für Android einen sehr guten Editor: DroidEdit (gratis Version reicht, ich hab's gekauft um den Ersteller zu unterstützen)
zuerst mal danke Otto, Du hast mich auf den richtigen hinweis gebracht
in der Aussenschleife muss ich zumindest die Periode abziehen, sonst gehen ihm nach hinten die Bars aus und das gibt den Fehler aus. Darum war auch im Debugger nie ein Problem, ich klicke mich ja keine 10000 Bars durch ;-9
jetzt mal eine einfache Frage,
gibts das auch als eine andere Funktion? würde das gerne mit dem Zeitframe anpassen
da steht zwar was mit Indicator High, gilt das für obere und untere Grenze?
im generellen ist das ja nur ein Hilfsmittel, ich würde ja viel lieber die Mitte definieren mit 0
danke
Diese Precompiler dirktiven sind für Indikatoren im Subwindow gedacht.
Vorsicht: definierst du
kann der Benutzer die Höhe des Subwindows nicht mehr verändern. Imho ein bug, der aber vom damaligen Servicedesk ignoriert wurde.
'gibts das auch als eine andere Funktion? würde das gerne mit dem Zeitframe anpassen'
Das versteh ich nicht was du meinst.
'da steht zwar was mit Indicator High, gilt das für obere und untere Grenze? '
Ohne diese Angaben stellt sich die Subwindowhöhe automatisch ein. Null ist dann irgendwo.
maximum und minimum auf den gleichen Wert setzen und level null definieren und du hast was du willst.
Diese Precompiler dirktiven sind für Indikatoren im Subwindow gedacht.
Vorsicht: definierst du
kann der Benutzer die Höhe des Subwindows nicht mehr verändern. Imho ein bug, der aber vom damaligen Servicedesk ignoriert wurde.
'gibts das auch als eine andere Funktion? würde das gerne mit dem Zeitframe anpassen'
Das versteh ich nicht was du meinst.
'da steht zwar was mit Indicator High, gilt das für obere und untere Grenze? '
Ohne diese Angaben stellt sich die Subwindowhöhe automatisch ein. Null ist dann irgendwo.
maximum und minimum auf den gleichen Wert setzen und level null definieren und du hast was du willst.
Das maximum und minimum kann ich aber nur über die #property einstellen oder?
in der OnInit kann ich diese soviel ich gesehen habe nicht indizieren