das nächstgelegene Datum finden - Seite 3

 
dr.house7:

Entschuldigung, aber was meinten Sie mit "diese Bedingungen"?

Mangel an Zeit.

By the way, ich beschließe, Zeit zu nehmen und zu testen, hier ist 1 Lösung.

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         highest=i;
         temp=touchedline[i];
        }
     }
   temp=0;
   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp && i!=highest)
        {
         previoushighest=i;
         temp=touchedline[i];
        }
     }
   Print("act_highest :",highest);
   Print("prv_highest :",previoushighest);
 
angevoyageur:

Mangel an Zeit.

By the way, ich beschließe, Zeit zu nehmen und zu testen, hier ist 1 Lösung.


Ich habe es für eine Weile getestet und scheint richtig zu funktionieren.

Sie sparen meine Zeit, ich bin auf jeden Fall in der Schuld mit Ihnen...vielen Dank!

Haben Sie einen schönen Tag.

Korrektur

Sorry, aber es funktioniert nicht richtig, oft ist der aktuelle Wert völlig falsch, wie z.B. einfrieren und manchmal wird der vorherige Wert zum aktuellen Wert :(

 
dr.house7:


Ich habe es für eine Weile getestet und scheint richtig zu funktionieren.

Sie sparen meine Zeit, ich bin auf jeden Fall in der Schuld mit Ihnen... vielen Dank!

Haben Sie einen schönen Tag.

Korrektur

Sorry, aber es funktioniert nicht richtig, oft ist der aktuelle Wert völlig falsch, wie z.B. einfrieren und manchmal wird der vorherige Wert zum aktuellen Wert :(


Der letzte Code, den ich zur Verfügung stelle, sollte funktionieren. Können Sie bitte Ihren Code posten.

 
angevoyageur:


Der letzte von mir bereitgestellte Code sollte funktionieren. Können Sie bitte Ihren Code posten.

Probleme treten auf, wenn im selben Minutenbalken verschiedene Berührungslinien beteiligt sind

 
ist zum Beispiel offensichtlich, wenn Sie EURUSD 10 jan 2014 um 16:30 auf jedem Tick Modus M1 backtest
 

Ist das schwierig?

OMG

 

Gibt es eine einfache Lösung?

Sollte ich stattdessen arraymaximum verwenden?

Danke ;)

 

Lieber Alain,

Ich entscheide mich für einen neuen Weg, ich lösche die Schleife und versuche, etwas vor korrekt zu bekommen.

jetzt touchx (es ist die tatsächliche Berührung) ist richtig, jeder Tick richtig ändern... statt previoustouchx (es ist die vorherige Berührung) nach dem zweiten Tick falsch geworden (weil es den gleichen Wert des aktuellen nehmen)...

Wie kann ich vorgehen?

Danke, einen schönen Abend noch

doc

int highest,touchx,previoustouchx;

if(ema1[1] > ema2[1] && ema1[0]< ema2[0]) 
          {
           if(TouchTime1 != emacross1_TouchTime) 
           {
           drawArrow1(TouchTime1,ema1[0],"Wingdings 3",ArrowSize,"p",ArrowColor); 
           emacross1_TouchTime= TouchTime1;
           highest=emacross1_TouchTime;
           previoustouchx=touchx;
           touchx=1;
           }        
          }
Dateien:
mecca.mq5  14 kb
 
dr.house7:

Lieber Alain,

Ich entscheide mich für einen neuen Weg, ich lösche die Schleife und versuche, etwas vor korrekt zu bekommen.

jetzt touchx (es ist die tatsächliche Berührung) ist richtig, jeder Tick richtig ändern... statt previoustouchx (es ist die vorherige Berührung) nach dem zweiten Tick falsch geworden (weil es den gleichen Wert des aktuellen nehmen)...

Wie kann ich vorgehen?

Danke, einen schönen Abend noch

doc

Hallo Doc,

Es hängt von Ihrem Ziel ab, sorry, aber das ist mir nicht klar. Sie wollen die Kreuzung von 2 Emas erkennen, aber wann wollen Sie diese Kreuzung erkennen, bei jedem Balken?

Natürlich mit dem Code, wie es ist, es erkennt, dass auf jedem Tick.

 
angevoyageur:

Hallo Doc,

Es hängt von Ihrem Ziel ab, sorry, aber es ist mir nicht klar. Sie erkennen die Kreuzung von 2 emas, aber wann wollen Sie diese Kreuzung zu erkennen, auf jedem bar?

Mit dem Code, so wie er ist, erkennt er das natürlich bei jedem Tick.

Guten Abend, Alain,

ea sollte jeden Tick überprüfen (wie es das tut), aber 2 Integer (touchx und previoustouchx) nur ändern, wenn sich das Signal ändert...so:

Beispiel:

1. Tick

touchx =3; previoustouchx=-1 (-1 weil es keine vorherigen Daten gibt)

2. Tick

touchx =5; previoustouchx=3

3. Tick

touchx =5; vorheriges touchx=3

usw.