Fehler, Irrtümer, Fragen - Seite 409

 
T-G:

Bitte beraten Sie, wie man den folgenden Code auf mql5 ich nicht verstehen, zu verwenden

in der Frequenz, wie man die aktuelle Stunde erhält?
Hier ist es
//+------------------------------------------------------------------+
//|                                                       пример.mq5 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"

input int HourOpen=4;

MqlDateTime str;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   TimeToStruct(TimeCurrent(),str);

   if(str.hour==HourOpen)
     {
      // действие
     }
  }
//+------------------------------------------------------------------+
 
sergey1294:
Siehe
TimeCurrent() hat eine Überladung, so dass Sie die Zeit direkt übernehmen können (unter Umgehung von TimeToStruct()), obwohl Ihre Version auch korrekt ist.
 

stringo:

Die schwerwiegenden Probleme werden also durch die Umsetzung dieser Option verursacht?

void OnTrade(
             const string symbol,//символ, от которого (по которому) пришло торговое событие
             const uchar type,   //тип торгового события (изменения в ордерах, позициях или сделках)
             const ulong ticket  //тикет ордера или сделки, либо идентификатор позиции (в зависимости от второго параметра)
             );

Ganz genau. Das Problem ist, dass der Handel und die Nachrichtenwarteschlange in keiner Weise synchronisiert sind. Ein und dasselbe Ticket kann eine Reihe von Nachrichten erhalten.

Wenn Sie die erste Nachricht von diesem Haufen erhalten, wissen Sie außerdem nichts über die Verfügbarkeit weiterer Nachrichten auf demselben Ticket. Sie haben sich beeilt, eine Ticketänderung zu bearbeiten, aber das Ticket existiert bereits, es befindet sich bereits in der Historie der geschlossenen Positionen. Was ist zu tun? Unbekannt.

Wenn nun ein unpersönliches Handelsereignis eintritt, können Sie sich sofort über den aktuellen Stand der offenen Positionen und den Handelsverlauf informieren. Sie haben keine Ticketnummer und können sich nur auf den aktuellen Status beziehen.

Ich bin seit ein paar Tagen nicht mehr erreichbar.

Vielleicht gibt es verschiedene Varianten der Verwendung möglicher Parameter aus derOnTrade()-Funktion, aber mein Ziel ist diese Variante:

1. Bestellungen. Bei der nächsten Meldung "vom Stapel" erfahre ich aus dem Auftragsticket, ob der Auftrag in der Liste der offenen Aufträge(OrderSelect) oder in der Liste der historischen Aufträge(HistoryOrderSelect) steht.D.h. ich erhalte die aktuellsten Informationen über den aktuellen Standort eines bestimmten Auftrags, bezogen auf die Auftragslisten.

2. Positionen. Wenn ich die nächste Nachricht "aus dem Heap" erhalte, erfahre ich den Positionsstatus dieses Symbols anhand seines Namens(PositionSelect). Das heißt, ich erhalte auch die genauesten Informationen über den aktuellen Stand der Position.

Dann arbeite ich je nach Bedarf mit den Eigenschaften eines bestimmten Symbols.

Daher versuche ich, eine übermäßige Verwendung zyklischer Kontrollen zu vermeiden.

 
Urain und sergey1294 danke für die schnelle Antwort, jetzt verstehe ich
 
AlexSTAL:
Was steht dort? Was sind die Symptome?

Ich versuche, ein Demokonto zu eröffnen (ich habe verschiedene DCs ausprobiert).

kommt zurück

und kann dann kein Konto erstellen

 
papaklass:
Als Demohändler müssen Sie nur wissen, ob ein Stop-Loss oder Take-Profit ausgelöst wurde und für welches Instrument. Der Rest der Handelsereignisse ist exotisch und hat wenig mit dem Handel zu tun. IMHO. Wenn es also ein Symbol in der Funktion OnTrade() gäbe, könnte man feststellen (z. B. durch Vergleich des aktuellen Saldos mit dem vorherigen), welcher Sl oder Tp ausgelöst wurde.
Ich stimme zu. Zumindest brauchen Sie ein Symbol, und dann werden wir herausfinden, was es war.
Füchse:

