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
Danke für die Antwort ... Um also Aufträge in der Handelshistorie zu suchen, verwenden wir die FunktionOrdersHistoryTotal, die, nachdem wir alles Unnötige verworfen haben, wie folgt aussieht
for(int i=OrdersHistoryTotal()-1; i>=0; i--) // - hier stellt sich die Frage, was "accTotal" in der Funktionsvorlage bedeutet, die wir verworfen haben, und warum haben Sie "i--" und nicht "i++" wie in der Vorlagegenommen?
- die zweite FunktionOrderComment gibt den Kommentar der ausgewählten Bestellung zurück, wenn diese durch die vorherige FunktionOrdersHistoryTotal ausgewählt wurde, und hat die Form
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //- wobei "i", das ist "i>=0" aus der vorherigen Funktion, und "SELECT_BY_TICKET" wurde durch "SELECT_BY_POS" ersetztund "MODE_HISTORY" wurde hinzugefügt- warum?
- Die dritte Zeile ist die Definition, wir brauchen die notwendige Order nicht zu überprüfen, da wir in dieser Historie nur durch TP und SL geschlossene Market Orders haben (wir könnten eine geschlossene Pending Order haben, aber das wird selten sein), alle anderen Orderparameter sind für uns nicht wichtig. Der einzige wichtige Punkt ist, dass die Anzahl der abgeschlossenen Aufträge in der Historie ständig zunimmt. Ist es möglich, dass unsere Neuberechnung nicht alle abgeschlossenen Aufträge berücksichtigt, sondern nur eine bestimmte Anzahl der letzten, zum Beispiel 5-10?
- Die letzten vier Zeilen sind ziemlich klar, die einzige Frage betrifft die PlaySound-Funktion, deren Code nach jeder"Print("..."-Zeile wie folgt eingefügt werden sollte
OrderComment gibt den Kommentar des ausgewählten Auftrags zurück, wenn dieser von der vorherigen FunktionOrdersHistoryTotal ausgewählt wurde- diese Funktion wählt nichts aus - sie gibt die Gesamtzahl der geschlossenen und gelöschten Aufträge zurück(Die Anzahl der geschlossenen und gelöschten Aufträge in der Historie des aktuellen Kontos, die in das Client-Terminal geladen wurde. Die Größe der Verlaufsliste hängt von den aktuellen Einstellungen auf der Registerkarte "Kontoverlauf" des Terminals ab. Zitat aus dem Lernprogramm).
accTotal im Beispiel aus dem Lehrgang:
int i,accTotal=OrdersHistoryTotal(); - Dies ist eine int-Variable, die den Wert OrdersHistoryTotal annimmt
for(i=0;i<accTotal;i++)// Es ist nicht wichtig, wie die Schleife durch die History-Liste läuft, von der ersten zur letzten Bestellung oder umgekehrt, es wird immer noch die ganze Liste der Reihe nach durchlaufen.
Im vorherigen Fall gibt es jedoch 1 Variable weniger, aber die Anfrage OrdersHistoryTotalwird in jedem Zyklus verarbeitet.
SELECT_BY_POS - der Index-Parameter enthält die Indexnummer des Auftrags in der Liste, die Liste selbst ist der zweite Operator - MODE_HISTORY ist die Liste der geschlossenen, MODE_TRADES - offen oder anhängig. SELECT_BY_TICKET - die Ticketnummer wird im Indexparameter übergeben. Das sollte vor der Auswahl der Bestellung irgendwo hin mitgenommen werden.
- Dieletzten vier Zeilen sind im Allgemeinen klar, die einzige Frage betrifft die PlaySound-Funktion, deren Code nach jeder "Print("..."- Zeilein folgender Form eingefügt werden sollte:
bool PlaySound(
string payment // Dateiname
)
; ...
Oder wird es auch irgendwie umgewandelt?
Deklarieren Sie
was wird dann gedruckt? Und unter welchen Bedingungen?
Was ist die Bedeutung dieser Aktion? Um einen Ton abzuspielen, wenn der Auftrag geschlossen wird, und um den Kommentar zu schreiben (per TP oder SL)?
Vielen Dankan Vitalie Postolache für die Hilfe, vielen Dank für die Beratung, und die Informationen über diese Lehrbücher ist wahrscheinlich ein wenig spät für mich in meinem sechsten Jahrzehnt zu studieren, kann ich wahrscheinlich nicht so viel zu tun, sollte ich früher haben, aber es war keine Zeit. Ich langweile Sie hier wirklich, tut mir leid, wenn das so ist, ich werde nicht weitermachen, ich gehe jetzt.
Übrigens, ich habe auch eine Frage.
Ich muss einen Spread-Check ausstellen.
Ich habe eine einfache Abfrage des Wertes und ein Verbot, einen Auftrag zu eröffnen, wenn der Spread den angegebenen Wert überschreitet, verwendet.
Aber was passiert ist, ist, dass wenn der Spread abnimmt, der EA eine Order eröffnet und der Spread sich erhöht.
Jetzt kann ich nicht finden, den richtigen Weg, um es zu berücksichtigen: wenn wir die Ausbreitung auf das Array jeden Tick hinzufügen, wie groß wird das Array bekommen? Andererseits: Wie lange wird es dauern?
Natürlich dürfen wir keine ähnlichen Werte oder nur kleinere und größere Werte verwenden, aber in diesem Fall müssen wir sie irgendwie auf Null zurücksetzen.
Und vor allem kann ich nicht verstehen, ob ich die minimale und maximale Streuung oder einen Hinweis auf die Sprünge berücksichtigen soll.{
datetime time; // время начала периода
double open; // цена открытия
double high; // наивысшая цена за период
double low; // наименьшая цена за период
double close; // цена закрытия
long tick_volume; // тиковый объем
int spread; // спред
long real_volume; // биржевой объем
};
{
datetime time; // время начала периода
double open; // цена открытия
double high; // наивысшая цена за период
double low; // наименьшая цена за период
double close; // цена закрытия
long tick_volume; // тиковый объем
int spread; // спред
long real_volume; // биржевой объем
};
int spread;// spread
d.h. keine
{
datetime time; // время начала периода
double open; // цена открытия
double high; // наивысшая цена за период
double low; // наименьшая цена за период
double close; // цена закрытия
long tick_volume; // тиковый объем
int spread; // спред
long real_volume; // биржевой объем
};
Wenn Sie nach dem aktuellen Balken fragen, dann nach dem aktuellen Spread, wenn aus der Historie, dann zum Zeitpunkt der Schließung.
Verstehe ich das richtig, dass Sie, um Daten in das Array zu schreiben, jeder Zelle einen anderen Wert zuweisen müssen array1[i] = x; was eine bestimmte Zellennummer angibt
oder kann das Feld von i=0 an nacheinander gefüllt werden?
Verstehe ich das richtig, dass Sie, um Daten in das Array zu schreiben, jeder Zelle einen anderen Wert zuweisen müssen array1[i] = x; was eine bestimmte Zellennummer angibt
oder kann das Feld von i=0 an nacheinander gefüllt werden?
Ich glaube, es sind einfach zwei verschiedene Wege.