MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 568

 
PolarSeaman :

Böyle 3 döngü var, onları değiştirdim, terminal donuyor.

Dört tane saydım:

   int i;

   SetIndexDrawBegin ( 0 , Bars -cb);
   SetIndexDrawBegin ( 1 , Bars -cb);

   double avg;

   ki= 2.0 /(p+ 1 );

   int total;
   int limit = GetRecalcIndex(total,rates_total,prev_calculated);

   for (i=limit; i>= 0 ; i--) 
      fx1[i]= Close [i];

   for ( int m= 0 ; m<=s; m++)
     {
      z1=fx1[ 0 ];
       for (i= 0 ; i<=limit; i++) {z1=z1+(fx1[i]-z1)*ki; hp[i]=z1;}

      z2=fx1[limit];
       for (i=limit; i>= 0 ; i--) {z2=z2+(fx1[i]-z2)*ki; fx1[i]=(hp[i]+z2)/ 2 ;}
     }

   fs= 0 ;
   for (i=limit; i>= 0 ; i--)
     {
       if (fx1[i]>fx1[i+ 1 ]) fs= 1 ;
       if (fx1[i]<fx1[i+ 1 ]) { if (fs== 1 ) fx2[i+ 1 ]=fx1[i+ 1 ]; fs= 2 ;}
       if (fs== 2 ) fx2[i]=fx1[i]; else fx2[i]= 0.0 ;

      avg= iATR ( NULL , 0 ,ATR,i+ 10 );
      upper[i] = hp[i] + distance*avg;
      lower[i] = hp[i] - distance*avg;

       if ( Close [i+ 1 +barsig]<upper[i+ 1 +barsig] && Close [i+barsig]>upper[i+barsig])
         dnar[i]= High [i]+arrots* Point ; else dnar[i]= EMPTY_VALUE ;

       if ( Close [i+ 1 +barsig]>lower[i+ 1 +barsig] && Close [i+barsig]<lower[i+barsig])
         upar[i]= Low [i]-arrots* Point ; else upar[i]= EMPTY_VALUE ;
     }

Hiçbir şey asılı değil. Sınır dışı diziler olmamalıdır. Bence sadece sıfır çubuğundaki değer yanlış hesaplanmış.

 
Ihor Herasko :

Dört tane saydım:

Hiçbir şey asılı değil. Sınır dışı diziler olmamalıdır. Bence sadece sıfır çubuğundaki değer yanlış hesaplanmış.

Teşekkürler, sipariş. Sıfırda ihtiyacım yok, ilk bardan almak istiyorum ama pozisyonlar rastgele açılıyor

sell_1_B= NormalizeDouble ( iCustom ( Symbol (), 0 , "HiLo" , 1 , 1 ), Digits );
sell_1_1_B= NormalizeDouble ( iCustom ( Symbol (), 0 , "HiLo" , 1 , 2 ), Digits );

if (sell_1_1_B== 0.0 &&sell_1_B!= 0.0 )
{открываю sell}
if (sell_1_1_B!= 0.0 &&sell_1_B== 0.0 )
{открываю buy}

niye ya?

 
Ihor Herasko :

Test cihazında, görselleştirmede, bu

ayy

ilk mola, testin başlangıcı, hatalı gösterge, test başladıktan sonra çizelgeye bıraktığımda düz bir çizgi oluşturuyor

ne kırdık )

 

Uzmandaki düğmenin üzerine grafiksel bir aracın "seçimini" nasıl koyacağımı söyle, böylece imlecin altındaki düğmeyi tıklatarak aracın simgesi görünecek ve çekilebilsin mi?

Ayrıca, zaten belirtilen özelliklere sahip olması için

 
PolarSeaman :

Test cihazında, görselleştirmede, bu

ilk mola, testin başlangıcı, hatalı gösterge, test başladıktan sonra çizelgeye bıraktığımda düz bir çizgi oluşturuyor

ne kırdık )

İyi evet. Sonuçta, bu, her bir onay işaretinde belirtilen çubuk sayısı için tüm geçmişi yeniden hesaplayan bir yeniden çizim göstergesidir. Çok kötü bir karar. O zaman şunu yapmanız gerekir:

   int i;

   SetIndexDrawBegin ( 0 , Bars -cb);
   SetIndexDrawBegin ( 1 , Bars -cb);

   double avg;

   ki= 2.0 /(p+ 1 );

   int total;
   int limit = GetRecalcIndex(total,rates_total,prev_calculated);

   for (i=total; i>= 0 ; i--) 
      fx1[i]= Close [i];

   for ( int m= 0 ; m<=s; m++)
     {
      z1=fx1[ 0 ];
       for (i= 0 ; i<=total; i++) {z1=z1+(fx1[i]-z1)*ki; hp[i]=z1;}

      z2=fx1[total];
       for (i=total; i>= 0 ; i--) {z2=z2+(fx1[i]-z2)*ki; fx1[i]=(hp[i]+z2)/ 2 ;}
     }

   fs= 0 ;
   for (i=total; i>= 0 ; i--)
     {
       if (fx1[i]>fx1[i+ 1 ]) fs= 1 ;
       if (fx1[i]<fx1[i+ 1 ]) { if (fs== 1 ) fx2[i+ 1 ]=fx1[i+ 1 ]; fs= 2 ;}
       if (fs== 2 ) fx2[i]=fx1[i]; else fx2[i]= 0.0 ;

      avg= iATR ( NULL , 0 ,ATR,i+ 10 );
      upper[i] = hp[i] + distance*avg;
      lower[i] = hp[i] - distance*avg;

       if ( Close [i+ 1 +barsig]<upper[i+ 1 +barsig] && Close [i+barsig]>upper[i+barsig])
         dnar[i]= High [i]+arrots* Point ; else dnar[i]= EMPTY_VALUE ;

       if ( Close [i+ 1 +barsig]>lower[i+ 1 +barsig] && Close [i+barsig]<lower[i+barsig])
         upar[i]= Low [i]-arrots* Point ; else upar[i]= EMPTY_VALUE ;
     }

Çirkin, elbette, ama işe yarıyor.

 
neden böyle bir yapı değişkenlerin bildiriminde çalışmıyor?
 int K= 20 ;
int TIKET[K];
 
igrok333 :
Bu yapı neden değişken bildirimlerde çalışmıyor?

Çünkü K bir değişkendir. Derleme zamanında değeri bilinmiyor. Çalışması için K'yi sabit yapmanız gerekir:

 #define K 20
int TIKET[K];
 
Ihor Herasko :

İyi evet. Sonuçta, bu, her bir onay işaretinde belirtilen çubuk sayısı için tüm geçmişi yeniden hesaplayan bir yeniden çizim göstergesidir. Çok kötü bir karar. O zaman şunu yapmanız gerekir:

Çirkin, elbette, ama işe yarıyor.

Teşekkür ederim. Çok fazla zaman harcadık ve o, stsuko, 20 (!) Bar çekiyor, belki daha fazla, daha fazla bakmadı.

Dilekçe oluşturalım mı?

Yasak , yasayla, göstergelerin üçten fazla çubuk yeniden çizilmesi dağıtımını!

Parlamento tarafından değerlendirilmesi için yılda toplam 100 bin imza toplanması gerekiyor.

 
PolarSeaman :

Teşekkür ederim. Çok fazla zaman harcadık ve o, stsuko, 20 (!) Bar çekiyor, belki daha fazla, daha fazla bakmadı.

Daha düşük bir cb değeri ayarlayın, daha az yeniden çizim çubuğu olacaktır.

Dilekçe oluşturalım mı?

Yasak , yasayla, göstergelerin üçten fazla çubuk yeniden çizilmesi dağıtımını!

Parlamento tarafından değerlendirilmesi için yılda toplam 100 bin imza toplanması gerekiyor.

)))

 

Danışmana nasıl hariç tutulacağını/belirli bir tarihi nasıl ekleyeceğinizi söyler misiniz?

Örneğin 2 Mart 2018'de işlem yapmayın. Farklı seçenekler denedim, tarihlerle kafam karıştı.

 TimeDayOfYear ( TimeCurrent ()) != StrToTime ( "2018.03.02" )