Ich versuche, ein Demokonto zu eröffnen (ich habe verschiedene Maklerfirmen ausprobiert)

kommt auf

Ich habe es bei verschiedenen Maklerfirmen versucht, aber danach konnte ich kein Konto eröffnen.

Wann und wo haben Sie das Terminal heruntergeladen? Ein Screenshot des nächsten Fensters wäre wünschenswert, da dieses Fenster nicht sehr informativ ist.
 

An die Entwickler von

Ist Win 2003 SP2 (im Terminalmodus), das ständig Informationen über mein Handelskonto verliert, ein Fehler oder wurde es entwickelt, um die Sicherheit zu verbessern?

Genauer gesagt, wenn ich abwechselnd dieselbe Programmkopie im normalen und im Terminalmodus mit verschiedenen Konten verwende, verschwinden die Kontodaten von Zeit zu Zeit. Offenbar ist die Situation ähnlich, wenn Sie nur im Terminalmodus mit verschiedenen Konten arbeiten (ich habe das noch nicht überprüft).

 
papaklass:
Die meisten Händler müssen wissen, ob ein Stop-Loss oder Take-Profit ausgelöst wurde und bei welchem Instrument. Der Rest der Handelsereignisse ist exotisch und hat wenig mit dem Handel zu tun. IMHO. Wenn es also ein Symbol in der Funktion OnTrade() gäbe, könnte man z. B. durch den Vergleich des aktuellen Saldos mit dem vorherigen feststellen, ob sl oder tp der Auslöser war.
Im "Schutz des Tickets" :) Ich ziehe es vor, mit schwebenden Aufträgen zu arbeiten und ihr Schicksal von der Geburt bis zur Pensionierung zu verfolgen. Um welche Art von "Exotik mit wenig Bezug zum Handel" handelt es sich? Vielmehr ist es ein Gebot der Stunde, den Verbleib von Aufträgen über deren Ticketierung zu verfolgen. - Es muss vermieden werden, einen zweiten schwebenden Auftrag zu erteilen oder das Auslösen eines bereits erteilten Auftrags zu überziehen. Wenn wir die oben beschriebenen Parameter haben, können wir den Order-Spot-Tracking-Block in die Funktion OnTrade() verschieben.
 
papaklass:
Die meisten Händler müssen wissen, ob ein Stop-Loss oder Take-Profit ausgelöst wurde und bei welchem Instrument. Der Rest der Handelsereignisse ist exotisch und hat wenig mit dem Handel zu tun. IMHO. Gäbe es also ein Symbol in der Funktion OnTrade(), könnte man feststellen (z. B. durch Vergleich des aktuellen Saldos mit dem vorherigen), was sl oder tp ausgelöst hat.
Ich werde es noch einmal wiederholen. Die Frage ist nicht abgeschlossen. Sie wurde verschoben, bis wir eine akzeptable Lösung gefunden haben. Nun, die wichtigeren Aufgaben sind noch nicht gelöst.
 
Yedelkin:
Zur Verteidigung des Tickets :) Ich ziehe es vor, mit schwebenden Aufträgen zu arbeiten und ihr Schicksal von der Geburt bis zur Pensionierung zu verfolgen. Was ist das für ein "Exotismus mit geringer Relevanz für den Handel"? Vielmehr ist es ein Gebot der Stunde, den Verbleib von Aufträgen über deren Ticketierung zu verfolgen. - Es muss vermieden werden, einen zweiten schwebenden Auftrag zu erteilen oder das Auslösen eines bereits erteilten Auftrags zu überziehen. Wenn wir die oben beschriebenen Parameter haben, können wir den Order-Spot-Tracking-Block in die Funktion OnTrade() verschieben.
Vielleicht wäre es einfacher, wenn man angeben würde, wie viele Handelsereignisse sich noch in der Warteschlange befinden.
Grund der Beschwerde: