[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 347
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
Hallo, ich habe eine Frage. Wie kann ich in den Code schreiben, dass eine Operation nur auf einem festen Fraktal ausgeführt wird?
Wenn das Fraktal fixiert ist, ist es ....
mein Fraktal
Ja, es ist kein Problem, auf diese Weise den passenden schwebenden Auftrag zu finden, wenn die Anzahl der schwebenden Aufträge in jeder Richtung gleich ist. Und wenn das anders ist, dann wird das nicht funktionieren, so wie ich es verstehe.
Bestimmen Sie dann die Tatsache der Auslösung eines schwebenden Auftrags und löschen Sie den am weitesten entfernten Gegenauftrag.
All dies wird nur für einen Sachverhalt und einen anhängigen Auftrag zu einem bestimmten Zeitpunkt durchgeführt. Es besteht keine Notwendigkeit, eine Anzahl von ausgelösten und gelöschten Dateien zu erstellen, wie Sie es versuchen. Sie werden die Tatsache der Umwandlung der schwebenden Aufträge auf einen Tick erkennen. Alle anderen Auslöser (falls es welche gibt) werden durch den nächsten Tick bestimmt.
berezhnuy wegen der Ausbreitung, die mehrere Male größer ist an den Wochenenden.
Liebe Programmierer, hier ist der Code zum Zählen von Kauf- und Verkaufsaufträgen, um nur einen Kauf- oder Verkaufsauftrag zu eröffnen:
int CountBuy()
{
int count = 0;
for(int trade = OrdersTotal()-1; trade >= 0; trade--)
{
OrderSelect(Handel, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == magic)
{
if(OrderType() == OP_BUY)
count++;
}
}
return(count)
}
//+------------------------------------------------------------------+
int CountSell()
{
int count = 0;
for(int trade = OrdersTotal()-1; trade >= 0; trade--)
{
OrderSelect(Handel, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == magic)
{
if(OrderType() == OP_SELL)
count++;
}
}
return(count);
}
Und alles scheint zu funktionieren, aber in meinem EA, gibt es Bedingungen zum Kauf und Verkauf auf einige Candlestick-Muster mit TP und SL. Aber wenn diese Bedingung erfüllt ist und der TP ausgelöst wird, dann bleiben bei der 0-Kerzenformation die Bedingungen für die Ordereröffnung weiterhin erfüllt und neue Orders werden eröffnet, was zu diesem Zeitpunkt nicht geschehen sollte. Könnten Sie uns bitte sagen, welchen Code wir verwenden müssen, um das weitere Öffnen von Aufträgen zu verhindern? Der EA selbst ist beigefügt.
Stellen Sie dann fest, ob es einen ausgelösten schwebenden Auftrag gibt, und löschen Sie den am weitesten entfernten.
All dies geschieht nur aus einem einzigen Grund und zu einem einzigen Zeitpunkt. Es besteht keine Notwendigkeit, eine Anzahl von ausgelösten und gelöschten Dateien zu erstellen, wie Sie es versuchen. Sie werden die Tatsache der Umwandlung der schwebenden Aufträge auf einen Tick erkennen. Alle anderen Auslöser (falls es welche gibt) werden durch den nächsten Tick bestimmt.
Und was, wenn es mehr als das pro Tick ist? Wenn der Abstand zwischen den Aufträgen sehr klein ist, kann mehr als ein Auftrag ausgelöst werden. Natürlich werden wir nicht in der Lage sein, die erforderlichen Maßnahmen rechtzeitig zu ergreifen.
Was ist, wenn mehr als eine Zecke vorbeikommt? Wenn der Abstand zwischen den Aufträgen sehr klein ist, kann mehr als ein Auftrag ausgelöst werden. Natürlich werden wir nicht in der Lage sein, die erforderlichen Maßnahmen rechtzeitig zu ergreifen.
Die Schleife über offene Positionen auf der Suche nach ausgelösten Aufträgen auf dem aktuellen Balken und die Löschung von Positionen in der gleichen Schleife.
Nun, diese Schleife wird wiederholt und alles wird wieder gelöscht. Ich habe auch eine Bedingung in der Variante, die ich im Moment habe:
D.h. es sollte so lange gelöscht werden, bisordersToDelete Null ist. Aber es zerstört alles. Es scheint elementar zu sein, aber es gibt auch Empörung. In einem wertlosen Tutorial ist von solchen Momenten überhaupt nichts zu sehen. Ich habe es auf beide Arten versucht und auf verschiedene Arten umgeschrieben, aber es hat nicht so funktioniert, wie ich es sollte.
Anders umgeschrieben:
Kim, auch auf der Suche nach dem gleichen Weg. Einen Auftrag mit einem Mindesteröffnungskurs gefunden, seine Position definiert und diesen Auftrag ausgewählt, sein Ticket definiert und ihn gelöscht. Sie wird aber nicht gelöscht.