das nächstgelegene Datum finden

 

Guten Morgen zusammen,

ich habe 10 Datumsangaben und möchte wissen, welche davon der aktuellen Zeit am nächsten kommt. Welche Formel kann ich verwenden?

Danke für die Unterstützung.

 
dr.house7:

Guten Morgen zusammen,

ich habe 10 Datumsangaben und möchte wissen, welche davon der aktuellen Zeit am nächsten kommt. Welche Formel kann ich verwenden?

Danke für die Unterstützung.

Hallo dr.house7,

können Sie uns einen Versuch zeigen?

Haben Sie schon etwas ausprobiert? Haben Sie ein Stück Code, das Sie uns zeigen können?

Wenn Sie nichts vorzuweisen haben, ist es besser, in der Code Base zu suchen oder einen Job in der Jobs Section zu posten.

 
Malacarne:

Hallo dr.house7,

können Sie uns einen Versuch zeigen?

Haben Sie schon etwas ausprobiert? Haben Sie ein Stück Code, das Sie uns zeigen können?

Wenn Sie nichts vorzuweisen haben, ist es besser, in der Code Base zu suchen oder einen Job in der Jobs Section zu posten.

lustig
 
dr.house7:
lustig

Hallo, Mister House, warum lustig? Willst du einen kostenlosen Code?

Ich glaube, es gibt keine direkte Formel. Befinden sich Ihre 10 Zeitpunkte in einem Array? Erstelle eine Schleife, um jeden Zeitpunkt mit der aktuellen Zeit zu vergleichen und behalte den Zeitpunkt, der näher an der aktuellen Zeit ist.

Wenn Sie Ihren Code posten, werden Sie sicher Hilfe bekommen.

 
angevoyageur:

Hallo, Mister House, warum lustig? Willst du einen kostenlosen Code?

Ich glaube, es gibt keine direkte Formel. Befinden sich Ihre 10 Zeitpunkte in einem Array? Erstelle eine Schleife, um jeden Zeitpunkt mit der aktuellen Zeit zu vergleichen und behalte den Zeitpunkt, der näher an der aktuellen Zeit ist.

Wenn Sie Ihren Code posten, werden Sie sicher Hilfe bekommen.

Das ist genau die Antwort, nach der ich gesucht habe, danke Ange!

p.s..

Ich habe immer umsonst programmiert, im tsd forum

 

Ok, hier ist der Code:

int touchedline[10];
int temp = 0;

touchedline[0]=doc1Time;
touchedline[1]=doc2Time;
touchedline[2]=doc3Time;
touchedline[3]=doc4Time;
touchedline[4]=doc5Time;
touchedline[5]=doc6Time;
touchedline[6]=doc7Time;
touchedline[7]=doc8Time;
touchedline[8]=doc9Time;
touchedline[9]=doc10Time;


    for(int i=0;i<10;i++)
    {
        if(touchedline[i]>temp)
        temp=touchedline[i]; 
    }
 

doc1Time, doc2Time, doc3Time, ...etc. sind datetime

Mit dieser Formel erhalte ich die letzte berührte Zeit, aber nicht die Nummer des verwendeten Objektfeldes... wie kann ich die genaue letzteberührte Zeile[x] wissen?

Ich muss wissen, welches Objekt der höchste Wert ist,touchedline[0] odertouchedline[1] odertouchedline[3] usw.

Vielen Dank für die Unterstützung

doc

 
dr.house7:

Das ist genau die Antwort, die ich gesucht habe, danke Ange!

p.s..

Ich habe immer umsonst gecodet, im tsd-Forum

Es steht jedem frei, umsonst zu programmieren.

Aber die Tradition im mql4.com und mql5.com Forum ist es, Leuten zu helfen, die ihren Code teilen und ihre Versuche zeigen.

   ...
   int highest=-1;

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         highest=i;
         temp=touchedline[i];
        }
     }

Dies gibt Ihnen den Index des höchsten Wertes und den "nächstgelegenen zur aktuellen Zeit", vorausgesetzt, dass alle date touchedline[]-Werte kleiner als die aktuelle Zeit sind.

Sie können auch ArrayMaximum() verwenden.

 
angevoyageur:

Es steht jedem frei, umsonst zu programmieren

Aber die Tradition im mql4.com und mql5.com Forum ist es, Leuten zu helfen, die ihren Code teilen und ihre Versuche zeigen.

Dies gibt Ihnen den Index des höchsten Wertes, und die "am nächsten zur aktuellen Zeit", vorausgesetzt, dass alle date touchedline[]-Werte kleiner als die aktuelle Zeit sind.

Sie können auch ArrayMaximum() verwenden.

:D

Vielen Dank...ich habe bei meinem letzten Versuch"int highest=0;" verwendet, das war mein Problem.

Ich wünsche Ihnen ein schönes Wochenende!

doc

 
angevoyageur:

Es steht jedem frei, umsonst zu programmieren

Aber die Tradition im mql4.com und mql5.com Forum ist es, Leuten zu helfen, die ihren Code teilen und ihre Versuche zeigen.

Dies gibt Ihnen den Index des höchsten Wertes, und die "am nächsten zur aktuellen Zeit", vorausgesetzt, dass alle Datum touchedline[] Werte sind schlechter als die aktuelle Zeit.

Sie können auch ArrayMaximum() verwenden.

Guten Morgen und schönen Sonntag!

Ich hoffe, Sie können mich wieder auf den richtigen Weg führen... Ich muss den vorherigen"höchsten" Wert erhalten, nicht nur den aktuellen, wie könnte ich vorgehen?

Danke für jede Hilfe

doc

 
dr.house7:

Guten Morgen und schönen Sonntag!

Ich hoffe, Sie könnten mich wieder auf den richtigen Weg führen... Ich muss die vorherige"höchste" nicht nur die aktuelle, wie könnte ich gehen?

Danke für jede Hilfe

doc

So etwas wie das?

   ...
   int highest=-1,previousHighest=-1;

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         previousHighest=highest;
         highest=i;
         temp=touchedline[i];
        }
     }
Nur eine Lösung unter anderen.
 
angevoyageur:

So etwas in der Art?

Nur eine Lösung unter anderen.

vielen Dank, es funktioniert wie ein Charme!

aber es ist ein bisschen seltsam zu verstehen :)