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
Dies ist auch korrekt, wenn "cnt" auf Null gesetzt wird, aber dann ist der Wert wieder unverständlich wie in Screenshot 3 (sollte ein Gewinnwert von 4,27 sein)
int cnt=0;
double LastProfit=0;
for(i=0;i<OrdersHistoryTotal();i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic) continue;
if ((op<0 || OrderType()==op) && cnt==0) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); cnt++;} else {cnt=0;}
}
return(LastProfit);
}
Es ist nicht gut, wenn ich nicht logisch denken kann(
Sehen Sie, auf dem realen Markt wird das Depot mit dieser Logik in 3 Tagen schmelzen.
Es ist schlimm, wenn man nicht logisch denkt(
Das ist richtig.
Der ausstehende Auftrag wurde gelöscht
Das ist richtig.
Der ausstehende Auftrag wurde gelöscht
OK, wie geben Sie dann ein Ticket der geschlossenen Aufträge zurück, die gleich OrderCloseTime() sind, und berechnen ihren Gewinn?
Zum Beispiel so:
OK, wie geben Sie dann ein Ticket der geschlossenen Aufträge zurück, die gleich OrderCloseTime() sind, und berechnen ihren Gewinn?
Etwa so:
Was ist, wenn sie an einer Haltestelle geschlossen wird?
ticket=OrderClose(......);
if(ticket>0){//увеличить размер массива на один и записать тикет закрытого ордера}
Was ist, wenn sie an einer Haltestelle geschlossen wird?
ticket=OrderClose(......);
if(ticket>0){//увеличить размер массива на один и записать тикет закрытого ордера}
Nun, welche Felder, welche Tickets, welche Aufträge?
Nach dem ersten Neustart des Terminals oder dem Herunterfahren über das Wochenende gehen einfach alle Daten verloren, und das ist das Ende aller Schreib- und Rechenvorgänge.
Als ich zum Beispiel für mich selbst ein System zum Zählen des kumulierten Drawdowns oder Gewinns schrieb, sah es so aus: Für jede Marktorder wird während der Eröffnung eine globale Variable mit dem Ticketnamen dieser Order erstellt, und wenn wir den Gewinn/Verlust neu berechnen wollen, überprüfen wir einfach die aktuelle Orderliste mit der Liste der globalen Variablen und führen die Berechnung durch, indem wir die überschüssigen Variablen löschen und den Gewinn direkt zum Ticket aus dem Namen hinzufügen.
Dies ist eine große Belastung für das System, in einem Indikator funktioniert es gut, aber in einem EA die Aufzählung von Dutzenden von globalen Variablen kann mit einem Hang des Terminals enden.
Es gibt eine Öffnungs- und Schließungszeit, man muss damit arbeiten, und es gibt keine Schwierigkeiten, sie zu bekommen, und mit einem einzigen Datensatz kann man alle Informationen über den Stand des Kontos bekommen, und man braucht kein Fahrrad.
Welche Arrays, welche Tickets, welche Aufträge?
Nach dem ersten Neustart des Terminals oder nach dem Herunterfahren am Wochenende gehen einfach alle Daten verloren, und das ist das Ende aller Schreib- und Rechenvorgänge.
es ist lösbar
Das brauche ich Ihnen nicht zu erklären.
Dies ist eine große Belastung für das System, in einem Indikator funktioniert es gut, aber in einem EA die Aufzählung von Dutzenden von globalen Variablen kann mit einem Hang des Terminals enden.
Es gibt Eröffnungs- und Schließungszeiten, damit muss man arbeiten, und es ist nicht schwer, sie zu bekommen, mit einem einzigen Datensatz kann man alle Informationen über den Stand des Kontos bekommen, und man braucht kein Fahrrad.