[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 193

 

Hallo,

Bitte geben Sie mir das einfachste Beispiel für die Eröffnung eines Auftrags (sofort, ohne Wenn und Aber).
Das Lehrbuch ist sehr kompliziert.

 
olis:

Hallo,

Bitte geben Sie mir das einfachste Beispiel für die Eröffnung eines Auftrags (sofort, ohne Wenn und Aber).
Das Lernprogramm ist sehr kompliziert.

BestellungSenden()

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Grundfunktion zur Eröffnung einer Position oder zur Platzierung eines schwebenden Auftrags.
Gibt die Ticketnummer zurück, die dem Auftrag vom Handelsserver zugewiesen wurde, oder -1 im Falle eines Fehlers. Um weitere Informationen über den Fehler zu erhalten, sollten Sie die Funktion GetLastError() aufrufen.
Anmerkungen.
Bei der Eröffnung einer Marktorder (OP_SELL oder OP_BUY) kann nur der letzte Geldkurs (für den Verkauf) oder Briefkurs (für den Kauf) als Eröffnungskurs verwendet werden. Wenn die Operation für ein anderes Finanzinstrument als das aktuelle durchgeführt wird, sollten Sie die Funktion MarketInfo() mit dem Parameter MODE_BID oder MODE_ASK verwenden, um die neuesten Kurse für dieses Instrument zu erhalten. Sie können keinen geschätzten oder nicht-normalisierten Preis verwenden. Wenn der angeforderte Eröffnungskurs nicht im Kursfluss enthalten ist oder der angeforderte Kurs nicht nach der Anzahl der Dezimalstellen normalisiert ist, wird der Fehler 129 (ERR_INVALID_PRICE) erzeugt. Wenn der angeforderte Eröffnungskurs stark veraltet ist, wird unabhängig vom Wert des Slippage-Parameters ein Fehler 138 (ERR_REQUOTE) erzeugt. Wenn der angeforderte Preis nicht mehr aktuell ist, aber noch im Preisfluss vorhanden ist, wird die Position zum aktuellen Preis eröffnet, und zwar nur dann, wenn der aktuelle Preis innerhalb der Spanne von Preis + Slippage liegt.

StopLoss- und TakeProfit-Kurse dürfen nicht zu nahe am Markt liegen. Der minimale Stop-Abstand in Pips kann mit der Funktion MarketInfo() mit dem Parameter MODE_STOPLEVEL ermittelt werden. Der Fehler 130 (ERR_INVALID_STOPS) wird bei fehlerhaften oder nicht normalisierten Stopps erzeugt.

Wenn Sie einen schwebenden Auftrag erteilen, darf der Eröffnungskurs nicht zu nahe am Markt liegen. Der Mindestabstand des schwebenden Preises vom aktuellen Marktpreis in Punkten kann auch mit der Funktion MarketInfo() mit dem Parameter MODE_STOPLEVEL ermittelt werden. Wenn der Eröffnungskurs eines schwebenden Auftrags nicht korrekt ist, wird der Fehler 130 (ERR_INVALID_STOPS) erzeugt.

Auf einigen Handelsservern kann ein Verbot des Verfalls von schwebenden Aufträgen festgelegt werden. In diesem Fall wird ein Fehler 147 (ERR_TRADE_EXPIRATION_DENIED) erzeugt, wenn versucht wird, einen Wert ungleich Null im Ablaufparameter zu setzen.

Auf einigen Handelsservern kann ein Limit für die Gesamtzahl der offenen und schwebenden Aufträge festgelegt werden. Wird dieser Grenzwert überschritten, wird keine neue Position eröffnet (es wird keine Pending Order gesetzt) und der Trade Server gibt den Fehler 148 (ERR_TRADE_TOO_MANY_ORDERS) zurück.
Parameter:
Symbol - Name eines gehandelten Finanzinstruments.
cmd - Handelsbetrieb. Kann einer der Handelswerte sein.
Band - Anzahl der Lose.
Preis - Eröffnungspreis.
Schlupf - Maximal zulässige Preisabweichung für Marktaufträge (Kauf- oder Verkaufsaufträge).
Stoploss - Der Preis für die Schließung einer Position, wenn der Verlust erreicht ist (0, wenn kein Verlust vorliegt).
Gewinnmitnahme - Der Schlusskurs einer Position, wenn das Rentabilitätsniveau erreicht ist (0, wenn es kein Rentabilitätsniveau gibt).
Kommentar - Kommentartext bestellen. Der letzte Teil des Kommentars kann vom Handelsserver geändert werden.
Magie - Magische Zahl der Bestellung. Kann als benutzerdefinierter Bezeichner verwendet werden.
Ablauf - Verfallszeit des schwebenden Auftrags.
Pfeil_Farbe - Farbe des Eröffnungspfeils auf dem Diagramm. Wenn der Parameter nicht vorhanden ist oder den Wert CLR_NONE hat, wird der Öffnungspfeil nicht im Diagramm angezeigt.
 
ULAD:

Ich kann nicht herausfinden, wie ich die Lebensdauer von der Musterbildung bis 0 bar berechnen kann.

Wenn das Muster existiert und es keinen festen Bezug zu Preis und Zeit gibt.

Das Muster ist nicht immer vorhanden. Sie wurde zu einem bestimmten Zeitpunkt gebildet. Hier finden Sie einen Link zum Zeitpunkt seiner Entstehung und dem Zeitpunkt des aktuellen Balkens oder zum Balken seiner Entstehung und dem aktuellen Balken. Können Sie den Unterschied zwischen der Musterbildung und der aktuellen Zeit feststellen?
 
olis:

Hallo,

Bitte geben Sie mir das einfachste Beispiel für die Eröffnung eines Auftrags (sofort, ohne Wenn und Aber).
Das Lehrbuch ist sehr kompliziert.


//--------------------------------------------------------------------
// simpleopen.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
   return;                                   // Выход из start()
  }
