[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 285
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
Vielleicht kann die Funktion https://www.mql5.com/ru/forum/107476/page21 helfen.
Funktion isCloseLastPosByTake().
Diese Funktion gibt ein Flag zurück, um die letzte Position auf dem Take zu schließen.
Flagge oben - Wahr - TakeProfit wurde ausgelöst.
Flagge gesenkt - Falsch - Position wurde aus einem anderen Grund geschlossen.
Die Funktion selbst sollte ganz am Ende des Codes platziert werden. Ich füge auch die Bedingung hinzu, zu verkaufen:
Ihnen allen einen guten Tag, Abend oder Morgen.
Ich habe alles so gemacht, wie ich es geschrieben habe. Ich habe die Funktion ganz am Ende des Codes eingefügt und sie den Verkaufsbedingungen hinzugefügt.
Ich habe gerade daran gedacht und es zum Kauf hinzugefügt. Die Aufträge werden nicht nur von BUY, sondern auch von SHELL geschlossen.
Ich habe die Funktion isCloseLasPosByTake() am Ende eingefügt.
Hier ist eine solche Torte, oder wie man sagt, ein Ölgemälde von Pfc Gotsman. helfen Sie dem Dummy aus.... wissen nichts.......
der Code selbst (d. h. nur der Anfang)
Ich habe in meinem Beitrag ausdrücklich geschrieben. Dass diese Funktion isCloseLastPosByTake() - ganz am Ende des Codes stehen muss, VOR der START FUNCTION!
Und wo haben Sie es hingelegt?
Und achten Sie mehr auf geschweifte Klammern in Kauf- und Verkaufsbedingungen. Dort fehlen sie eindeutig (prüfen Sie, ob die Anzahl der offenen Klammern gleich der Anzahl der geschlossenen Klammern ist). Hier wurde der Verkauf korrigiert:
Guten Tag!!!
Ich brauche Hilfe! Ich entschuldige mich dafür, dass ich nicht bescheiden bin.
Aber hier ist mein Problem, ich habe eine EA, die auf einem Martin basiert, es platziert die erste Bestellung SELL oder BUY, was auch immer ich will, aber ich möchte in der Lage sein, BUY oder SELL in EA Eigenschaften zu wählen. D.h. ich gebe z.B. BUY in die Eigenschaften ein und es wird eine BUY only Order eröffnet, oder das Gegenteil.
Ich fürchte, ich habe noch nicht gelernt, wie man in MQL4 programmiert.
Ich füge den Ratgeber selbst bei.
Vielen Dank im Voraus an diejenigen, die antworten werden!
Ich habe in meinem Beitrag ausdrücklich geschrieben. Dass diese Funktion isCloseLastPosByTake() - ganz am Ende des Codes stehen muss, VOR der START FUNCTION!
Und wo haben Sie es hingelegt?
Und achten Sie mehr auf geschweifte Klammern in Kauf- und Verkaufsbedingungen. Dort fehlen sie eindeutig (prüfen Sie, ob die Anzahl der offenen Klammern gleich der Anzahl der geschlossenen Klammern ist). Hier ist eine Lösung für den Verkauf:
Ich habe es nach dem Start fi, ich verstehe.....
Dann habe ich es falsch verstanden, danke für den Hinweis :-))
Wenn ich es richtig verstanden habe, sollte es nach } am Ende des Experten-Deinitialisierungsfunktionsblocks ??????? oder nach return(0); am Ende von start-??????? eingefügt werden.
Vielen Dank im Voraus für Ihre Geduld!!!!!!!!!
Ich habe sie nach der Startfunktion eingefügt, so dass ich verstehe.....
Ich habe es falsch verstanden, danke für den Hinweis :-))
Wenn ich es richtig verstanden habe, sollte es nach } am Ende des Experten-Deinitialisierungs-Funktionsblocks ??????? oder nach return(0); ganz am Ende von start-??????? eingefügt werden.
Vielen Dank im Voraus für Ihre Geduld!!!!!!!!!
Es muss im Freien aufgestellt werden. Nicht innerhalb einer Funktion, sondern als separate, unabhängige Funktion.
Zum Beispiel so:
Ich bin mir nicht sicher, ob der Expert Advisor unter diesen Bedingungen funktionieren wird. Denn die allererste Stelle wird sich nicht öffnen können...
Die Funktion isCloseLastPosByTake() sollte aus einer Kauf- oder Verkaufsbedingung entfernt werden.
Dann wird der Berater arbeiten.
Guten Tag!!!
Aber hier ist mein Problem, ich habe eine EA, die auf einem Martin basiert, es platziert die erste Bestellung SELL oder BUY, was auch immer ich will, aber ich möchte in der Lage sein, BUY oder SELL in EA Eigenschaften zu wählen. D.h. wenn ich z.B. BUY in die Eigenschaften eintrage, wird ein BUY only Auftrag geöffnet, oder umgekehrt.
Ich hänge den EA selbst an.
Vielen Dank im Voraus an alle, die uns antworten!
Es ist unwahrscheinlich, dass jemand darauf reagiert. Der EA ist dekompiliert (gehackt) und solche Dateien sind hier nicht willkommen...
D.h. der Standardbrowser
ShellExecute, sozusagen der "offene" Befehl.
Ich habe beschlossen, MQL 4 zu studieren, da alles, was ich gefunden habe, nicht meinen Erwartungen entspricht. Im Moment studiere ich , um zu verstehen, wie Profis arbeiten, und um es für meine Idee zu verbessern. Es gibt eine (einfache und kleine, einseitige) benutzerdefinierte Funktion, der Code ist beigefügt. Aufgrund meiner Laienhaftigkeit kann ich seit zwei Tagen nicht verstehen, was diese Funktion als Ergebnis zurückgibt und welche verschachtelte Bedingung das Else ist?
Möchte jemand einen Funken Wissen in meine Dumpfheit pflanzen?
Was ich verstehe, ist Folgendes:
Der Zweck der Funktion ist es, festzustellen, ob es bereits eine Bestellung für dieses Paar gibt, und wenn ja, deren Typ zu bestimmen.
Die Funktion, die diese Funktion aufgerufen hat, wartet auf das Vorhandensein eines der in der Prozedur ausgewählten Aufträge Schalter, Die Funktion sollte "1" zurückgeben, bei Vorhandensein von zwei Aufträgen - "2", und bei Fehlen von Aufträgen "-1".
Der Zyklus wird gestartet, wenn l_pos_16= 0. Nehmen wir an, wir haben insgesamt vier ausstehende Aufträge für einige Paare, einschließlich zwei bei dem Paar, bei dem der EA arbeitet, und sie sind nicht die ersten.
Bei der ersten Iteration der Schleife wird jedoch die Funktion if(OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES)) die Position mit der Nummer "0" in der Liste der Aufträge zu überprüfen, aber es gibt keine solche Position (weil ich verstehe, dass die Nummerierung von Position 1 ausgeht) und dann wird es zum nächsten übergehen. sonst mit vollständigem Ausstieg aus fCountOrders(int &a_count_0, int &a_count_4, int &a_count_8, int &a_count_12) mit Rückgabe des Wertes Rückgabe(-1).
Der Sinn der Funktion als Ganzes geht verloren, da das Ergebnis unabhängig vom Vorhandensein oder Nichtvorhandensein von Aufträgen auf dem gegebenen Symbol das gleiche sein sollte.
Wenn der EA jedoch funktioniert, definiert diese Funktion das, was die aufgerufene Funktion von ihr erwartet, die dann in Abhängigkeit von dem erhaltenen Ergebnis arbeitet .
Ich verstehe auch nicht, was sonst Return(-1) wird funktionieren in
if (OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES)) {
Oder gleich in if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_N) {
Der Code der Funktion :
int fCountOrders(int &a_count_0, int &a_count_4, int &a_count_8, int &a_count_12)
a_count_0= 0;
a_count_4 = 0;
a_count_8 = 0;
a_count_12 = 0;
gi_252 = 0;
for (int l_pos_16 = 0; l_pos_16 < OrdersTotal(); l_pos_16++) {
if (OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_N) {
switch (OrderType()) case OP_BUY:
a_count_0++;
gi_252 = 1;
g_ticket_268 = OrderTicket();
gs_272 = Bestellkommentar();
g_ord_open_price_256 = OrderOpenPrice();
g_ord_stoploss_288 = OrderStopLoss();
g_ord_takeprofit_296 = OrderTakeProfit();
Pause;
Fall OP_SELL:
a_count_4++;
gi_252 = -1;
g_ticket_268 = OrderTicket();
gs_272 = Bestellkommentar();
g_ord_open_price_256 = OrderOpenPrice();
g_ord_stoploss_288 = OrderStopLoss();
g_ord_takeprofit_296 = OrderTakeProfit();
Pause;
Fall OP_BUYSTOP:
a_count_8++;
Pause;
Fall OP_SELLSTOP:
a_count_12++;
}
}
} else return (-1);
}
return (a_count_0 + a_count_4 + a_count_8 + a_count_12);
/* Bei normaler Ausführung von f-i wird in der Variablen in einem der folgenden Fälle eine Eins zurückgegeben Fall und "0" in allen anderen, was anzeigt, dass es eine der folgenden Möglichkeiten gibt
der Auftragsarten, und die Nummer dieses Auftrags ist für die aufrufende Funktion verfügbar,
Kommentar, Eröffnungskurs, Stop Loss und Take Profit */
}