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

 
dzhini :
OBJ_LABEL türünde bir grafik nesnenin fiyat koordinatını nasıl belirleyeceğimi söyler misiniz?

OBJPROP_XDISTANCE, OBJPROP_YDISTANCE parametreleriyle ObjectGet kullanın
 

1 soru. Dizinin adı için parantez içinde 10 sayısı belirtilmişse, o dizide 11 eleman vardır.

2 soru. end_set'ten sonra dizide sıfır olmaması gerekir, Allow_set'ten end_set'e kadar tüm yakın fiyatların olması gerekir . ArrayResize'ı doğru yapıyor muyum?

// küresel
fiyat[ 10 ];
int ben = - 1 ;
//----------------------
int başlangıç()
{
if (!TF_F_NewBar()) döndürür ( 0 );
if (Allow_set == true )
{
ben++;
ArrayResize (fiyat, ben); // Fiyat[10] dizisinin fiyat[0] olarak kalacağını anlıyorum (izin veriliyor mu?),
//onlar. dizide sıfırın yazıldığı bir yer
. Yani her adımda (çubuk)

// dizi boyutunu artır
fiyat[i] = Kapat[ 1 ]; // Bu tek diziye sıfır yerine Close[1] yazıyorum. Buna izin verilirse,
// sonra global değişkenlerde minimum dizi fiyatını belirtebilirsiniz[0];

}
if(end_set== doğru )
{
Dizi Veri İşleme ;

ben = -1; // işlemden sonra orijinal konumuna geri dön
}
}

Kodu doğru şekilde koyamadığım için üzgünüm.

 
gince :

1 soru. Dizinin adı için parantez içinde 10 sayısı belirtilmişse, o dizide 11 eleman vardır.


Böyle bir dizi, 0'dan 9'a kadar eleman indekslerine sahip 10 hücre içerir. ilk öğe 0 dizinli hücre 1'de olacaktır, bu nedenle for ifadesinde dizi öğesi üzerinde yineleme 0'dan başlar.

2 soru. end_set'ten sonra dizide sıfır olmaması gerekir, Allow_set'ten end_set'e kadar tüm yakın fiyatların olması gerekir . ArrayResize'ı doğru yapıyor muyum?

Diziye son 10 çubuğun 10 kapanış fiyatını eklemek ister misiniz?

Kodu doğru şekilde koyamadığım için üzgünüm.

Yazdıklarını her zaman düzeltebilirsin, "Düzenle"ye tıklaman yeterli.
 
paladin80 :

Diziye son 10 çubuğun 10 kapanış fiyatını eklemek ister misiniz?

Yazdıklarını her zaman düzeltebilirsin, "Düzenle"ye tıklaman yeterli.


Hayır, 10 değil, ama Allow_set ile end_of_set. Hem 40 hem de 65 olabilir. Dizide end_set'ten sonra sıfır olmaması gerekir.
 
gince :
Hayır, 10 değil, ama Allow_set to end_of_set. Hem 40 hem de 65 olabilir. Dizide end_set'ten sonra sıfır olmaması gerekir.


Her şey yolunda, sadece başlangıçta diziyi bir kerede dinamik olarak ayarlayın:

 double цена[];

...

int init ()

{

…

ArrayResize (цена, 0 );

…

}

int start ()

{

…

}

 
gince :
Hayır, 10 değil, ama Allow_set to end_of_set. Hem 40 hem de 65 olabilir. Dizide end_set'ten sonra sıfır olmaması gerekir.

 double цена[]; // динамический массив
int     начало= 2 ; // 0 (ноль) это текущий, ещё не закрытый бар
int     конец= 45 ;
int     количество;
//---
int init()
  {
   количество=конец-начало; // =43
   ArrayResize (цена, количество); // устанавливается размер массива - 43 ячейки
   return ( 0 );
  }

//---
int start()
  {
     if (!TF_F_NewBar()) return ( 0 );    
     if (Разрешить_набор == true )
    {
       for ( int i= 0 ; i<=количество- 1 ; i++) // заполнить 43 ячейки с индексом от 0 до 42.
                                           // в ячейке 0 будет цена close для бара 2 и т.д.
      цена[i]=Close[i+начало];   
    }
   return ( 0 );
  }
//---
 
paladin80 :

Dizide kaç eleman olması gerektiğini bilmiyorum. Hem 40 hem de 65 olabilir. Tek kelimeyle dinamik bir diziye ihtiyacınız var

 double цена[]; // динамический массив

int i = -1;
//---
int init()
  {
   ArrayResize (цена, 0); // устанавливается размер массива минимальным - 1 ячейка
   return ( 0 );
  }

//---
int start()
  {
     if (!TF_F_NewBar()) return ( 0 );    
     if (Разрешить_набор == true )                // это сигнал по индюку
    {
      //Пришел новый бар и резрешение есть 
      i++ .                                     //увеличиваем индех            
      A rrayResize (цена, i)
      цена[i]=Close[i];   
   }
   if(конец_набора== t rue)   // это сигнал по индюку
   {
      //----
      //работа с массивом
      //----
      Pазрешить_набор == false; 
      i= -1;
//А тут
надо что нибуть делать с бывшим массивом (уменшить, очистить или еще что то)      
   }
   return ( 0 );
 }
//---
 
gince :

Dizide kaç eleman olması gerektiğini bilmiyorum. Hem 40 hem de 65 olabilir. Tek kelimeyle dinamik bir diziye ihtiyacınız var

Diğer taraftan soracağım. Dizi kapanış fiyatlarını neden doldurmanız gerekiyor? double close[] zaten bir dizi kapanış fiyatıdır.
 
paladin80 :
Diğer taraftan soracağım. Dizi kapanış fiyatlarını neden doldurmanız gerekiyor? double close[] zaten bir dizi kapanış fiyatıdır.
Kapalı veya açık olması umurumda değil. En önemli şey, şu andan bugüne olmalarıdır. Sonra filtreliyorum. Filtrasyon bundan böyle tam olarak bu dönemde yapılmalıdır. Dizi filtrelendikten sonra, nasıl çıktığına göre, diğer verilerle başka bir diziyi yeniden oluşturuyorum. Ve zaten son diziyi çiziyorum. Demek ki sordukları bu dizi sadece bir ara dizi.
 
Şimdi, her çubukta diziye yakın bir tane giriyor. Ve eğer bu şekilde toplamazsanız, o zaman hangi çubuktan veri toplayacağımı, döngüyü döndüreceğimi, filtreleyeceğimi bulmam gerekecek. Ve böylece sadece son kalır.