[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 69
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ich sitze hier und weiß nicht so recht, wie ich den Algorithmus umsetzen soll.
Vielleicht kann jemand helfen.
1. den Anfang des Tages finden (ich habe das getan)
2. Finden Sie das Maximum des Tages (das habe ich getan)
3. Ich brauche, um herauszufinden, die Bars, die das erste Fraktal nach dem MA Kreuzung von oben nach unten nach diesem Maximum folgen würde.
Ich füge die Abbildung bei.
Anstelle von iRSI sollte es iCCI heißen.
YEPRST...... es ist völlig außer Sichtweite..... danke, wir werden es reparieren
Ich sitze hier und weiß nicht so recht, wie ich den Algorithmus umsetzen soll.
Vielleicht kann jemand helfen.
3) Sie müssen die Balken berechnen, die dem ersten Fraktal folgen , nachdem sie den MA nach diesem Maximum von oben nach unten gekreuzt haben."Berechne die Balken, die folgen werden..."
Schreiben Sie einfach: "Ich möchte wissen, wohin der Preis geht, nachdem ich den Computer eingeschaltet habe..." :-)))))
"Berechne die Balken, die folgen werden..."
Schreiben Sie einfach: "Ich möchte wissen, wohin der Preis geht, nachdem ich den Computer eingeschaltet habe..." :-)))))
Du verstehst es nicht.
Diese Balken befinden sich bereits im Diagramm. oder sagen wir, es ist der aktuelle Balken. Und wenn sie den Bedingungen entspricht, ist es die Bar, die Sie suchen.
Das ist das Wichtigste.
Und zweitens, warum sollten Sie sich die Mühe machen, wenn Sie nicht verstehen, worüber wir reden?
Versuchen Sie dies
OrderSelect(1, SELECT_BY_POS)
if(OrderOpenTime()!=0)
{
///необходимая операция
}
Dies ist jedoch nur möglich, wenn Sie nur 1 Auftrag haben!
Wir prüfen also nur, ob der Auftrag noch nicht abgeschlossen ist?
Die Idee ist folgende: Zusammen mit dem Stop einer Order, zum Beispiel beim Kauf, werden drei Pending Orders gesetzt
Ich möchte eine Bedingung, dass einer dieser 3 ausstehenden Aufträge zu einem normalen "Arbeitsauftrag" wird
die Sie nicht verstehen.
Diese Balken befinden sich bereits im Diagramm. oder sagen wir, dies ist der aktuelle Balken. Und wenn sie die Bedingungen erfüllt, ist es die Bar, die Sie suchen.
Das ist das Wichtigste.
Und zweitens, warum vergeuden Sie Ihre Zeit, wenn Sie nicht verstehen, worüber wir reden?
"Berechnen Sie die Balken, die dem ersten Fraktal nach dem Re... "Es bedeutet, dass sie ihm folgen werden, nicht, dass sie "bereits in der Karte existieren"...
Aber wenn "Und wenn es die Bedingungen erfüllt - es ist die Bar, die Sie suchen" - das ist eine andere Sache. Beschreiben Sie die "Bedingungen", jemand wird Ihnen helfen.
Ich entschuldige mich für die Überschwemmung, es ist mir einfach herausgerutscht.
"Berechne die Balken, die auf das erste Fraktal nach dem Re... " Wenn sie folgen, bedeutet das, dass sie es tun werden, und nicht, dass sie "bereits auf der Karte" sind...
Aber wenn "Und wenn es die Bedingungen erfüllt - es ist die Bar, die Sie suchen" - das ist eine andere Sache. Beschreiben Sie "Bedingungen", jemand wird Ihnen helfen.
Entschuldigung für die Überschwemmung, es ist mir einfach entfallen.
Oooh, genau so habe ich es geschrieben.
Ich werde nicht darauf abzielen, ich weiß nicht, was zu finden, ohne zu wissen, wo oder wie.
Ich interessiere mich für bestimmte Bars, die bereits existieren. Genauer gesagt: ihre Schicht.
Übrigens, ich habe es bereits umgesetzt, es stellt sich heraus, dass es nicht so schwer ist :)
Wir prüfen also nur, ob der Auftrag noch nicht abgeschlossen ist?
Die Idee ist folgende: Wenn Sie einen Auftrag stoppen, zum Beispiel beim Kauf, werden drei schwebende Aufträge gesetzt
Ich möchte eine Bedingung, dass einer dieser 3 ausstehenden Aufträge zu einem normalen "Arbeitsauftrag" wird.
Sie haben also 3 schwebende Aufträge, und wenn mindestens 1 ausgelöst wurde, wird eine Bedingung festgelegt?
Wenn ja, dann sieht es folgendermaßen aus
for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера
{
OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0) ///время не равно 0 значит отложка сработала(или как писал Roger if(OrderType()<2) )
{
///необходимая операция
}
}
oder haben Sie 1 offenen Auftrag + 3 schwebende Aufträge?
dann können Sie es auf diese Weise versuchen
//в глобальных переменных
int tick[3];
//в функции start
//cначало записываем номера тикетов отложек в переменные
for(int cnt=0;cnt<OrdersTotal();cnt++) // последовательно проверяем все ордера
{
OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0)
{
tick[cnt]=OrderTicket();
}
}
//а далее проверяем выполнился ли отложенный ордер
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0)
{
for(int cnt2=0;cnt2<3;cnt++)
if(tick[cnt]==OrderTicket())
{
//необходимое условие
}
}
в глоб перем
int mag=12345;
в ф start
/// При открытии отложки укажите ему в качестве магика mag
///ну а далее идет поиск "бывшей" отложки по Magic
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS)
if(OrderOpenTime()!=0&&OrderMagic()==Mag)
{
///необходимая операция
}
}
Ich habe den Code nicht auf mögliche Fehler überprüft!
Welche Reihenfolge gibt die Funktion OrderSelect(0,SELECT_BY_POS) zurück? Welches ist zuerst geöffnet worden? Können Aufträge nicht getauscht werden? (Ich verwende keine schwebenden Aufträge)
Richtig, welche ist die früheste. Dies ist praktisch, wenn Sie sicher wissen, dass Sie im Prinzip nur einen Auftrag offen haben können, und Sie können ein Überschießen vermeiden. Die Aufträge werden nicht vertauscht, sondern auf den kleinsten Auftrag verschoben, wenn der frühere abgeschlossen ist.