[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 617
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
rigonich
Ich könnte Ihnen Punkt für Punkt auf jedes Ihrer Worte antworten, aber ich sehe keinen Sinn mehr darin. Wenn jemand stur ist, hat es keinen Sinn, etwas zu erklären. Die Frage war, wie man sich organisieren sollte. Als Sie dann den Hinweis gaben, dass globale Variablen besser sind als das Schreiben in eine Datei, kam die Frage auf, wie man es richtig macht. Dann gab Ihr nervöser Mitunterzeichner einen Code ein, wobei er keine Gelegenheit ausließ, einen Witz zu machen. Es ist ganz einfach: Ein Teil des Codes geht in den Initialisierungsblock, ein Teil des Blocks geht in den Haupt-EA-Block.
Dies ist der Inhalt des Initialisierungsblocks:
Dies ist der Inhalt des Hauptblocks
Wie Sie sehen können, habe ich die Variablen umbenannt.
Also fügte ich nacheinander den zweiten Teil des Codes ein, beginnend unmittelbar nach der Variablenberechnung und bis zum Ende des Startblocks, wobei ich versuchte, ihn vor der letzten geschweiften Klammer einzufügen.
Nach Ihrer hochprofessionellen Erklärung zu urteilen, hätte ich genau das tun sollen, denn es ist für jeden Anfänger klar. Ihrer Meinung nach sollte es funktionieren. Aber das ist nicht der Fall. Das ist das Beste, was ich bisher erreicht habe:
{Lesen Sie sorgfältig. Diese beiden Blöcke werden als Funktionsbeschreibungen bezeichnet und können nicht innerhalb anderer Funktionsbeschreibungen platziert werden. In der Init sollte platziert werden
fGet_MineGV();
}
und in start ein ähnlicher Aufruf der zweiten Funktion. Die Funktionen selbst müssen separat in Ihrem EA platziert werden, weder in init noch in start in einer eigenen Funktion.
UndIhr nervöser Mitunterzeichner hat Ihnen nicht einen Teil des Codes gegeben, sondern zwei fertige Funktionen, die er für Sie geschrieben hat.
Sind solche Ketten erlaubt?
if ( (A==1 && B==2) && (C==2 || D==3) && E==4)
d.h. sowohl AND als auch OR in einer Zeile?
Ja, alles, was in Klammern steht, wird vom Compiler als separater Vergleich behandelt.
Schreiben Sie es selbst - es gibt 1 einzige Schleife. Versuchen Sie einfach, es zu tun. Und wenn Sie scheitern, zeigen Sie uns den Code Ihrer Schleife - wir werden Ihnen helfen.
Ich habe ein Problem mit Zyklen.
Ich habe den Anfang schon oft gesehen...
als nächstes ist es neblig....
for (i=0; i<k; i++) {
wenn(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)
Ich kann höchstens verstehen, dass jedem i etwas zugeordnet ist...
Aber was soll man mit dieser Mischung aus "i" machen... Ich habe keine Ahnung...
rigonich
Nun, das ergibt endlich einen Sinn. Die kurzen Zeichenfolgen in geschweiften Klammern sind also Funktionsaufrufe, und die Funktionen selbst müssen irgendwo untergebracht werden.
Nun der Reihe nach.
Ich füge einen Aufruf der ersten Funktion zu den init, ich tue es sofort nach dem Start der init-Funktion, d.h. einfach so, wird es richtig sein, oder?
int init() { fGet_MineGV(); } //... и далее мой код, который был ранее
In ähnlicher Weise füge ich den Aufruf der zweiten Funktion in den Startblock ein. Wäre es korrekt, wenn ich dies unmittelbar nach der Berechnung der Variablen tue? Zum Beispiel so:
Sind diese ersten 2 Schritte korrekt?
Nun, ich habe ihm dafür sofort gedankt.Wie kann ich aus einer if-Reihe aussteigen, wenn die Bedingung if=true ist?
wenn
wenn
if (TRUE) - aber von vorne anfangen müssen und nicht weitergehen
wenn
wenn
.......
konnte die richtige Funktion in der Bibliothek nicht finden
Die Gewinngröße der zuletzt geschlossenen Position.
Vielleicht hat jemand eine?
Die Take-Profit-Größe in der Einzahlungswährung wird von OrderProfit() zurückgegeben, in Pips - Schlusskurs minus Eröffnungskurs, und wie man die letzte geschlossene Position findet oder wo man eine fertige Funktion dafür bekommt, wurde Ihnen, glaube ich, schon mehrmals erklärt.
Wie kann ich aus einer if-Reihe aussteigen, wenn die Bedingung if=true ist?
wenn
wenn
if (TRUE) - aber von vorne anfangen müssen und nicht weitergehen
wenn
wenn
.......
wenn
wenn
if (TRUE) - aber Sie müssen wieder von vorne anfangen und können nicht weiter nach oben gehen
sonst {
wenn
wenn
.......
}//if (TRUE) - aber wir müssen wieder von vorne anfangen und dürfen nicht weiter nach oben gehen
In etwa 99,9 % der Fälle bedeutet dies, dass Sie sich nicht genügend Gedanken über die Implementierung des Algorithmus gemacht haben.
wenn
wenn
if (TRUE) - aber Sie müssen wieder von vorne anfangen und können nicht weiter nach oben gehen
sonst {
wenn
wenn
.......
}//if (TRUE) - aber wir müssen wieder von vorne anfangen und dürfen nicht weiter nach oben gehen
In etwa 99,9 % der Fälle bedeutet dies, dass Sie die Implementierung des Algorithmus nicht ausreichend durchdacht haben.
:))) scheint bereits eine Lösung gefunden zu haben
return (0) - und wunderbar kommt alles heraus, wenn
wenn
wenn
if (TRUE) - aber Sie müssen wieder von vorne anfangen und können nicht weiter nach oben gehen
sonst {
wenn
wenn
.......
}//if (TRUE) - aber wir müssen wieder von vorne anfangen und dürfen nicht weiter nach oben gehen
In etwa 99,9 % der Fälle bedeutet dies, dass Sie sich nicht genügend Gedanken über die Implementierung des Algorithmus gemacht haben.
Die Take-Profit-Größe in der Einzahlungswährung wird von der Funktion OrderProfit() zurückgegeben, in Punkten - Schlusskurs minus Eröffnungskurs. Ich glaube, es wurde Ihnen schon mehrmals erklärt, wie man die letzte geschlossene Position findet oder wo man eine fertige Funktion dafür bekommt.
Ganz genau. Sie müssen zuerst das Ticket der letzten geschlossenen Position GetTicketLastPos nehmen und dann die Standardfunktionen verwenden, um aus diesem Ticket zu entnehmen, was Sie benötigen.
Ich danke Ihnen.