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

 

Merhaba. Bir tanımlayıcı yazarken bir sorun vardı, genel olarak, arabellekler için bir dizi var,

kütle1

kütle2

Ve dizinin her bir elemanı için verilerin hesaplanması küçük sayılarda gerçekleştirilir, yani 15, 27, 41, 14 vb. değerler elde edilir.

Dizilerin tipini int olarak ayarlarsam ve her bir elemanın üzerinden geçersem, dizinin değerlerinin hesaplanan değerlere karşılık geldiği açıktır, AMA tipi Int ise gösterge çizgileri görüntülenmez. pencere.

Dizi türünü double olarak ayarlarsam, diziye birden fazla değer yazılır, örneğin 21456545454, 43654534532, 24325235232 vb. Hangi hesaplanan değerlere hiç uymuyor.

Sorun ne olabilir?

 

Merhaba!

Anlamama yardım et.

Bir sipariş açmak için basit bir komut dosyası yazdı (MQL4 eğitiminden).

 int start()                                   // Спец. функция start()
  {                                           // Открытие BUY
   OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Bid- 15 * Point ,Bid+ 15 * Point );
   Alert ( GetLastError ());
   return ;                                   // Выход из start()
  }

Bu örnekte 4 karakterli takımlar için kod verilmiştir.

Noktadan sonra 5 rakam olan bir şirkette hesabım var.

Lütfen 5 karakterlik kodu nasıl doğru değiştireceğinizi yazar mısınız?

 
sss2019 : Dizilerin tipini int olarak ayarlarsam ve her elemanın üzerinden geçersem dizi değerlerinin hesaplanan değerlere karşılık geldiği görülür, AMA type Int ise gösterge çizgileri değildir pencerede görüntülenir.

Dizi türünü double olarak ayarlarsam, diziye birden fazla değer yazılır, örneğin 21456545454, 43654534532, 24325235232 vb. Hangi hesaplanan değerlere hiç uymuyor.

Sorun ne olabilir?

Telepatlara dönmelisiniz. Ancak, gerçek sayıları tam sayılara bölerken sorunun tutarsızlıkta olması oldukça olasıdır.
 

Merhaba, lütfen göstergeyi anlamama yardım edin. Buradaki fikir, Amerika seansının Moskova saatiyle 16:00'da açılmasıyla şudur. Herhangi bir zaman diliminde mumun üzerine bir etiket yerleştirilir. Datetime işlevleriyle ilgili sorunlarım var, öğreticiyi birden fazla kez okudum, diğer göstergelere baktım ama yine de anlamadım.

Dosyalar:
exfbtix.mq4  2 kb
 
Yulia :

Merhaba, lütfen göstergeyi anlamama yardım edin. Buradaki fikir, Amerika seansının Moskova saatiyle 16:00'da açılmasıyla şudur. Herhangi bir zaman diliminde mumun üzerine bir işaret yerleştirilir. Datetime işlevleriyle ilgili sorunlarım var, öğreticiyi birden fazla kez okudum, diğer göstergelere baktım ama yine de anlamadım.


#property indicator_chart_window // указываем, что идикатор будет рисоваться в окне, где рисуется график валютной пары
#property indicator_buffers 1 // сколько линий будет рисовать наш индикатор
#property indicator_color1 Lime // какого цвета будет первая линия 
//---- buffers
double Buffer[];

extern int hour = 9 ;

//+------------------------------------------------------------------+
int init()
{
   SetIndexStyle ( 0 , DRAW_ARROW );
   SetIndexArrow ( 0 , 108 );
   SetIndexBuffer ( 0 ,Buffer);  
return ( 0 );
}
//+------------------------------------------------------------------+
int deinit()
{
return ( 0 );
}
//+------------------------------------------------------------------+
int start()
{

int counted_bars= IndicatorCounted (); // сколько баров уже просчитано для начего индикатора
if (counted_bars< 0 ) return (- 1 ); // проверяем ошибки


int i= 0 ;
     while (i< Bars )
         {
         if ( TimeHour (Time[i])==hour)
            {        
            Buffer[i]=High[i]+ 150 * Point ;
            }
         
         i++;
         }

return ( 0 );
}
//+------------------------------------------------------------------+

 
 
Çok teşekkür ederim, ama biraz yanlış, sadece M1, M5, vb. üzerindeki ilk mumda bir etikete ihtiyacım var, tabii ki günlük ve üstü hariç.
 
Reshetov :
Telepatlara dönmelisiniz. Ancak, gerçek sayıları tam sayılara bölerken sorunun tutarsızlıkta olması oldukça olasıdır.


İşte kod

 int lowsum, highsum;
int Mass1[];
int Mass2[];

                         while (start1 < end1 + 1 )
                                {
                                lowsum = lowsum + iVolume ( Symbol (), PERIOD_M1 , start1);
                                start1++;
                                }
                         while (start2 < end2 + 1 )
                                {
                                highsum = highsum + iVolume ( Symbol (), PERIOD_M1 , start2);
                                start2++;
                                }
                        Mass[i] = lowsum;
                        Mass[i] = highsum;
                         Alert (Mass[i], " " , highsum);

Sonuç olarak, uyarı aşağıdaki mesajları görüntüler:

Görünen o ki değişkenin bir değeri var ama bir diziye bir değişkene değer atamak imkansız, problem ne anlamış değilim

 
Yulia :
Çok teşekkür ederim, ama biraz yanlış, sadece M1, M5, vb. üzerindeki ilk mumda bir etikete ihtiyacım var, tabii ki günlük ve üstü hariç.

Senin olduğun gibi, bu yüzden kalır
 
sss2019 :

Görünen o ki değişkenin bir değeri var ama bir diziye bir değişkene değer atamak imkansız, problem ne anlamış değilim

dizinin boyutu nedir?
 
sss2019 :


İşte kod

Sonuç olarak, uyarı aşağıdaki mesajları görüntüler:

Görünen o ki değişkenin bir değeri var ama bir diziye bir değişkene değer atamak imkansız, problem ne anlamış değilim


Dizinin boyutunun belirtilmesi gerekmez mi?