[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 313

 
Ve işte başka bir şey. Dizinin boyutlarından birinde 4 hücrelik bir boyut bildirerek, Buffer_OHLC[4][] öğesini çağıramazsınız - gerçek şu ki, numaralandırma sıfırdan başlar, birden değil. Yani arayabileceğiniz maksimum değer Buffer_OHLC[ 3 ][];
 
drknn :


1. Candles değişkeni hiçbir yerde kullanılmaz.

2. dize

yanlış yazılmış. Bir döngü içinde yer alır - döngünün her yinelemesinde yeni bir Cls değişkeni yaratırsınız. Evet ve orada gerekli değil. yazman yeterli


1. Gösterge üzerindeki çalışmanın tamamlanmadığını belirtmeyi unuttum. Ancak her durumda, bu, bu belirli işlevin çalışmasını hiçbir şekilde etkilememelidir.

2. Başlangıçta yaptım. Ama hata vermeye başlayınca sorunun diziden diziye veri transferinde bir şekilde olabileceğini düşündüm.

 
drknn :

Ve hattı dene

ile ikame edilmiş


Yardım etmedi. Eski hata.
 
drknn :
Ve işte başka bir şey. Dizinin boyutlarından birinde 4 hücrelik bir boyut bildirerek, Buffer_OHLC[4][] öğesini çağıramazsınız - gerçek şu ki, numaralandırma sıfırdan başlar, birden değil. Yani arayabileceğiniz maksimum değer Buffer_OHLC[ 3 ][];


Sıfır hücresi boş kalabilir. Benzer bir örnek ders kitabında anlatılmıştır. Eh, genel olarak, dizinin boyutunu değiştirirken bile hata kaldı.

PS Gösterge, başka bir cihazdan veri almalı ve mevcut olana uygulamalıdır. Belki de bu sorunu çözerken temelde yanlış bir şey yapıyorum?

 
silhouette :


Sıfır hücresi boş kalabilir. Benzer bir örnek ders kitabında anlatılmıştır. Genel olarak, dizinin boyutunu değiştirirken bile hata kaldı.

PS Gösterge, başka bir cihazdan veri almalı ve mevcut olana uygulamalıdır. Belki de bu sorunu çözerken temelde yanlış bir şey yapıyorum?

İki boyutlu bir diziyle doğru çalışmıyorsunuz.

 

1. Birinci dizini ikinci sıralarla değiştirin

2. ArrayResize kullanın

 
silhouette :


Sıfır hücresi boş kalabilir. Benzer bir örnek ders kitabında anlatılmıştır. Genel olarak, dizinin boyutunu değiştirirken bile hata kaldı.

PS Gösterge, başka bir cihazdan veri almalı ve mevcut olana uygulamalıdır. Belki de bu sorunu çözerken temelde yanlış bir şey yapıyorum?


Buffer_OHLC[4][] dizisini bildirdiniz. Ve var olmayan bir dizi hücresine atıfta bulunur, yani Buffer_OHLC[4]][i] - bildirdiğiniz dizide böyle bir hücre yok. Var olan maksimum değer Buffer_OHLC[3][i]'dir.

Açıklığa kavuşturmak için: Dizinin ikinci boyutunda 4 hücre bildirdiniz (sonsuz sayıda sütun içeren bir tablonun 4 satırı diyelim). Numaralandırma sıfırdan başladığı için, erişilebilen ilk satır Buffer_OHLC[0][], ikincisi Buffer_OHLC[1][], üçüncüsü Buffer_OHLC[2][], dördüncüsü Buffer_OHLC[3][ ]. Buffer_OHLC[ 4 ][] dizesi, bildirdiğiniz dizide mevcut değil!

 
Orada, [3,i] i>0 için mevcut değil :)
 

Çok boyutlu dizilerle ilk defa uğraşıyorum :)

teşekkürler drnn ! Yorumunu anlıyorum.

tara :

1. Birinci dizini ikinci sıralarla değiştirin

2. ArrayResize kullanın

Teşekkür ederim! Bir sonuç var. Ancak ArrayResize işlevi ve ilk dizi boyutunun boyutu hakkında da açıklama yapmak istiyorum.

   int counted_bars= IndicatorCounted ();
   int limit= Bars -counted_bars- 1 ;
   if (limit> 1 ) 
      limit= Bars - 1 ;
   
   ArrayResize (Buffer_OHLC,limit- 1 );
   for ( int i=limit; i>= 0 ; i--)
    {
      Buffer_OHLC[i][ 0 ]= iOpen (Smb, Period (),i);
      Buffer_OHLC[i][ 1 ]= iHigh (Smb, Period (),i);
      Buffer_OHLC[i][ 2 ]= iLow   (Smb, Period (),i);
      Buffer_OHLC[i][ 3 ]= iClose (Smb, Period (),i);
      
       if (Line==true)
       {
        Buffer_ind[i]=Buffer_OHLC[i][ 3 ];
       }
    }
   return ( 0 );

Limit-1 kullanırken bir grafik var, ancak 4051 "Geçersiz fonksiyon parametre değeri" hatası çıkıyor.

 
Açılan siparişin barın herhangi bir anında ve bir sonraki siparişin sadece bir sonraki barda açılabilmesi için nasıl yapıldığını biri açıklayabilir mi?