[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 610

 
ruslanchik:
Wie lautet die Berechnung vor a=5 oder a=10?
Nun, das Programm wird von oben nach unten durchlaufen. Zuerst 5, dann 10.
 
Solree:
Nun, das Programm wird von oben nach unten durchlaufen) Zuerst 5, dann 10.
Ich verstehe... werden die "offensichtlichen" Parameter durch die angegebenen Parameter ersetzt.
 
ruslanchik:
OK, danke... kurz gesagt werden die "expliziten" Parameter auf die angegebenen Parameter aktualisiert

Wenn Parameter per Referenz an eine Funktion übergeben werden, werden die Variablen, die an die Funktion übergeben werden, geändert.

Angenommen, Sie müssen mehr als einen Parameter aus einer Funktion zurückgeben. Übergeben Sie sie per Referenz an die Funktion. Die Variablen, die außerhalb der Funktion gesetzt werden - die Variablen, die Sie per Referenz an die Funktion übergeben haben - werden in der Funktion geändert.

Wenn Sie drei Variablen e, f und g haben und das Appersand in der Funktionsbeschreibung vor dem Variablennamen in den Parametern steht, werden die Variablen geändert, die Sie beim Aufruf der Funktion in die Parameter eingeben.


int func (int a , int &b , int &c ) {

a=10;
b=20;
c=30;
return(a);

}


Beim Aufruf einer Funktion:

int e=40 , f=50, g=60;

int d=func (e, f, g);

d wird gleich 10 sein (die Funktion gibt ein geändertes e zurück)

f wird gleich 20 sein

g wird gleich 30 sein

f und g werden hier per Referenz übergeben

 
artmedia70:

Wenn Parameter per Referenz an eine Funktion übergeben werden, werden die Variablen, die an die Funktion übergeben werden, geändert.

Angenommen, Sie müssen mehr als einen Parameter aus einer Funktion zurückgeben. Übergeben Sie sie per Referenz an die Funktion. Die Variablen, die außerhalb der Funktion gesetzt werden - die Variablen, die Sie per Referenz an die Funktion übergeben haben - werden in der Funktion geändert.

Wenn Sie drei Variablen e, f und g haben und das Appersand in der Funktionsbeschreibung vor dem Variablennamen in den Parametern steht, werden die Variablen geändert, die Sie beim Aufruf der Funktion in die Parameter eingeben.


int func (int a , int &b , int &c ) {

a=10;
b=20;
c=30;
return(a);

}


Beim Aufruf einer Funktion:

int e=40 , f=50, g=60;

int d=func (e, f, g);

d wird gleich 10 sein (die Funktion gibt das geänderte e zurück)

f wird gleich 20 sein

g wird gleich 30 sein

f und g sind hier als Referenz übergeben worden

Wo kann ich ein Helpup zu einem ähnlichen Thema bekommen ... mit Beispielen .... Ich habe mich hingesetzt, um etwas zu tun, aber mir wurde klar, dass ich kein System ohne Referenzen bauen kann .... Übrigens, auch die Hilfe von S.K. (Sergej Kowaljow) ist nicht sonderlich themenbezogen
 
ruslanchik:
Wo kann ich ein Helpup zu einem ähnlichen Thema bekommen ... mit Beispielen .... Ich habe mich hingesetzt, um etwas zu tun, aber mir wurde klar, dass ich kein System ohne Referenzen bauen kann ....
Übrigens,
das Selbsthilfebuch von S.K. enthält auch nicht viele Informationen

Schauen Sie genau in das DOCU - dort steht ALLES, Sie müssen nur lesen könnenhttps://docs.mql4.com/ru/basis/variables/formal
 
FAQ:

Schauen Sie sich das DOCU genau an - dort steht ALLES, man muss nur lesen könnenhttps://docs.mql4.com/ru/basis/variables/formal
und auf was genau soll ich mein Auge richten, wenn Sie es nicht selbst bemerkt haben..... "Erklären Sie bitte, wie man "Parameter per Referenz übergibt", die Inline-Hilfe gab nur Hinweise, wie man es benutzt, aber es ist nicht sehr einfach herauszufinden... ab Seite 609 "
 

Es ist möglich, Parameter per Referenz zu übergeben. In diesem Fall wirkt sich die Änderung solcher Parameter auf die entsprechenden Variablen in der aufgerufenen Funktion aus, die als Referenz übergeben wird. Sie können Elemente von Arrays nicht per Referenz übergeben. Parameter können nur innerhalb der Grenzen eines einzelnen Moduls per Referenz übergeben werden, für Bibliotheksfunktionen ist eine solche Möglichkeit nicht vorgesehen. Um anzugeben, dass ein Parameter als Referenz übergeben wird, muss der Modifikator & hinter dem Datentyp stehen.

Beispiel:

void func(int& x, double& y, double& z[]) { double calculated_tp; ... for(int i=0; i<OrdersTotal(); i++) { if(i==ArraySize(z)) break; if(OrderSelect(i)==false) break; z[i]=OrderOpenPrice(); } x=i; y=calculated_tp; }

Arrays können auch per Referenz übergeben werden, wobei alle Änderungen in das ursprüngliche Array übernommen werden. Im Gegensatz zu einfachen Parametern können Arrays in Bibliotheksfunktionen auch als Referenz übergeben werden.

Per Referenz übergebene Parameter können nicht mit Standardwerten initialisiert werden.

 
Guten Abend. Ich versuche, die Balken zu verstehen. Ich möchte ein Skript schreiben, um die täglichen Balken zu analysieren. Ich versuche, die Geschichte und die Prozentsätze zu analysieren. Ich möchte Statistiken nicht nur für die gesamte Historie, sondern auch für einen ausgewählten Zeitraum sammeln. Ich habe versucht, nach einem Skript zu suchen, aber es gibt zu viele davon. Ich möchte um einen Link zu einem solchen Skript bitten oder einen Rat geben, wie man mit Bars umgeht, da ich keine Erfahrung habe.
 
ChAnton:
Guten Abend. Ich versuche, die Balken zu verstehen. Ich möchte ein Skript schreiben, um die täglichen Balken zu analysieren. Ich versuche, den Prozentsatz der Balken des Tages zu analysieren. Ich möchte Statistiken nicht nur für die gesamte Historie, sondern auch für einen ausgewählten Zeitraum sammeln. Ich habe versucht, nach einem Skript zu suchen, aber es gibt zu viele davon. Ich bitte um einen Link zu einem solchen Skript oder um einen Rat, wie man mit Bars umgeht, da ich keine Erfahrung habe.
Haben Sie bereits Programmiererfahrung? Wenn Sie das nicht wissen, sollten Sie das Lehrbuch und die Dokumentation lesen (Links finden Sie oben auf der Seite) und die Grundlagen lernen... Mehr über Bars hier https://docs.mql4.com/ru/predefined/variables
 
Hallo, ich verstehe, dass OrderOpenTime() die Anzahl der seit 00:00 Uhr am 1. Januar 1970 verstrichenen Sekunden zurückgibt. Wie rechnet man sie in normale Zeit um?