[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 305

 

Hallo!

Ich beginne mit einem einfachen Beispiel, da sonst schwer zu erklären ist.

double result()

{

double x = Bid;

return(x);

}

double result_y()

{

double y = Bid;

zurück(y);

}

Sie muss zu einer einzigen zusammengefasst werden.

Das Ergebnis() wird dann als X in der einen Funktion und als Y in der anderen benötigt . Ist das möglich? Wie kann man das tun?

double result() // ????

{

double x = Bid;

double y = Ask; // auch dies muss zurückgegeben werden

return(x);

return(y); // ?

}

 

Nein, es kann nur ein Ergebnis geben. Übergeben Sie die Werte per Referenz:

double _bid = 0, _ask = 0;

Print(_bid,":",_ask);

ResFunction(_bid,_ask);

Print(_bid,":",_ask);


void ResFunction(double &x, double &y){
   x = Bid;
   y = Ask;
   return;
}
 
abeiks:

Hallo!

Ich werde mit einem einfachen Beispiel beginnen, da sonst schwer zu erklären ist.

Da in beiden Fällen derselbe Wert von Ihren Unterprogrammen zurückgegeben wird - der Preis Bid -, kann eine dieser beiden Funktionen aus dem Code gestrichen werden. Wenn die zurückgegebenen Werte unterschiedlich sind, können Sie sie z. B. zu einer Zeichenkette zusammensetzen - geben Sie aus dem Unterprogramm diese beiden Werte zurück, getrennt durch ein Trennzeichen, z. B. ein Semikolon. Und geben Sie sie als Zeichenkette zurück. Dann extrahieren Sie im Hauptcode 2 Werte aus der Zeichenkette und wandeln sie in Double um.
 

Senden Sie etwas an das Unterprogramm, damit es verstehen kann, was benötigt wird.

 
abeiks:

Hallo!

...

Hallo! Da bereits andere auf Ihre Frage geantwortet haben, möchte ich Sie fragen: Sind Sie der Champion 2008 ?

Wenn ja, würden Sie uns von Ihrem GRAAL erzählen, ohne alle "Geheimnisse der Madrider Werft" zu verraten und ohne "alle Geschichten aus dem Wienerwald" zu erzählen. Nur den Schleier ein wenig lüften... Sie können - in dieser Branche, da bin ich mir sicher, werden die Leute es nützlich finden!

Ich bereite mich selbst aktiv auf das Turnier vor...

Ich danke Ihnen!

 
drknn:

Bitte sagen Sie mir, warum man eine Variable auf Null zurücksetzt, wenn eine Funktion deklariert wird? Es ist genau hier:


Ist dies, wie Sie es auf den Standardwert setzen, wenn Sie es nicht explizit festlegen, wenn Sie es aufrufen, oder bin ich falsch?
 
Skydiver:

So ist dies, wie es auf den Standardwert für den Fall, dass es nicht explizit festgelegt ist, wenn aufgerufen, oder bin ich falsch?


Ich weiß es nicht. Aber ich bin interessiert. Ich werde es mir ansehen.

P.S.

Es funktioniert!

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start(){
  Alert("func1(100) вернула значение = ",func1(100),"  func1() вернула значение = ",func1());
  return(0);
}
//+------------------------------------------------------------------+
int func1(int i=25){
        return(i);
}

 
Skydiver:
Versuchen Sie, jeden Wert bei jeder Iteration der Schleife vorzudrucken. Die Größe Ihres Arrays ist klein, so dass es nicht zu einem Datenwirrwarr kommt.
 

Wie kann ich die Differenz zwischen offenen Aufträgen desselben Vorzeichens auf 1 Takt festlegen?

 
GarKain:

Wie kann ich erreichen, dass die Differenz zwischen Eröffnungsaufträgen mit demselben Vorzeichen 1 Takt beträgt?


Wir müssen den Zeitpunkt der Eröffnung einer Position mit dem Zeitpunkt der Eröffnung des aktuellen Balkens vergleichen Time[0]. Wenn der Zeitpunkt der Positionseröffnung größer oder gleich dem Zeitpunkt der Balkeneröffnung ist, wird der Expert Advisor keine neue Position eröffnen. Wenn ein neuer Balken erscheint, ändert Time[0] seinen Wert auf eine spätere Zeit, und dieser Vergleich zeigt, dass die Position auf dem aktuellen (neuen) Balken noch nicht eröffnet wurde und wir handeln können.

Ihre Frage kann übrigens auch in 2 Teilfragen zerlegt werden:
1. Beim aktuellen Balken wurde eine Position eröffnet und geschlossen, aber wir warten noch auf einen neuen Balken.
2. Eine Position wurde auf dem aktuellen Balken eröffnet und konnte geschlossen werden, so dass wir auf demselben Balken erneut eine Position eröffnen können (d.h. wir können auf demselben Balken gleichzeitig 1 Position eröffnen).

Grund der Beschwerde: