[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 720

 
artmedia70 :
Anlıyorum - siz zaten karara yaklaşıyorsunuz
Karara yaklaşıyorum ... İşte bir köpek gibi akım: Anlıyorum - anlıyorum ama söyleyemem - yani, kodda tasvir edemiyorum))
Belki de beynimin erimeye başladığı sıcaklıktandır)
 
Shuba :
Karara yaklaşıyorum ... İşte bir köpek gibi akım: Anlıyorum - anlıyorum ama söyleyemem - yani, kodda tasvir edemiyorum))
Belki de beynimin erimeye başladığı sıcaklıktandır)
Fraktalları nasıl arıyorsunuz?
 
artmedia70 :
Fraktalları nasıl arıyorsunuz?

Bu işlevle ZIGZAG- FRACTALS göstergesini kullanarak fraktallar arıyorum:

 void GetSignal()
  {
   int UpCount = 0 , DnCount = 0 ;                                         // счетчик пиков ЗЗ
   int i = 0 ;                                                               // счетчик баров
   double ZZFirst = 0 ;                             // Значение первого найденного экстремума
   ArrayInitialize (ZZVUp, 0 );                       // Значения верхних экстремумов зигзага
   ArrayInitialize (ZZVDn, 0 );                         //Значения нижних экстремумов зигзага
  
   while (i < Bars && (UpCount < 2 || DnCount < 2 ))
    {
     double ZZCur = iCustom ( NULL , 0 , "BW ZIGZAG-FRACTALS_2" , 0 ,i);
     if (ZZCur != 0 )                                                   // найден экстремум
      {
       if (ZZFirst != 0 )                             // Это не первый найденный экстремум
        {
         if (ZZCur == High[i] && UpCount < 2 )
          {
          ZZVUp[UpCount] = ZZCur;
          ZZNUp[UpCount] = i;
          UpCount++;
          }         
           if (ZZCur == Low[i] && DnCount < 2 )
            {
            ZZVDn[DnCount] = ZZCur;
            ZZNDn[DnCount] = i;
            DnCount++;
            }         
        }
       else
        ZZFirst = ZZCur; 
      }
    i++;
    } 
   if (i == Bars ) return ;                           // Последний посчитанный бар запоминаем
  
  }
 

Şimdi satırlara eklendi: if(ZZCur == High[i] && UpCount < 2) ve if(ZZCur == Low[i] && DnCount < 2) sonraki fraktalın ilk bulunandan daha yüksek veya daha düşük olup olmadığını kontrol edin.

Bu satırları aldık:

if(ZZCur == Yüksek[i] && ZZCur > ZZFirst && UpCount < 2) ve

if(ZZCur == Düşük[i] && ZZCur < ZZFirst && DnCount < 2)

ama sonunda bir şekilde yetersiz görünüyor :(

Resimde kalın beyaz bir çizgi nasıl olması gerektiğini, ince yeşil bir çizgi ise nasıl olduğunu gösteriyor...


 
Shuba :

Bu işlevle ZIGZAG-FRACTALS göstergesini kullanarak fraktallar arıyorum:

Bu işlevi aramayı deneyin:

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 13.08.2008                                                     |
//|  Описание : Возвращает номер бара фрактала по его номеру.                  |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        ("" или NULL - текущий символ)     |
//|    tf - таймфрейм                       (    0       - текущий ТФ)         |
//|    nf - номер фрактала                  (    0       - последний)          |
//+----------------------------------------------------------------------------+
int GetFractalBar( string sy= "0" , int tf= 0 , int nf= 0 ) {
   if (sy== "" || sy== "0" ) sy= Symbol ();
   double f= 0 ;
   int     i, k=iBars(sy, tf), kf;

   for (i= 2 ; i<k; i++) {
    f= iFractals (sy, tf, MODE_LOWER, i);
     if (f!= 0 ) {
      kf++;
       if (kf>nf) return (i);
    }
    f= iFractals (sy, tf, MODE_UPPER, i);
     if (f!= 0 ) {
      kf++;
       if (kf>nf) return (i);
    }
  }
   Print ( "GetFractalBar(): Фрактал не найден" );
   return (- 1 );
}

İşlev, fraktal çubuk numarasını döndürür. İlk olarak, nf = 0 parametresiyle çağırın - son fraktal bulunacaktır ve daha sonra bu işlevi döngüde çağırın, burada nf = döngü sayacı 1'den ...'e gerektiği gibi. Döngünün gövdesinde, bulunan bir sonraki fraktalın ihtiyacınız olan kriterlere uyup uymadığını kontrol edin ve uygunsa döngüden çıkın. Çalıştıktan sonra, ihtiyacınız olan iki fraktalın çubuklarının numaralarına sahip olacaksınız ve onlarla ne isterseniz yapın.

 
artmedia70 :

Bu işlevi aramayı deneyin:

İşlev, fraktal çubuk numarasını döndürür. İlk olarak, nf = 0 parametresiyle çağırın - son fraktal bulunacaktır ve daha sonra bu işlevi döngüde çağırın, burada nf = döngü sayacı 1'den ...'e gerektiği gibi. Döngünün gövdesinde, bulunan bir sonraki fraktalın ihtiyacınız olan kriterlere uyup uymadığını kontrol edin ve uygunsa döngüden çıkın. Çalıştıktan sonra, ihtiyacınız olan iki fraktalın çubuklarının numaralarına sahip olacaksınız ve onlarla ne isterseniz yapın.


teşekkürler deneyeceğim şimdi
 
Vinin :


Test cihazında mı yoksa demoda mı?

Test cihazında, diğer enstrümanlar için puan 0'a eşit olacaktır.


Koşullar genel olarak açıkça belirlenmiş olmasına rağmen, test cihazının kafasını karıştırmamak için yalnızca bir çifti kontrol etmek test cihazındaydı. Genel olarak, trol kodumdan oldukça rahatsız olduğum için, trolleri çiftler halinde izleme işlevini KimIV'ten aldım. Artık her şey demoda çalışıyor))

Yardımlarınız için hepinize teşekkür ederim, açıklamalarınız çok yardımcı oluyor.

 

Sorun çözüldü gibi ama sorun devam ediyor...

Yeniden kullanım için bir değişken nasıl sıfırlanır?

 

Hiçbir şekilde, bir değişkeni başlatırken, bir parça RAM basitçe tahsis edilir, neden tekrar atayalım? Değişkeni sıfıra ayarlayın ve istediğiniz kadar kullanın. Aslında, sorun nedir? Neden bir değişkeni sıfırla? Bunu yapmak hiç mantıklı değil.

 
ToLik_SRGV :

Neden bir değişkeni sıfırla?



koşul eğer

 for ( int a= 0 ;a< 8 ;a++)

burada bir şeyler yapıyoruz

başka bir koşul varsa

 for ( int a= 0 ;a< 8 ;a++)

başka bir şey yap

Anlam - değişken üretmemek, bir çok koşul ve sayaçtır.