//--------------------------------------------------------------------
 
Roll:


Danke, es funktioniert!
 

Ich versuche, ein Beispiel aus dem Buch von S.K. zu verstehen, rocseparate.mq4 Expert Advisor Ich starte einen Test, zeige einen Chart an. Am unteren Rand befindet sich ein separates Fenster, das jedoch leer ist. Wie kann man einen Indikator im Hauptfenster anzeigen lassen? Der Code ist derselbe wie im Buch:

//-------------------------------------------------------------- 5a --
   double L_1=iCustom(NULL,0,"rocseparate",H,P,B,A,1,0);
   double L_5=iCustom(NULL,0,"rocseparate",H,P,B,A,5,0);
//-------------------------------------------------------------- 5b --
   if (L_5<=-Level && L_1>L_5)
     {
      Opn_B=true;                               // Критерий 
 
ScioMe:

Ich versuche, ein Beispiel aus dem Buch von S.K. zu verstehen, rocseparate.mq4 Expert Advisor Ich starte einen Test, zeige einen Chart an. Am unteren Rand befindet sich ein separates Fenster, das jedoch leer ist. Wie kann man einen Indikator im Hauptfenster anzeigen lassen? Der Code wie im Buch:


Tutorial:
"...Der benutzerdefinierte Indikator rocseparate.mq4 für die Preisänderungsrate im aktuellen, nächst größeren und nächst größeren Zeitrahmen... ist ein vollständiges Analogon des Indikators roc.mq4, wird aber in einem separaten Fenster angezeigt. Auf diese Weise konnten die Werte der Geschwindigkeitslinien für verschiedene Zeiträume berechnet werden, und zwar nicht in Bezug auf die MA-Referenz, sondern in Bezug auf die horizontale Nulllinie".

 
Roll:


Tutorial:
".. .Der benutzerdefinierte Indikator rocseparate.mq4 für die Preisänderungsrate am aktuellen, nächstgrößeren und nächstgrößeren Zeitrahmen wird in einem separaten Fenster angezeigt ... ist die vollständige Entsprechung des Indikators roc.mq4, wird aber in einem separaten Fenster angezeigt. Auf diese Weise konnten die Werte der Geschwindigkeitslinien für verschiedene Zeiträume berechnet werden, und zwar nicht in Bezug auf die MA-Referenz, sondern in Bezug auf die horizontale Nulllinie".


Ja, absolut richtig: Ich werfe es auf das Diagramm, rocseparate erscheint unten in einem eigenen Fenster. Aber wenn ich nach dem Testen auf "Open Chart" klicke, ist das Diagrammfenster leer. Ich verstehe nicht, was los ist?
 
Drücken Sie dann End auf der Tastatur (EA shared.mq4) und beobachten Sie Ihren Indikator (das Fenster ist nicht leer).
 

Guten Tag, meine Herren.

Ich brauche noch Ihren Rat zu dieser Frage:

Ich schreibe gerade einen EA und bin auf ein Problem gestoßen. Laut TS soll der Expert Advisor jede Minute Berechnungen für eine bestimmte Anzahl von Minuten durchführen. Danach sollten alle Daten zurückgesetzt werden und die Berechnungen sollten von vorne beginnen.

Und so geht es Zyklus für Zyklus weiter. Der Zeitzyklus reicht von 1 bis 60 Minuten. Bitte geben Sie Hinweise, wie dies im Code korrekt beschrieben werden kann. Wie kann ich den folgenden Code zyklisch und mit der Möglichkeit, die Zykluszeit von 1 bis 60 Minuten einzustellen, gestalten?

Bislang sieht meine 5-Minuten-Schleife so aus:

if ((TimeMinute(TimeCurrent()))==time1)

Price20=koef_10;

if ((TimeMinute(TimeCurrent()))==time2)

Price20=koef_10;

if ((TimeMinute(TimeCurrent()))==time3)

Price20=koef_10;

if ((TimeMinute(TimeCurrent()))==time4)

Price20=koef_10;

if ((TimeMinute(TimeCurrent()))==time5)

Price20=koef_10;


Ich würde Ihre Hilfe sehr schätzen.