Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 20

 
Vitalie Postolache:
Noch einmal. OrderSelect muss bei der Arbeit mit einem Auftrag an erster Stelle stehen. Dann alles andere.
Danke für die Antwort ... Meinen Sie, dass die Zeile if(OrderSelect(i=0;i<accTotal;i++)==true) nicht korrekt oder an der falschen Stelle im Code geschrieben ist?
 
bablusut:
Danke für die Antwort ... Meinen Sie, dass die Zeile if(OrderSelect(i=0;i<accTotal;i++)==true) nicht korrekt geschrieben ist oder an der falschen Stelle im Code? ...
Ich habe dort Details hinzugefügt.
 

Renat Akhtyamov:
по ссылке пройдите, она у Вас в посте выделена.

Ich habe es mir bereits angeschaut. Es hat nicht die notwendigen Informationen. 10-stelliger Wert im leeren Puffer und Preiswert, wenn es ein Signal gibt... Wie zeigt der mql4-Code an, ob ein Wert im Puffer vorhanden ist oder nicht? (Ich habe es mehr als einmal benutzt, aber vergessen ...)

if( iCustom(NULL,t, "T...c",1,b) != .......).....

 

atik441:уже смотрел. нет там нужной информации .в пустом буфере 10и значное значение  а при наличии сигнала - значение цены... и как в коде mql4 обозначается отсутствие или наличие значения в буфере ? (пользовался не раз ,да забыл ...) 

if( iCustom(NULL,t, "T...c",1,b) != EMPTY_VALUE).....
 
Vitalie Postolache:
if( iCustom(NULL,t, "T...c",1,b) != EMPTY_VALUE).....Was wir brauchen... Danke für die Erinnerung!
 

Hilfe zum Verständnis. Ist es möglich, Aufträge sequentiell auszuführen, wenn zwei unterschiedlich gerichtete

offene Trades löst zunächst den TP eines der Trades aus, und dann nur SL, obwohl im Laufe des Handels das SL-Niveau

Wurde einer der Berufe zuerst verabschiedet?

 
ganri:

Hilfe zum Verständnis. Ist es möglich, Aufträge sequentiell auszuführen, wenn zwei unterschiedlich gerichtete

offene Trades löst zunächst TP eines der Trades aus, und dann nur SL, obwohl im Laufe des Handels das SL-Niveau

Wurde einer der Berufe zuerst verabschiedet?

asc/bid analysieren
 
Vitalie Postolache:

Noch einmal. OrderSelect muss bei der Arbeit mit einem Auftrag an erster Stelle stehen. Und dann alles andere.

Wenn wir in einer Schleife der Auftragsbewertung arbeiten, dann ist die Reihenfolge der Aktionen

1. Prüfen if(OrderSelect())

2. Um zu prüfen, ob es sich um den richtigen Auftrag handelt, werden in der Regel das Symbol und die magische Zahl und dann der Typ geprüft if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) - in diesem Fall werden nur Marktaufträge verarbeitet, die für das aktuelle Symbol und mit der angegebenen magischen Zahl erteilt wurden

Verarbeitung anderer Daten wie OrderComment(), OrderProfit(), etc.

Sie würde etwa so aussehen:

for(int i=OrdersHistoryTotal()-1; i>=0; i--) //перебираем историю торгов
{
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //если ордер выбран то работаем дальше, иначе смысла нет
      {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic && OrderType()<2) //Если ордер тот, что нам нужен (эту проверку можно и опустить, если нужно обработать все ордера в истории)
         {
            if(StringFind(OrderComment(),"[tp]",0)>-1) //если найден признак закрытия профитом
            Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
            if(StringFind(OrderComment(),"[sl]",0)>-1) //если найден признак закрытия стоплосс
            Print("Order #",OrderTicket()," loss: "OrderTakeProfit());
         }
      }
}

Vielen Dank für Ihre Antwort ... Um also nach Aufträgen 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 ist die Frage, was bedeutet "accTotal" in der Funktionsvorlage, 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 vorhergehende 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 prü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 eine bestimmte Anzahl der letzten Aufträge nimmt, zum Beispiel 5-10, und nicht alle?

- Die letzten vier Zeilen sind ziemlich klar, die einzige Frage ist die nach der PlaySound-Funktion, deren Code nach jeder"Print("..."- Zeile in derfolgenden Form eingefügt werden sollte:

bool PlaySound(

string // Dateiname

);

... Oder wird es auch irgendwie umgewandelt?

 
bablusut:

Lesen Sie über Schleifen, wie sie begrenzt sind und wie sie funktionieren, und ganz allgemein wäre es schön, ein Lehrbuch über C++ für Anfänger zu lesen, C++ ist MQL sehr ähnlich, der einzige Unterschied liegt in den Handelsfunktionen.

Und Sie sollten auch das MQL-Tutorial und die Hilfe im Compiler lesen. Die Artikel im Forum befinden sich am oberen Rand des Fensters mit blauem Hintergrund. Man kann nicht einfach den ganzen Kurs im Forum nacherzählen und erklären.

Учебник по MQL4
Учебник по MQL4
  • book.mql4.com
Учебник по MQL4
 
Vitalie Postolache:

Lesen Sie über Schleifen, wie sie begrenzt sind und wie sie funktionieren, und ganz allgemein wäre es schön, ein Lehrbuch über C++ für Anfänger zu lesen, C++ ist MQL sehr ähnlich, der einzige Unterschied liegt in den Handelsfunktionen.

Und Sie sollten auch das MQL-Tutorial und die Hilfe im Compiler lesen. Die Artikel im Forum befinden sich am oberen Rand des Fensters mit blauem Hintergrund. Man kann nicht einfach den ganzen Kurs im Forum nacherzählen und erklären.

Vielen Dank,Vitalie Postolache , für Ihre Hilfe und Ihren Rat, und es ist zu spät für mich, an meinem sechsten Geburtstag alle Lehrbücher zu lesen - ich werde nicht in der Lage sein, so viel zu lernen, ich hätte es früher tun sollen, aber ich hatte keine Zeit. Ich langweile Sie hier wirklich, tut mir leid, ich werde Sie nicht weiter belästigen.
Grund der Beschwerde: