Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1087

 
Sysmart:

Frage zur Prüfung (siehe Bild des Prüfers)

- wir eröffnen einen Verkaufsauftrag (grüner Pfeil im Bild), der einen Take Profit von 1,10439 hat;

- fügen wir eine schwebende Sell Stop Order (gelber Pfeil im Bild) mit dem Preis 1,10441 hinzu;

Die Frage ist, warum der Take Profit Auftrag nicht bei 1,10439 und der Sell Stop (roter Pfeil) bei 1,10441 ausgelöst wurde?

Wenn Sie bei 1,3000 kaufen, kaufen Sie teuer zum schlechten Preis von 1,3003 (zum Beispiel), wenn Sie die Position schließen, setzen Sie TP, um bei 1,2020 zu verkaufen, Ihr Handel wird zu einem Preis geschlossen, bei dem Bid bei 1,2017 und Ask bei 1,2020 liegt, d.h. Sie zahlen das Zweifache des Spreads für die Verwaltung Ihrer Position, und die Differenz geht in die Tasche des Büros. Alternativ können Sie auch auf liquideren Konten wie NDB (5 Stellen) handeln.

 
novichok2018:
Hallo! Meine Frage ist zwar nicht themenbezogen, aber ich weiß nicht, wo ich sie stellen soll, wenn ich eine wirklich kompetente Antwort erhalten möchte. Google hat nicht geholfen. Die Frage ist: Heute begann der DAX30-Index plötzlich nicht um 9:00 Uhr, sondern um 2:15 Uhr zu handeln. Nirgendwo, auch nicht auf der Website der Frankfurter Börse, habe ich eine Erklärung oder Warnung gefunden. Vielleicht ist jemand besser informiert und kann mir einen Tipp geben, wo ich die Informationen finden kann?

Da sich niemand dieses Problems bewusst ist, geben Sie bitte an, wie man den Start des EA an den Beginn des Handels mit einem Symbol bindet. Im Moment habe ich eine einfache Bindung an die Zeit: if(Hour()==9) {CODE}. Wenn ich also die Startzeit von 9:00 Uhr auf 2:15 Uhr ändere, funktioniert die Bedingung für das Öffnen von Positionen nicht mehr. Und wenn ich einfach die Uhrzeit ändere, gibt es keine Garantie dafür, dass sich die Uhrzeit für den Handelsbeginn wieder ändert, und ich werde es nicht merken.

 
novichok2018:

Da sich niemand dieses Problems bewusst ist, geben Sie bitte an, wie man den Start des EA an den Beginn des Handels mit einem Symbol bindet. Im Moment habe ich eine einfache Bindung an die Zeit: if(Hour()==9) {CODE}. Wenn ich also die Startzeit von 9:00 Uhr auf 2:15 Uhr ändere, funktioniert die Bedingung für das Öffnen von Positionen nicht mehr. Und wenn wir einfach die Zeit ändern, gibt es keine Garantie dafür, dass sich die Uhrzeit für den Handelsbeginn wieder ändert, und ich werde es nicht merken.

Durchsuchen Sie die kodobase.

Hier ist die erstehttps://www.mql5.com/ru/code/27315

 
Sysmart:

Frage zur Prüfung (siehe Bild des Prüfers)

- wir eröffnen einen Verkaufsauftrag (grüner Pfeil im Bild), der einen Take Profit von 1,10439 hat;

- fügen wir eine schwebende Sell Stop Order (gelber Pfeil im Bild) mit dem Preis 1,10441 hinzu;

Die Frage ist, warum der Take Profit Auftrag nicht bei 1,10439 und der Sell Stop (roter Pfeil) bei 1,10441 ausgelöst wurde?

Denken Sie daran, dass Verkaufsaufträge zum Geldkurs eröffnet und zum Briefkurs geschlossen werden, bei Kaufaufträgen verhält es sich umgekehrt. Das ist alles.

 
Igor Makanu:

Suche nach Codobase

Hier ist die erstehttps://www.mql5.com/ru/code/27315

Ich danke Ihnen natürlich, aber dieses Beispiel gehört nicht zum Thema. Wir brauchen einen Link zurStartzeit des Handels mit einem bestimmten Instrument oder zur Startzeit der Börse, an der dieses Instrument gehandelt wird. Ich konnte sie in der kodobase nicht finden.

 

Hallo, ich habe Code geschrieben und bin auf dieses Problem gestoßen.

Der Code funktioniert, wenn Sie eine Zeile ausschließen:

#property strict

In diesem Fall hört es sofort auf zu funktionieren.

Hier ist das Codefragment selbst, in dem der Fehler entdeckt wird:

void manageAlerts()
{
   if (alertsOn)
   {
      if (alertsOnCurrent)
           int whichBars = 0;
           else whichBars = 1; 
         if (arrup[whichBars]  != EMPTY_VALUE) doAlert(whichBars,"up");
         if (arrdwn[whichBars] != EMPTY_VALUE) doAlert(whichBars,"down");
   }
}

Und hier sind die Ergebnisse:

'whichBars' - nicht deklarierter Bezeichner; Zeile 7 des Fragments

Der 'whichBars' - nicht deklarierter Bezeichner; 8 Zeile des Fragments


Wie kann dies behoben werden?

 
pykachilo:

Hallo, ich habe Code geschrieben und bin auf dieses Problem gestoßen.

Der Code funktioniert, wenn Sie eine Zeile ausschließen:

In diesem Fall hört es sofort auf zu funktionieren.

Hier ist das Codefragment selbst, in dem der Fehler entdeckt wird:

Und hier sind die Ergebnisse:

'whichBars' - nicht deklarierter Bezeichner; Zeile 7 des Fragments

Der 'whichBars' - nicht deklarierter Bezeichner; 8 Zeile des Fragments


Wie kann dies behoben werden?

whichBars sollte am Anfang der Funktion definiert werden, nicht in der Bedingung.
 

Guten Tag.

Hier eine Frage: In der Dokumentation unter "Graphic Event Types" (https://docs.mql4.com/ru/constants/chartconstants/enum_chartevents)
für das EreignisCHARTEVENT_KEYDOWN ist definiert, dass der Parameter sparam "String-Wert der Bitmaske, die den Status der Tastaturtasten beschreibt" ist.

Ich kann jedoch keine Informationen darüber finden, welche Bits wofür zuständig sind.

Für das Ereignis CHARTEVENT_MOUSE_MOVE gibt es einen ähnlichen Parameter sparam, der ein "String-Wert der Bitmaske, die den Status der Maustasten beschreibt" ist.
wird auf der gleichen Seite ausführlich beschrieben...

Wo kann ich die Dokumentation zu sparam="string value of bitmask describing the status of keyboard buttons" für das Ereignis CHARTEVENT_KEYDOWN einsehen?

Ich danke Ihnen.

Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
Типы событий графика - Константы графиков - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Существуют 9 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Maksims Ignatovs:

Wo kann ich die Dokumentation für sparam="string value bitmask describing the status of the keyboard buttons" für das Ereignis CHARTEVENT_KEYDOWN einsehen?

können Sie über Print(sparam) für die gewünschten Schaltflächen drucken.

Ich kenne Ihre Aufgabe nicht, aber ich verwende selbst lieber lparam, damit ich mir keine Gedanken über Sprache, Beschriftung und andere Varianten machen muss.

 
Igor Zakharov:

können Sie über Print(sparam) für die gewünschten Schaltflächen drucken.

Ich kenne Ihre Aufgabe nicht, aber ich selbst ziehe es vor, lparam zu verwenden, damit ich mir keine Gedanken über Sprache, Beschriftung und andere Varianten machen muss.

Dies ist eine interessante Lösung für einen allgemeinen Fall. Es ist klar, dass man für eine bestimmte Taste alle möglichen Kombinationen (Sprache, Großbuchstaben usw.) durchgehen kann, um zu sehen, was passiert, und sogar versuchen kann, einige Schlussfolgerungen daraus zu ziehen,
ABER, dieses Problem sollte in der Dokumentation berücksichtigt werden. Für Mausereignisse ist alles in der Dokumentation verfügbar. Was ist mit der Tastatur?