[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 497
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
Code in den EA einbetten, ich hatte etwas Ähnliches, bis ich es gelöscht habe, ich benutzte einen stündlichen Zeitrahmen
orderselect - wählt den letzten Auftrag in der Historie aus
den Zeitpunkt der Schließung nehmen und die Sperrstunde herausziehen
und setzen Sie vor dem Öffnen des Auftrags eine Bedingung, dass die aktuelle Stunde NICHT gleich dem Zeitpunkt des Auftragsschlusses aus der Historie ist
Bitte helfen Sie mir bei diesem Problem, meine TP-Variable wird nach der zweiten Preisaktualisierung zu Null, d.h., der Advisor öffnet eine Order, und TP und Bid sind beide nicht gleich Null, dann wird der Preis wieder aktualisiert und TP ist Null, obwohl dies nicht im Code ist, ich hatte ein Problem mit dem Hochziehen von SL, aber jetzt stellt sich heraus, dass das Problem in der Definition von TP liegt
int start()
{
//----
double TP;
double SL;
if (OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Bid+4*Point);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
TP=OrderTakeProfit();
}
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
if (OrdersTotal()>0)
{
if (TP-Bid<3*Point)
{
Alert ("Approaching TP by 1 or 2");
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
}
}
//----
return(0);
}
Bitte helfen Sie mir mit diesem Problem, meine TP-Variable ist Null nach dem zweiten Preis Update, d.h., der EA öffnet eine Bestellung und zeigt Werte von TP und Bid, beide sind nicht gleich Null, dann wird der Preis wieder aktualisiert und TP ist Null, obwohl in den Code, keine solche Befehle, ich hatte ein Problem mit Ziehen SL nach oben, aber jetzt stellt sich heraus, dass das Problem in der Definition von TP ist
double TP, SL;
int start()
{
//----
if (OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Bid+4*Point);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
TP=OrderTakeProfit();
}
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
if (OrdersTotal()>0)
{
if (TP-Bid<3*Point)
{
Alert ("Приблизился к ТП на 1 или 2");
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
}
}
//----
return(0);
}
Bitte teilen Sie uns mit, wie man eine Order nur einmal auf einem neuen Balken eröffnet ????
Lesen Sie hier: https://www.mql5.com/ru/forum/134437
Hallo zusammen!
In der Strategie gibt es zwei Signale: ein primäres und ein sekundäres. Ein Handel wird eröffnet, wenn das zweite Signal nicht später als 12 Stunden erscheint. Frage: Wie kann ich meinem Expert Advisor beibringen, nicht auf das Signal zu reagieren, wenn es nach 12 Stunden erscheint? Wenn Sie bitte ein konkretes Codebeispiel nennen können
Hallo zusammen!
In der Strategie gibt es zwei Signale: ein primäres und ein sekundäres. Ein Handel wird eröffnet, wenn das zweite Signal spätestens 12 Stunden später erscheint. Frage: Wie kann ich meinem Expert Advisor beibringen, nicht auf das Signal zu reagieren, wenn es nach 12 Stunden erscheint? Wenn Sie mir bitte ein Beispiel für den Code geben können
Hallo Dmitri. Ich für meinen Teil bin bereit, Ihnen die folgende Variante anzubieten. Für eine Analogie, siehe die Auslösung der Handelskriterien dieses Artikels - es gibt auch zwei Signale - nämlich - siehe nach der zweiten Abbildung "Das erste, was man auf dem DeMarker-Chart abwarten sollte, ist der Moment, wenn der DeMarker die schnellen und langsamen MA-Linien um 0,7 für eine Short-Position kreuzt. Dies ist das erste vorläufige Signal. Dann warten wir auf die Überquerung der MA-Linien selbst. Dies ist das Hauptsignal, nach dem die Taichi-Anzeige abgelesen werden kann. Wenn die MA-Linien nicht gekreuzt werden, gilt dies als falsches Signal und die Preisbewegung wird fortgesetzt. So ist es in meinem Code implementiert - in der Einbeziehung von Eulen, die für die Auslösung von Handelskriterien verantwortlich sind.
Der Haupttrick besteht darin, die beiden unter (am Ende) des Einschlusses zu bearbeiten, indem man Flaggen setzt und zurücksetzt, wenn das eine oder andere Handelskriterium ausgelöst wird.
Sie speichern zusätzlich die aktuelle Zeit, wenn das Hauptkriterium mit TimeCurrent ausgelöst wird, d.h. Sie geben einen Ausdruck vom Typ x = TimeCurrent vorreturn(OP_BUY); oderreturn(OP_SELL); an, wobei x analog zur erstenint_op_DeMarker-Funktion eine globale Variable vom Typ datetime ist. Dann machen Sie dasselbe mit der zweitenint type_op_MA Funktion... - dort speichern Sie die Variable y = TimeCurrent;
Dann vergleichen Sie den Wert dieser beiden Variablen mit dem Pluszeichen im Block der Handelskriterienberechnung (es stellt sich heraus, dass Sie nicht analog mit UTC-Werten arbeiten müssen - stattdessen nehmen Sie einen Vergleich der Empfangszeit Ihrer beiden Handelssignale):
P.S. Außerdem sende ich Ihnen eine Funktion, mit der Sie den Wert der Arbeits-TF optimieren können.
P.P.S. So ist diese Codestruktur in meinem Code organisiert. Ich schließe nicht aus, dass es wesentlich bessere Code-Varianten gibt, um solche Bedingungen des EA zu erfüllen. :-)))
Wie berechne ich in meinem EA einen Gewinn für ein Währungspaar?
Ich habe z. B. sieben Kaufaufträge für den Euro zu unterschiedlichen Kursen offen. Wie berechne ich einen Gewinn für den Euro, ohne andere Aufträge für andere Paare zu beeinträchtigen? ????
SelectOrder verwenden, um alle offenen Aufträge zu scannen
das gewünschte Paar prüfen (OrderSymbol)
dann fügen Sie den Gewinn zu einer beliebigen Variablen hinzu, wenn es sich um den erforderlichen OrderProfit handelt
Hier ist ein Link mit nützlichen Funktionen https://docs.mql4.com/ru/trading/OrderSelect
Auf der linken Seite befindet sich ein Menü mit den Operationen, die dort beschrieben sind