verstehe diesen Code nicht so ganz
Könnte mir bitte jemand helfen, diesen Code zu "übersetzen", es hakt da am Verständnis bei mir.
Code:
//global: Die Logik dahinter kapiere ich einfach nicht. Kann jemand mir helfen? Danke. AVT |
Is klar, den kann man auch nicht verstehen, wenn nicht der Rest des Codes geliefert wird.
In welcher Funktion steht returnBars = (TimeFrame=="returnBars"); if(returnBars) return(0); calculateValue = (TimeFrame=="calculateValue"); if(calculateValue) return(0); timeFrame = stringToTimeFrame(TimeFrame); "returnBars" bzw. "calculateValue" werden sicher nicht der Variablen TimeFrame zugewiesen. Im Endeffekt soll aus der Funktion stringToTimeFrame() das Ergebnis generiert werden, das größerer oder das aktuelle TimeFrame zurückzugeben. Nein, mit diesem Schnipsel kann man nix anfangen. traderdoc |
Zitat:
Ich dachte, das wäre aus der Code-Kopie ersichtlich: das sind die ersten Zeilen in der "int init()" Funktion, mit anderen Worten, so beginnt das, was wir jetzt als Anfang der Funktion "int OnInit()" setzen würden - davor stehen nur interne, globale Variablen. Danach wird im ganzen Code nur noch mit den returnBars, calculateValue und timeFrame rumhantiert, darum will/muß ich verstehen, was diese ersten Zeilen in init() eigentlich sollen :confused: (Daß die stringToTimeFrame Funktion solche Angaben wie "M1" in die dazughörige Minuteneinheit umwandelt, ist mir schon klar.) Also um mal anzufangen: returnBars = (TimeFrame=="returnBars"); heißt, die bool Variable "returnBars" ist true, wenn die (extern string) TimeFrame "returnBars" lautet und false wenn sie anders lautet. Und wenn sie true ist, dann wird init() als Erfolg beendet ?? (wenn ich mich recht erinnere, hieß return(0), bei init() alles ok). So jedenfalls meine Lesart - und die daraus resultierenden Probleme. Ich hoffe, das ist jetzt klarer. AVT |
Ja und was hat nun "returnBars" und "calculateValue" mit der Sinnhaftigkeit des Namens der Variablen TimeFrame zu tun?
Womit beschäftigst Du Dich denn? Ich bin raus hier. traderdoc |
Zitat:
Code:
int i,r,counted_bars=IndicatorCounted(); Code:
int getLimit(int limit,string tsymbol) Aber ich kann verstehen, daß Du raus bist. Ich bin es ehrlich gesagt auch - ist wohl mal wieder so eine Art Code so zu verkomplizieren, daß keiner weiß, was gemeint ist. Also entweder ich schreib das Ding von Grund auf neu oder ich klopp es in die Tonne - macht keinen Sinn mit etwas zu arbeiten, was man nicht versteht. Danke für Deine Mühe. :) AVT |
Der Schlüssel scheint zu sein, dass TimeFrame extern ist und daher irgendein String dort drin stehen kann.
Dieser String kann z.B. lauten "M1", 1 , "returnBars" oder "calculateValue" und setzt je nach diesem Wert dann die Periode, die von der aktuellen abweichen kann und mit der dann wohl gerechnet wird. return(0); wird vermutlich benutzt um zu bestimmen, dass ein Wert für die Periode ermittelt werden konnte. Das folgende bedeutet also, steht "returnBars" extern in TimeFrame, also true, dann konnte eine Periode ermittelt werden und springe raus mit return (0), da hier nichts mehr zu tun ist: returnBars = (TimeFrame=="returnBars"); if(returnBars) return(0); "Current time frame" halte ich für einen Wert ohne Bedeutung für die Programmlogik. |
Zitat:
Ehrlich gesagt halte ich den ganzen Code für ziemlich daneben; wenn ich mal Zeit habe, werde ich den vielleicht noch mal ansehen - aber wie schon gesagt, ist wohl eher was für die Tonne (ich hab eigentlich genug bessere Indis). AVT |
Alle Zeitangaben in WEZ +2. Es ist jetzt 01:51 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum