en yakın tarihi bul - sayfa 3

 
dr.house7 :

Pardon ama "bu koşullar" ile ne demek istediniz?

Zaman eksikliği.

Bu arada, zaman ayırıp test etmeye karar verdim, işte 1 çözüm.

   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 :

Zaman eksikliği.

Bu arada, zaman ayırıp test etmeye karar verdim, işte 1 çözüm.


Bir süre test ettim ve doğru çalışıyor gibi görünüyor.

Zamanımı kurtardın, sana kesinlikle borçluyum... Çok teşekkür ederim!

İyi günler.

düzeltme

üzgünüm ama düzgün çalışmıyor, çoğu zaman gerçek değer donma gibi tamamen yanlıştır ve bazen önceki değer gerçek değer olur :(

 
dr.house7 :


Bir süre test ettim ve doğru çalışıyor gibi görünüyor.

Zamanımı kurtardın, sana kesinlikle borçluyum... Çok teşekkür ederim!

İyi günler.

düzeltme

üzgünüm ama düzgün çalışmıyor, çoğu zaman gerçek değer donma gibi tamamen yanlıştır ve bazen önceki değer gerçek değer olur :(


Sağladığım son kod çalışmalı. Lütfen kodunuzu gönderir misiniz?

 
angevoyageur :


Sağladığım son kod çalışmalı. Lütfen kodunuzu gönderir misiniz?

Aynı dakika çubuğunda farklı temas çizgileri söz konusu olduğunda sorunlar ortaya çıkar

 
örneğin EURUSD 10 Ocak 2014'ü 16:30'da her M1 tik modunda tekrar test ettiğinizde belirgindir.
 

bu zor mu?

AMAN TANRIM

 

Basit bir çözüm var mı?

Bunun yerine arraymaximum kullanmalı mıyım ?

Teşekkürler ;)

 

Sevgili Alain,

Yeni bir yol seçmeye karar veririm, döngüyü silerim ve düzeltmeden önce bir şeyler bulmaya çalışırım.

şimdi touchx(gerçek dokunuş) doğru, her tik doğru değişiyor... bunun yerine öncekitouchx(önceki dokunuş) ikinci tik yanlış olduktan sonra (çünkü akımın aynı değerini alıyor)...

nasıl devam edebilirdim?

teşekkürler, iyi akşamlar

doktor

 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 ;
           }        
          }
Dosyalar:
mecca.mq5  14 kb
 
dr.house7 :

Sevgili Alain,

Yeni bir yol seçmeye karar veririm, döngüyü silerim ve düzeltmeden önce bir şeyler bulmaya çalışırım.

şimdi touchx(gerçek dokunuş) doğru, her tik doğru değişiyor... bunun yerine öncekitouchx(önceki dokunuş) ikinci tik yanlış olduktan sonra (çünkü akımın aynı değerini alıyor)...

nasıl devam edebilirdim?

teşekkürler, iyi akşamlar

doktor

Merhaba Doktor,

Amacınıza bağlı, üzgünüm ama benim için net değil. 2 ema çaprazını algılıyorsunuz, ancak bu çarpıyı her çubukta ne zaman algılamak istiyorsunuz?

Tabii ki kod olduğu gibi, her tikte bunu algılar.

 
angevoyageur :

Merhaba Doktor,

Amacınıza bağlı, üzgünüm ama benim için net değil. 2 ema çaprazını algılıyorsunuz, ancak bu çarpıyı her çubukta ne zaman algılamak istiyorsunuz?

Tabii ki kod olduğu gibi, her tikte bunu algılar.

İyi akşamlar Alain,

ea her bir onay işaretini (olduğu gibi) kontrol etmelidir, ancak 2 tamsayıyı (touchx ve öncekitouchx) yalnızca sinyal değiştiğinde değiştirmelidir... bunun gibi:

misal:

1. tik

dokunmax =3; öncekidokunmax=-1 (-1 çünkü önceki veri yok)

2. tik

dokunmax =5; öncekidokunmax=3

3. tik

dokunmax =5; öncekidokunmax=3

vb.