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

 
Alexey Viktorov:


Was Sie zu drucken versuchen, ist nicht korrekt. Der richtige Weg ist der folgende.

Hier ist die Aufschlüsselung:

42 ist ein numerischer Bezeichner: ACCOUNT_MARGIN_FREE

d.h. wir können die freie Marge aus der Konstante

AccountInfoDouble(ACCOUNT_MARGIN_FREE)

Oder durch seinen numerischen Bezeichner:

AccountInfoDouble(42)

Ich danke Ihnen!

 
killer67:

Hier ist die Aufschlüsselung:

42 ist ein numerischer Bezeichner: ACCOUNT_MARGIN_FREE

d.h. wir können die freie Marge aus der Konstante

Oder durch seinen numerischen Bezeichner:

Ich danke Ihnen!

Die erste Version des Schreibens ist informativer.

 

https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants

Dies ist wahrscheinlich eine dumme Frage, aber können diese Funktionen in MQL4 verwendet werden? Es ist nur so, dass die MQL4-Tools begrenzter sind.

Wie man die Daten in MQL4 erhält:

SYMBOL_SESSION_DEALS

Anzahl der Abschlüsse in der aktuellen Sitzung

SYMBOL_SESSION_BUY_ORDERS

Gesamtzahl der momentanen Kaufaufträge

lang

SYMBOL_SESSION_SELL_ORDERS

Gesamtzahl der momentanen Verkaufsaufträge

lang

SYMBOL_VOLUME

Volumen - Volumen des letzten Handels

lang

SYMBOL_VOLUMEHIGH

Maximale Lautstärke für den Tag

lang

SYMBOL_VOLUMELOW

Mindestvolumen für den Tag

SYMBOL_BID

Angebot - Bestes Angebot

doppelt

SYMBOL_BIDHIGH

Höchstgebot für den Tag

doppelt

SYMBOL_BIDLOW

Mindestgebot für den Tag

doppelt

SYMBOL_ASK

Anfrage - bestes Gebot

doppelt

SYMBOL_ASKHIGH

Maximum Ask für den Tag

doppelt

SYMBOL_ASKLOW

Mindestanfrage für den Tag

SYMBOL_SESSION_VOLUME

Gesamtvolumen der Abschlüsse in der aktuellen Sitzung

doppelt

SYMBOL_SESSION_TURNOVER

Gesamtumsatz in der laufenden Sitzung

doppelt

SYMBOL_SITZUNG_INTERESSE

Gesamtvolumen der offenen Positionen

doppelt

SYMBOL_SESSION_BUY_ORDERS_VOLUME

Gesamtvolumen der Kaufaufträge zur Zeit

doppelt

SYMBOL_SESSION_SELL_ORDERS_VOLUME

Gesamtvolumen der Verkaufsaufträge zur Zeit

doppelt

SYMBOL_SESSION_OPEN

Eröffnungspreis der Sitzung

doppelt

SYMBOL_SESSION_CLOSE

Preis schließen

doppelt


Es ist eine Fundgrube an nützlichen Daten auf einen Schlag. Die Frage ist nur, wie man das in MQL4 macht. Da MQL5 einen größeren Funktionsumfang hat, könnte jemand fragen, warum ich mich nicht mit MQL5 beschäftige. Das ist ganz einfach. Nicht alle Makler unterstützen dies. Derzeit ist MQL4 immer noch das beliebteste und am meisten nachgefragte Programm.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
 
Gilmor:

https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants

Dies ist wahrscheinlich eine dumme Frage, aber können diese Funktionen in MQL4 verwendet werden? Es ist nur so, dass die MQL4-Tools begrenzter sind.

Wie man Daten in MQL4 erhält:


Es ist eine Fundgrube nützlicher Daten auf einen Klick. Aber wie macht man das in MQL4. Dieser Artikel enthält auch einige Tipps, wie man sich auf das Studium in MQL5 vorbereiten kann. Das ist ganz einfach. Nicht alle Makler unterstützen dies. Derzeit ist MQL4 immer noch das beliebteste und am meisten nachgefragte Programm.

In der Dokumentation von mql4 sind alle, die nicht funktionieren, markiert.

SYMBOL_BID

Angebot - Bestes Angebot

doppelt

SYMBOL_BIDHIGH

Nicht unterstützt

doppelt

SYMBOL_BIDLOW

Nicht unterstützt

doppelt

SYMBOL_ASK

Fragen - bestes Angebot zum Kauf

doppelt

SYMBOL_ASKHIGH

Nicht unterstützt

doppelt

SYMBOL_ASKLOW

Nicht unterstützt

doppelt

SYMBOL_LAST

Nicht unterstützt

doppelt

SYMBOL_LASTHIGH

Nicht unterstützt

doppelt

SYMBOL_LASTLOW

Nicht unterstützt

doppelt

SYMBOL_POINT

Einzelner Punktwert

doppelt

Dies ist nicht die ganze Tabelle. In der Dokumentation gibt es mehr als eine, Sie müssen nur F1 drücken und sie lesen.

 
Alexey Viktorov:

In der mql4-Dokumentation sind all jene markiert, die nicht funktionieren.

Ich danke Ihnen.
 
