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
Sagen wir es mal so. Zeigen Sie uns den Code, der die Aufträge durchläuft, und erklären Sie uns, wie das geschehen soll. Erst dann können wir sagen, was richtig und was falsch ist. Allein die Namen der Funktionen helfen Ihnen nicht, dem Ergebnis näher zu kommen.
Hallo ... danke, dass Sie sich bereit erklärt haben, mir zu helfen ... Es schien ein kleines Unterfangen zu sein, um Aufträge abzuschließen, die einfach durch Hinzufügen des gewünschten Ereignisses zu dem entsprechenden Ordner erledigt werden konnten - es stellte sich heraus, dass es nicht so einfach war ... Hier ist ein Beispielcode, den ich ausMQL4 ReferenceTrading Functions entnommen habe:
intOrdersHistoryTotal();
// Abrufen von Informationen aus der Handelsgeschichteint i,accTotal=OrdersHistoryTotal();
for(i=0;i<accTotal;i++)
{
//---- Auswahlergebnis prüfen
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Fehler beim Zugriff auf die Verlaufsdatenbank (",GetLastError(),"));
Pause;
}
// Arbeiten mit einem Auftrag ...
}
... Die Funktion gibtdie Anzahl der geschlossenen und gelöschten Aufträge in der Historie des aktuellen Kontos zurück,das im Kundenterminal geladen ist. Die Größe der Verlaufsliste hängt von den aktuellen Einstellungen auf der Registerkarte "Kontoverlauf" des Terminals ab.
Wie diese durchsucht werden sollen und warum das nötig ist, ist mir nicht klar... Vielleicht ist es notwendig, sie auswendig zu lernen und sie zu verwerfen, damit sie nicht im Weg sind?
Wir sollen neu geschlossene Aufträge in dem Moment, in dem sie geschlossen werden, mit einem kurzen Piepton signalisieren. Alle Aufträge, die in meinem Client-Terminal geschlossen werden sollen, sind nur von zwei Typen: durchTrailStopLoss undTakeProfit-Mittelung. Beim Schließen einer Order (einer Gruppe von Orders), egal in welche Richtung (Verkauf oder Kauf), sollten sie nur durchStopLossoderTakeProfitgetrennt undan die entsprechendePlaySound-Funktiongesendet werden.
Hallo ... danke, dass Sie sich bereit erklärt haben, mir zu helfen ... Es schien ein kleines Unterfangen zu sein, um Aufträge abzuschließen, die einfach durch Hinzufügen des gewünschten Ereignisses zu dem entsprechenden Ordner erledigt werden konnten - es stellte sich heraus, dass es nicht so einfach war ... Hier ist ein Beispielcode, den ich ausMQL4 ReferenceTrading Functions entnommen habe:
intOrdersHistoryTotal();
// Abrufen von Informationen aus der Handelsgeschichteint i,accTotal=OrdersHistoryTotal();
for(i=0;i<accTotal;i++)
{
//---- Auswahlergebnis prüfen
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Fehler beim Zugriff auf die Verlaufsdatenbank (",GetLastError(),"));
Pause;
}
// Arbeiten mit einem Auftrag ...
}
... Die Funktion gibtdie Anzahl der geschlossenen und gelöschten Aufträge in der Historie des aktuellen Kontos zurück,das im Kundenterminal geladen ist. Die Größe der Verlaufsliste hängt von den aktuellen Einstellungen auf der Registerkarte "Kontoverlauf" des Terminals ab.
Wie diese durchsucht werden sollen und warum das nötig ist, ist mir nicht klar... Vielleicht ist es notwendig, sie auswendig zu lernen und sie zu verwerfen, damit sie nicht im Weg sind?
Wir sollen neu geschlossene Aufträge in dem Moment, in dem sie geschlossen werden, mit einem kurzen Piepton signalisieren. Alle Aufträge, die in meinem Client-Terminal geschlossen werden sollen, sind nur von zwei Typen: durchTrailStopLoss undTakeProfit-Mittelung. Beim Schließen einer Order (einer Gruppe von Orders), egal in welche Richtung (Verkauf oder Kauf), sollten sie nur durch denStopLoss- oderTakeProfit-Schließbefehlgetrenntund an die entsprechendePlaySound-Funktiongesendet werden.
Die Aufträge sind in umgekehrter Reihenfolge zu suchen, da 0 der allererste und accTotal-1 der letzte ist. In diesem Code ist nach "// work with order" der Kommentar zu beachten und zu prüfen, ob es einen abschließenden Kommentar für den SL oder TP gibt.
intOrdersHistoryTotal();
// Abrufen von Informationen aus der Handelsgeschichteint i,accTotal=OrdersHistoryTotal();
for(i=0;i<accTotal;i++)
{
//---- Auswahlergebnis prüfen
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Fehler beim Zugriff auf die Verlaufsdatenbank (",GetLastError(),"));
Pause;
}
// Arbeiten mit einem Auftrag ...
}
stringBestellkommentar();
Kommentar zur Zeichenkette;if(OrderSelect(10,SELECT_BY_TICKET)==false)
{
Print("OrderSelect() hat einen Fehler zurückgegeben",GetLastError());
zurück(0);
}
comment=OrderComment();
// ...
Danke für die Antwort ... Nach Hinzufügen des Codes der FunktionOrderComment(MQL4Trading FunctionsReference), die den Kommentar einer mit der Funktion OrdersHistoryTotal ausgewählten Order zurückgibt, sieht der Code wie folgt aus ... Und haben wir nicht eine Funktion, die neue abgeschlossene Aufträge in der Terminal-Historie verfolgt? "0 - allererste. accTotal-1 - letzte" - wir meinen "erste geschlossene" und "letzte geschlossene" in der Terminal-Historie, ist es nach Zeit ...? habe ich es richtig verstanden?
aber haben wir keine Funktion, um neue abgeschlossene Aufträge in der Terminal-Historie zu verfolgen?
Es gibt keine Standardlösungen.
string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
Es gibt keine Standardlösungen.
string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
Ich danke Ihnen ... Sie meinen die Funktion StringFind = Suche nach einem Teilstring in einer Zeichenkette.
);
Gibt die Positionsnummer in der Zeichenkette zurück, an der die zu suchende Teilzeichenkette beginnt, oder -1, wenn keine Teilzeichenkette gefunden wird.
... oderStringCompare Funktion -Vergleicht zwei Strings?...
Ich danke Ihnen ... Sie meinen die Funktion StringFind = Suche nach einem Teilstring in einer Zeichenkette.
);
Gibt die Positionsnummer in der Zeichenkette zurück, an der die zu suchende Teilzeichenkette beginnt, oder -1, wenn keine Teilzeichenkette gefunden wird.
...
Richtig.
Ich danke Ihnen ... sieht der Code dann wie folgt aus:
int i,accTotal=OrdersHistoryTotal();
int StringFind(string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
string string_value, // строка, в которой ищем
string match_substring, // что ищем
int start_pos=0 // с какой позиции начинать поиск
);
Ich danke Ihnen ... der Code hat dann die Form von:
int i,accTotal=OrdersHistoryTotal();
int StringFind(string comment;
for(i=accTotal-1;i>=0;i++)
{
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
comment = OrderComment();
// Проверяем, есть ли в комментарии признак закрытия ордера по ТП или СЛ
}
string string_value, // строка, в которой ищем
string match_substring, // что ищем
int start_pos=0 // с какой позиции начинать поиск
);
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Fragen von Anfängern
A1exPit, 2016.11.30 22:14
Können Sie mir sagen, OrderSelect von SELECT_BY_POS welche 0 Bestellung ist die letzte oder die erste? Ich versuche es in beide Richtungen und umgekehrt, aber die Fehlermodifikation #0 fliegt raus.