Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 2

 
Vladimir Karputov:

Wie Sie vorgeschlagen haben, schwört der Compiler.

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

Funktioniert nicht.

 
Nickolay72:

Wie Sie vorgeschlagen haben, schwört der Compiler.

{
   Ticket=OrderSend(NULL,OP_BUY,Lot,Ask,slippage,0,0,NULL,magic,0,Blue);
   if(!Ticket>0)Print(GetLastError());
   else
   {
    if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true)
    if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))
    {
     TP=NormalizeDouble(Bid+TakeProfit*Point,Digits);
     bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),TP,0,0);
      return;
    }
   }

Das funktioniert nicht.

Hier ist Ihr Code:

if(! Ticket>0)Print(GetLastError()) --- Das Ticket ist eine ganze Zahl, z. B. "2354865". Nun eine Frage: kann eine ganze Zahl nicht sein ( !2354865) Eine ganze Zahl kann entweder größer als "> 0" oder kleiner als "< 0" sein. Dieser boolsche Wert kann false/true ( ! ) sein.

Außerdem ist diese Konstruktion:if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)==true) --- sie zählt die Parameter nach Ticket auf, und wenn Sie ein konkretes Ticket betrachten, macht es keinen Sinn, seine magische Zahl oder sein Symbol zu prüfen, d.h. es ist offensichtlich unnötig:if((OrderMagicNumber()==magic) && (OrderSymbol()==Symbol()))

Und schließlich sind solche Konstrukte besser eingeklammert, um die Reihenfolge der mathematischen Aufgaben explizit anzugeben:NormalizeDouble(Bid+( TakeProfit*Point),Digits);
 
Vitaly Muzichenko:


Und schließlich ist es besser, solche Konstruktionen in Klammern zu setzen, um die Reihenfolge der Matrixaufgaben explizit anzugeben:NormalizeDouble(Bid+( TakeProfit*Point),Digits);

Nein, man kann es auch ohne Klammern machen. Wenn die Summe jedoch multipliziert werden muss, sind Klammern erforderlich.

 
poman:

kann den Wert von 0 bar open time mit der Periode D1 nehmen, + die Anzahl der Sekunden hinzufügen,

in der Bedingung zum Vergleich der aktuellen Zeit mit der in der ersten Zeile angegebenen Zeit

In einem schwebenden Auftrag ist es möglich, eine Anzahl von Sekunden anzugeben, die Lebensdauer des Auftrags.

Data_1=iTime(Symbol(),PERIOD_D1,0)+86400;  //время жизни ордера


Danke für den Tipp!) Es hat geholfen)
 

Hilfe mit dem Code, der Berater geht durch alle Bars, wie man es durch die letzten 200 Bars gehen zu machen! Danke

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
 

Anbieter_Signal

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Fragen von Anfängern

Anbieter_Signal, 2016.11.09 18:38

Wie schließe ich alle Aufträge in EA am Freitagabend? Um es nicht auf das Wochenende zu verschieben.

Funktion DayOfWeek() gefunden.

Ich kann einen Scheck ausstellen

if (DayOfWeek() == 5)
{
//
}

Aber was für einen Scheck sollen wir für die Zeit ausstellen? Was wäre zum Beispiel, wenn es 22:00 Uhr wäre?


 
Vladimir Karputov:

Anbieter_Signal

Aber welche Art von Scheck soll ich für die Zeit ausstellen? Wie wäre es zum Beispiel um 22:00 Uhr?
extern int St_Hour   = 22;

if (Hour()==St_Hour)
 
Aibek Mugiynov:

Hilfe mit dem Code, der Berater geht durch alle Bars, wie man es durch die letzten 200 Bars gehen zu machen! Danke

int  i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++)
for (i=1; i<200; i++)
 

Hallo, Hilfe.

Wenn bei drei Takten kein Puffer gefüllt ist, fülle ich den Puffer.


     int BarCount=3;
    BER=true;
   for(int il=1;il<=BarCount;il++)
     {
      if(BufferPointUp[il]!= EMPTY_VALUE){BER=false;break;}
     }
     if(BER) BufferPointUp[i]=high[i];

Er füllt sich wahllos auf allen Balken.

Aber wenn ich das tue, ist alles korrekt.

if(BufferPointUp[i+1]== EMPTY_VALUE&&BufferPointUp[i+2]== EMPTY_VALUE&&BufferPointUp[i+3]== EMPTY_VALUE)BufferPointUp[i]=high[i];

Wie kann mandiese Prüfung in einer Schleife durchführen?

 
mila.com:
extern int St_Hour   = 22;

if (Hour()==St_Hour)
Dankeschön
Grund der Beschwerde: