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

 
FOTOGRAF14:

Hallo zusammen, wie schreibe ich meine Bedingung? Ich muss eine Stop-Loss-Order platzieren, nachdem der Kurs den Stop-Loss-Abstand überschritten hat.

für Buy.....

if( )

{

------------

}

für Sell.....


Funktion zur Übertragung von STB nach Breakeven werden das Orderticket und der Abstand in Pips an die Funktion übergeben

void zero_profit(int ticket, int distance)
  {
   double sl=0.0;

   if(OrderSelect(ticket,SELECT_BY_TICKET))
     {
      if(OrderType()==OP_BUY)
        {
         if(Bid>=OrderOpenPrice() && Bid-OrderOpenPrice()>=distance*_Point) sl=OrderOpenPrice();
         if(OrderStopLoss()!=0 && OrderStopLoss()>=OrderOpenPrice())return;
        }
      if(OrderType()==OP_SELL)
        {
         if(Ask<=OrderOpenPrice() && OrderOpenPrice()-Ask>=distance*_Point) sl=OrderOpenPrice();
         if(OrderStopLoss()!=0 && OrderStopLoss()<=OrderOpenPrice())return;
        }
      ResetLastError();

      if(sl<=0)return;
      if(!OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0))
        {
         int error=GetLastError();
         rezult=StringConcatenate(OrderSymbol(),": error modifying StopLoss order ",OrderTicket()," ",TypeToStr(OrderType())," №- ",error);
         Print(rezult);
        }

     }
  }


...

 
Vitaly Muzichenko:

Es wird keine Malerei geben)

Die Suchlogik selbst ist schwer, und wie man sie einfacher machen kann, weiß ich noch nicht.

Vitaly, ich habe ursprünglich versucht, Ihnen zu erklären, dass es nicht die Berechnungen sind, die den Prüfer verlangsamen, sondern die grafischen Objekte in der visuellen Prüfung. Machen Sie es so, wie er es rät

Alexey Kozitsyn:

Sie können es im Indikator rollen, ohne zu zeichnen). Und es ist besser, eine Wahl zu treffen. Hopfen - Zeichnung, Hopfen - keine Zeichnung:)

und sehen Sie den Unterschied in der Geschwindigkeit.

Es ist nicht einmal die Zeichnung, die sich verzögert, es ist nur das Vorhandensein von Grafiken auf dem Diagramm.

 
Alexey Viktorov:

Es ist nicht einmal die Zeichnung, die die Arbeit verlangsamt, sondern nur das Vorhandensein von Grafiken auf dem Diagramm.

Kein Argument... Deshalb habe ich gesagt, wenn ich es nicht brauche, schalte ich es aus (DRAW_NONE) und das war's... und Sie können trotzdem auf die Werte zugreifen.
 
Alexey Viktorov:

Vitaly, ich habe ursprünglich versucht, Ihnen zu erklären, dass es nicht die Berechnungen sind, die den Prüfer verlangsamen, sondern die grafischen Objekte in der visuellen Prüfung. Tu, was er sagt

und sehen Sie den Unterschied in der Geschwindigkeit.

Es ist nicht einmal die Zeichnung, die sich verzögert, es ist nur das Vorhandensein von Grafiken auf dem Diagramm.

Ich teste die Funktion ganz ohne Grafiken, das Diagramm wurde nur erstellt, um die Korrektheit der Berechnungen beim Schreiben des Codes zu sehen - es war rein technisch und ist längst aus dem Code entfernt worden. Während der Prüfung ist die Karte leer.

Also, wenn ich keine Funktion habe, "fliegt" das Testen, aber verbinden Sie Funktion - es geht langsam.

P.S. Ich brauche im Prinzip keine grafischen Objekte. Vergessen Sie Grafiken - ich habe sie nicht und werde sie nicht haben!

 
Vitaly Muzichenko:

Ich teste die Funktion ganz ohne Diagramm. Das Diagramm wurde nur erstellt, um zu sehen, ob die Berechnungen beim Schreiben des Codes korrekt waren - es war rein technisch und wurde vor langer Zeit aus dem Code entfernt. Während der Prüfung ist die Karte leer.

Also, wenn ich keine Funktion habe, "fliegt" das Testen, aber verbinden Sie Funktion - es geht langsam.

P.S. Ich brauche im Prinzip keine grafischen Objekte. Vergessen Sie Grafiken - ich habe sie nicht und werde sie nicht haben!

Haben Sie hier nachgesehen?
 
Artyom Trishkin:
Haben Sie hier nachgesehen?

Cool, ich werde versuchen, die Funktionen in den EA einzubauen. Ich werde das Ergebnis später veröffentlichen.

Ich danke Ihnen!!!

 
Bitte helfen Sie mir zu verstehen, wie man den Code korrekt schreibt, um den Index der um 4:00 und 15:00 geöffneten Bars zu erhalten
 
missha689:
Bitte helfen Sie mir zu verstehen, wie man den Code korrekt schreibt, um den Index der um 4:00 und 15:00 Uhr geöffneten Bars zu erhalten

Das ist die eine.

datetime some_time=D'2017.03.03 4:00';
  int      shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent());
  Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);

Das sind zwei.

datetime some_time=D'2004.03.21 12:00';
  int      shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time);
  Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Доступ к таймсериям и индикаторам - Справочник MQL4
Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Доступ к таймсериям и индикаторам - Справочник MQL4
 
Alexey Viktorov:

Das ist die eine.

datetime some_time=D'2017.03.03 4:00';
  int      shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent());
  Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);

Das sind zwei.

datetime some_time=D'2004.03.21 12:00';
  int      shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time);
  Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Ich verstehe, dass es auf einen bestimmten Tag eingestellt ist, da das Datum angegeben ist, aber wie kann ich den Barindex auf 15 gestern und den Barindex auf 4 heute einstellen?
 
Können Sie mir sagen, wie ich das gestrige Datum und die Uhrzeit programmgesteuert herausfinden kann?