Flags kontrollieren entweder die Anzahl der Ordertypen oder, falls ein Ticket vorhanden ist, die Schließungszeit der Marktorder, wenn diese ungleich Null ist, ist die Order geschlossen und das Order Opening Flag ist falsch.
AIGUL SALMANOVA: Wie wird dies programmatisch durchgeführt?
if(OrderSelect(Ticket, SELECT_BY_TICKET)==true)
{
if(OrderCloseTime()==0) // Если наш рыночный ордер не закрыт
{
if(flagAlert == true)
Alert("Наш рыночный ордер жив, Модифицируем его если нужно ", Text,Ticket,". Ждём ответ..");
ModifyTral(); // Модифицируем если нужно
}
if(OrderCloseTime()!=0) // Если наш рыночный ордер закрылся
{
OpnOr=false; // Флаг открытия рыночного ордера после его закрытия делаем ЛОЖЬ
Ticket=0; // Тикет ордера рыночного, он может быть только одинAlert("Наш рыночный ордер закрылся. Работа Советника продолжается ","Прибыль/убыток = ",OrderProfit(),
" Своп = ", OrderSwap(), " Комиссия = ", OrderCommission());
return;
}
}
else
{ Alert("OrderSelect() нашего рыночного ордера вернул ошибку - ",GetLastError()); return;}
}
Zur Abrechnung eines Tickets.
Bei der Eröffnung einer Bestellung muss das Ticket gespeichert werden.
Flags kontrollieren entweder die Anzahl der Ordertypen oder, falls ein Ticket vorhanden ist, die Schließungszeit der Marktorder, wenn diese ungleich Null ist, ist die Order geschlossen und das Order Opening Flag ist falsch.
Wie wird dies programmatisch durchgeführt?
Zur Abrechnung eines Tickets.
Bei der Eröffnung einer Bestellung muss das Ticket gespeichert werden.
Um ehrlich zu sein, ist es nicht klar, wonach Sie suchen. Schreiben Sie in Formeln, wie Sie verstehen, was ausgegeben wird und was Sie brauchen.
Sie benötigen die Zeit in Millisekunden zwischen den letzten 4 Ticks. Werte aktualisieren, wenn ein neues Häkchen erscheint.
Der Indikator schreibt den Zeitpunkt des letzten Ticks(GetTickCount()) in den Puffer.
Der Expert Advisor übernimmt Werte aus dem Indikator und berechnet die Zeitdifferenz.
Es scheint zu zählen, aber Alert zeigt Werte wie auf dem Bild an.
Ich verstehe nicht, warum.
Benötigt die Zeit in Millisekunden zwischen den letzten 4 Ticks. Aktualisiert die Werte, wenn ein neuer Tick auftritt.
Der Indikator schreibt den Zeitpunkt des letzten Ticks (GetTickCount()) in den Puffer.
Der Expert Advisor übernimmt Werte aus dem Indikator und berechnet die Zeitdifferenz.
Es scheint zu zählen, aber Alert zeigt Werte wie auf dem Bild an.
Ich verstehe nicht, warum.
Weil Sie die Dokumentation nicht gelesen haben
Die Hilfe für GetTickCount sagt, dass es ein Integer-Zählerüberlauf ist
weil Sie die Dokumentation nicht gelesen haben.
Die GetTickCount-Referenz sagt, dass es sich um einen Integer-Überlauf handelt.
Sie meinen uint? Warum taucht es in der Meldung auf? Ich habe es nicht dort hingelegt.
Sie meinen uint? Warum taucht es in der Meldung auf? Ich habe es nicht dorthin geschrieben.
In der ersten Alerte geben Sie eine falsch (ohne Berücksichtigung von Überläufen) berechnete Differenz aus,
der zweite Alert, bei dem ein großer Integer-Wert im Code gesucht wird, ist in diesem Fragment nicht vorhanden :-)
Das ist das Problem, es steht nicht im Code.
Der gesamte Indikatorcode.
Der gesamte EA-Code.
Das ist das Problem, es steht nicht im Code.
Der gesamte Indikatorcode.
Alles davon.
Schauen Sie, was sonst noch drin ist.
time.mq4 - vielleicht sendet es Alarme
Das ist das Problem, es steht nicht im Code.
Der gesamte Indikatorcode.
Der gesamte EA-Code.
Im Indikator, in der Alert-Struktur. Die 5. Zeile von untenAlert(b);
Offenbar ist dies die Anzahl der Millisekunden seit dem Start des Systems)
Wie kann ich den Status der Schnellhandelsschaltflächen verfolgen?
Das heißt, ob sie in der Karte vorhanden sind oder nicht.
Können Sie eine Funktion oder eine andere Methode vorschlagen?