Hilfe zum Verständnis, kann Stop-Loss nicht richtig setzen.
Logzeilen:
2019.11.16 12:38:40.660 2019.01.02:35:00 Um Stops zu berechnen, nehmen Sie den Wert vom Broker = 30
2019.11.16 13:20:18.791 2019.01.02:03:00 Eröffne eine Order: Preis = 1.14595, Stop Loss = 1.14565, Take Profit = 1.14625
2019.11.16 13:20:18.791 2019.01.02 02:03:00 gescheiterter Sofortkauf 0.01 EURUSD bei 1.14595 sl: 1.14565 tp: 1.14625 [ungültige Stops]
2019.11.16 13:20:18.792 2019.01.02:03:00 CTrade::OrderSend: Sofortkauf 0.01 EURUSD bei 1.14595 sl: 1.14565 tp: 1.14625 [ungültige Stops]


Und nun ein wenig Klarheit für diesen Fall:
Im Code, bevor ich eine Order eröffne, berechne ich:
Preis = bester Marktpreis zum Kauf, abhängig von der Order, in diesem Fall ein Kauf.
SL = Berechne einen richtigen Stop (der Broker erlaubt einen Stop von mindestens 30 Einheiten vom Preis) d.h.
Preis (1.14595) - 0.0003 = SL (1.14565)
TP = Berechne einen richtigen Stop (der Broker erlaubt einen Stop von mindestens 30 Einheiten vom Preis) d.h.
Preis (1.14595) + 0.0003 = TP (1.14625)
Nun, alles sieht korrekt aus, ich halte 30 Punkte, aber ich bekomme einen Einstellungsfehler.

Wenn wir SL = 0 setzen, dann ist alles in Ordnung, Order und TP sind gesetzt.
Ich erhalte einen Fehler bei der Berechnung von SL, wo liegt der Fehler?
 
killer67:
Helfen Sie mir zu verstehen, ich kann den Stop-Loss nicht richtig setzen.
Protokollzeilen:
2019.11.16 12:38:40.660 2019.01.02 02:35:00 Zur Berechnung der Stops den Wert vom Broker = 30 nehmen
2019.11.16 13:20:18.791 2019.01.02 02:03:00 Eröffne eine Order: Kurs = 1,14595, Stop Loss = 1,14565, Take Profit = 1,14625
2019.11.16 13:20:18.791 2019.01.02 02:03:00 fehlgeschlagener Sofortkauf 0.01 EURUSD bei 1.14595 sl: 1.14565 tp: 1.14625 [Ungültige Stops]
2019.11.16 13:20:18.792 2019.01.02 02:03:00 CTrade::OrderSend: Sofortkauf 0.01 EURUSD bei 1.14595 sl: 1.14565 tp: 1.14625 [ungültige Stops]


Und nun etwas Klarheit für diesen Fall:
Im Code berechne ich, bevor ich einen Auftrag eröffne:
Preis = bester Marktpreis für den Kauf, abhängig von der Bestellung, in diesem Fall ein Kauf.
SL = Berechnung eines richtigen Stopps (der Broker erlaubt Stopps, die mindestens 30 Einheiten vom Kurs entfernt sind), d.h.
Preis (1,14595) - 0,0003 = SL (1,14565)
TP = Berechnung des korrekten Stopps (der Broker erlaubt Stopps, die mindestens 30 Einheiten vom Preis entfernt sind), d.h.
Preis (1,14595) + 0,0003 = TP (1,14625)
Nun, alles scheint richtig zu sein, ich halte 30 Pips, aber ich bekomme einen Einstellungsfehler.

Wir setzen SL = 0, dann ist alles in Ordnung, Auftrag und TP sind gesetzt.
Es stellt sich heraus, dass es sich um einen Fehler bei der Berechnung von SL handelt, wo liegt der Fehler?

Welche Art von Preis?

 
Iurii Tokman:

Welche Art von Preis?

Beim Kauf Preis = SYMBOL_ASK

Zum Verkauf Preis = SYMBOL_BID

 
killer67:

Beim Kauf Preis = SYMBOL_ASK

Wenn Verkaufspreis = SYMBOL_BID

Haben Sie versucht, einen Aufstrich hinzuzufügen?

 
Iurii Tokman:

Haben Sie versucht, einen Aufstrich hinzuzufügen?

Ich habe es so gemacht:

double CheckSetSL(ENUM_ORDER_TYPE OrderT, double price)
  {
   if(InpSL != 0)
     {
      double CalcSL = 0.0;
      double SL = 0.0;
      if(InpSL < 0.0003)
        {
         CalcSL = 0.0003; // Если SL в настройках указано меньше 30 (установки брокером) то ставим минимально допустимую.
        }
      else
        {
         CalcSL = InpSL;
        }

      // Формируем стоп-лимит.
      if(OrderT == ORDER_TYPE_BUY)
        {

         SL = SymbolInfoDouble(_Symbol,SYMBOL_BID) - CalcSL;

        }
      else
        {

         SL = SymbolInfoDouble(_Symbol,SYMBOL_ASK) + CalcSL;

        }

      return SL;
     }

   return 0.0;
  }
Grund der Beschwerde: