Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1111

 

Hallo zusammen.

Könnt ihr mir helfen, eine Bedingung für das Öffnen eines Auftrags zu erstellen, so dass er nur dann geöffnet wird, wenn die aktuelle Zeit (auf die Minute genau) nicht gleich der Schlusszeit des vorherigen Auftrags ist.

Hier ist die Konstruktion:

int accTotal=OrdersHistoryTotal();

if(OrderSelect(accTotal-1,SELECT_BY_POS,MODE_HISTORY)==true) {

datetime ctm=OrderCloseTime();

}

...

und dann die Bedingung, einen Auftrag zu eröffnen

if(.....&&(TimeCurrent()!=ctm)){

ticket=OrderSend(.....);

}

Aber natürlich funktioniert es nicht, weil TimeCurrent() die Zeit auf eine Sekunde genau zurückgibt, und ich brauche bis zu einer Minute, weil ich auf Minutenbalken handele und bei starken Marktschwankungen sogar während einer Minute der Preis um Hunderte von Punkten steigen kann, und das ist oft nicht in meinem Sinne. Deshalb brauche ich nur einen Auftrag in einer Minute zu öffnen.

 
ev85:

Hallo zusammen.

Könnt ihr mir helfen, eine Bedingung für das Öffnen eines Auftrags zu erstellen, so dass er nur dann geöffnet wird, wenn die aktuelle Zeit (auf eine Minute genau) nicht gleich der Schlusszeit des vorherigen Auftrags ist.


Natürlich funktioniert das nicht, weil TimeCurrent() die Zeit auf eine Sekunde genau zurückgibt, ich aber bis zu einer Minute brauche. Da ich mit Minutenindikatoren und bei starken Marktschwankungen handele, kann der Preis sogar in einer Minute um Hunderte von Punkten steigen, und er geht nicht immer in meine Richtung. Deshalb brauche ich nur einen Auftrag in einer Minute zu öffnen.

TimeHour(),TimeMinute().
 
ev85:

Hallo zusammen.

Könnt ihr mir helfen, eine Bedingung für das Öffnen eines Auftrags zu erstellen, so dass er nur geöffnet wird, wenn die aktuelle Zeit (auf die Minute genau) nicht mit der Schlusszeit des letzten Auftrags übereinstimmt.

Hier ist die Konstruktion:

int accTotal=OrdersHistoryTotal();

if(OrderSelect(accTotal-1,SELECT_BY_POS,MODE_HISTORY)==true) {

datetime ctm=OrderCloseTime();

}

...

und dann die Bedingung, einen Auftrag zu eröffnen

if(.....&&(TimeCurrent()!=ctm)){

ticket=OrderSend(.....);

}

Aber natürlich funktioniert das nicht, weil TimeCurrent() die Zeit auf eine Sekunde genau zurückgibt, und ich brauche bis zu einer Minute, weil ich auf Minutenbalken handele und bei starken Marktschwankungen sogar innerhalb einer Minute der Preis um Hunderte von Punkten steigen kann, und das ist oft nicht in meinem Sinne. Deshalb brauche ich nur einen Auftrag in einer Minute zu öffnen.

   datetime t=0;
   int  ticket;

   for(int i=0; i<OrdersHistoryTotal(); i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
        {
         if(OrderSymbol()==Symbol()) 
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) 
              {
               if(t<OrderCloseTime()) t=OrderCloseTime();
              }
           }
        }
     }
   if(TimeCurrent()-t>60)   //Ecли после закрытия последней поз > 60 секунд, то открываемся
       ticket=OrderSend(.....);
Etwa so
 
Wie bestimmt man den Trend in MQL4 auf intelligente Weise?
 
Cei Wie bestimmt man den Trend in MQL4?

Es gibt viele Möglichkeiten - schauen Sie in CodeBase nach Trendindikatoren. Differenzieren Sie einen gleitenden Durchschnitt, nehmen Sie einen linearen Regressionskoeffizienten, ... aber für meinen Geschmack ist es besser, die Umkehrungen aufzufangen

Ich habe oben auf dieser Seite auf Code Base geklickt. Ich habe einen Trendindikator in das Suchfeld eingegeben. Wie Majakowskij sagte, sind alle diese Indikatoren gut, aber es gibt keinen Unterschied. Hier ist ein Link zu einem von ihnen. Ich habe weiter recherchiert und gelesen: Ein guter Expert Advisor ... sollte eine Empfehlung aussprechen -"Nicht auf den Markt gehen".

 
Cei:
Wie bestimmt man den Trend in MQL4?

Warte auf eine Umkehrung, erkläre - es gab einen Trend dort ))))

Es gibt keinen anderen Weg. Der Trend wird in der Vergangenheit definiert, wie Wellen, wie Fraktale, wie Zickzacklinien.

 

Freunde, gibt es eine Funktion, die den Handel verbietet?

Ich brauche es für einen kleinen Zyklus:

für (vorausgesetzt; kein Handel; bis alle laufenden Aufträge abgeschlossen sind)

 
ev85:

Freunde, gibt es eine Funktion, die den Handel verbietet?

Ich brauche es für einen kleinen Zyklus:

für (vorausgesetzt; kein Handel; bis alle laufenden Aufträge abgeschlossen sind)

BestellungenGesamt()
 
Die Aufgabe lautet wie folgt.

Ich muss den Indikator auf allen 9 Zeitrahmen für 100 Symbole von Market Watch ausführen und das Ergebnis als Tabelle ausgeben.
Muss ich 900 Diagramme offen halten oder nicht, damit der Verlauf aufgepumpt und auf dem neuesten Stand ist?
 
RickD:
Die Aufgabe lautet wie folgt.

Ich muss den Indikator auf allen 9 Zeitrahmen für 100 Symbole von Market Watch ausführen und das Ergebnis als Tabelle ausgeben.
Sollte ich 900 Diagramme offen halten, damit die Geschichte relevant ist?

Nein, 100 Charts reichen aus, aber Sie müssen den Indikator richtig schreiben.