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

 
beynimi yırttı

Space :

...bir birim euro için daha az dolar vermeye başlıyorlar, bu euronun daha pahalı hale geldiği anlamına mı geliyor? O zaman neden her yerde düşüyor diyorlar?

... bir kg domates için daha az ruble vermeye başladılar, domateslerin daha pahalı hale geldiği ortaya çıktı mı? O zaman neden her yerde ucuzladıklarını söylüyorlar?
 
iMAG :
Netlik için, atama operatöründen sonra GetLastError()'a bakmayı deneyin - bu, arızaya yardımcı olacaktır. En azından yukarıdaki örnekte her şey harika çalışıyor. ;)


int init()
{
//----
// ben = 0;
çift s[10] = {,,,3,4,5,6,7,8,9};
int ben = 0;

süre(i < 10)
{
s[i] = ben + 10;
ben++;
Print("s[i]: ", DoubleToStr(s[i], 2), " i: ", i, " GetLastError(): ", GetLastError());

Uyku(5000);
}

//----

dönüş(0);
}

İşte iyi bir örnek: hiçbir değer (i + 10) atanmamış. Böyle bir başlatma ile, yalnızca bir dizi sipariş yoluyla - sırlar nelerdir?


 

Stepan2

İşler

 int init()
  {
//----
double s[ 11 ];
// i = 0;
int i = 0 ;

while (i < 10 )
{
s[i] = i* 10 ;
i++;
Print ( "s[i]: " , DoubleToStr (s[i], 2 ), " i: " , i, "   GetLastError(): " , GetLastError ());

Sleep ( 5000 );
}

   return ( 0 );
  }

 
GaryKa :
Beynimi yırttım ... bir kg domates için rubleden daha az vermeye başladılar, domateslerin daha pahalı hale geldiği ortaya çıktı? O zaman neden her yerde ucuzladıklarını söylüyorlar?


Onlar. dolar, payda veya paydada olsun, her zaman PARA'dır (ana dallarda bile), gerisi "METAL" dir.

Bu şekilde mi çalışıyor?

Peki ya haçlar? Bir haç oluştururken neyin neye bölüneceğini nasıl anlayabilirim?

Onlar. Neden bir para birimi mutlaka payda, diğeri paydada ve diğeri değil?

 
r772ra :

Stepan2

İşler


Bununla ne demek istiyorsun?

NE terminal ARACI bağlıdır!

 
Space :


Onlar. dolar, payda veya paydada olsun, her zaman PARA'dır (ana dallarda bile), gerisi "METAL" dir.

Bu şekilde mi çalışıyor?

Peki ya haçlar? Bir haç oluştururken neyin neye bölüneceğini nasıl anlayabilirim?

Onlar. Neden bir para birimi mutlaka payda, diğeri paydada ve diğeri değil?


Öğrenme süreci aşağıdaki gibidir:

BÖLÜM - sıralı ama ters

JUMP - Eylem Komut Dosyası

 
Stepan2 :


Bununla ne demek istiyorsun?

NE terminal ARACI bağlıdır!

Bir komisyoncu için bir şey söylemeyeceğim, bir komisyoncuyla olması pek olası değil

Ve kod için, belki yanılıyorum

bir dizi ilan ettin ve onu doldurdun

 double s[ 10 ] = {,,, 3 , 4 , 5 , 6 , 7 , 8 , 9 }; 

ve size bu sayıları gösterir, evet çift ise, 1.0, 2.0, vb.

Benim durumumda

 double s[ 11 ];

Evet hata olmaması için biraz daha ihtiyacı var (4002)

ve bir döngü içinde doldurulur, vay, evet che, ben bile anlamadım ...... sadece bir dizi siparişle .....

 

Sevgili söyle bana.Bir pencerede ve bir ölçekte iki MACD (Macd1 ve Macd2) yerleştirdim.Her MACD'nin max ve min'ini sadece gösterge penceresinde görünen grafik değerleri arasında buluyorum.Yorumda gösteriyorum ( ) Her şey çalışır, ancak ilk çubuktan yalnızca sinyal hatları oluşmaya başlar, yani. Onlar tüm pencereyi doldurana kadar beklemek zorundayım.Bu problem nasıl çözülür?Ve bir şekilde beceriksiz kodumu optimize etmek mümkün mü?

  
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Aqua
#property indicator_color4 DarkOrange
#property  indicator_width1  2
#property  indicator_width3  2
//--- buffers
double Macd1Buffer[];
double Signal1Buffer[];
double Macd2Buffer[];
double Signal2Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Macd1Buffer);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,Signal1Buffer);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,Macd2Buffer);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,Signal2Buffer);
   
   IndicatorDigits(Digits);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   Comment("");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {   
      double max1=-0.01,min1=0.01,
             max2=-0.01,min2=0.01,
             max_M1=-0.01,min_M1=0.01,
             max_M2=-0.01,min_M2=0.01,
             max_S1=-0.01,min_S1=0.01,
             max_S2=-0.01,min_S2=0.01;
             
       
 
   int bars_counted=WindowBarsPerChart()-1,
       limit;  
       limit=bars_counted;       


      
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
   

   { 
     Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i);
  
           max_M1=MathMax(Macd1Buffer[i],max_M1);
           min_M1=MathMin(Macd1Buffer[i],min_M1);
  
      Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i);
 
           max_S1=MathMax(Signal1Buffer[i],max_S1);
           min_S1=MathMin(Signal1Buffer[i],min_S1);         
             
           max1=MathMax(max_M1,max_S1);
           min1=MathMin(min_M1,min_S1);
             
   }          
            
      
//---- done
   //---- macd counted in the 3-st buffer   
   for(i=0; i<limit; i++) 
      
   { 
     
      Macd2Buffer[i]=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i);
 
          
           max_M2=MathMax(Macd2Buffer[i],max_M2);
           min_M2=MathMin(Macd2Buffer[i],min_M2);
           
   
      Signal2Buffer[i]=iMAOnArray(Macd2Buffer,Bars,9,0,MODE_SMA,i);

           max_S2=MathMax(Signal2Buffer[i],max_S2);
           min_S2=MathMin(Signal2Buffer[i],min_S2);  
         
           max2=MathMax(max_M2,max_S2);
           min2=MathMin(min_M2,min_S2);    
   }      
      
//---- done 
   
 
      Comment( "\n"," Баров = ",WindowBarsPerChart()-1,
               "\n"," max_M1 = ",max_M1,
               "\n"," min_M1 = ",min_M1,
               "\n"," max_S1 = ",max_S1,
               "\n"," min_S1 = ",min_S1,
               "\n"," max_M2 = ",max_M2,
               "\n"," min_M2 = ",min_M2,
               "\n"," max_S2 = ",max_S2,
               "\n"," min_S2 = ",min_S2,
               "\n"," max1 = ",max1,
               "\n"," min1 = ",min1,    
               "\n"," max2 = ",max2,
               "\n"," min2 = ",min2);
         
             
         
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
MK07 :

Sevgili söyle bana.Bir pencerede ve bir ölçekte iki MACD (Macd1 ve Macd2) yerleştirdim.Her MACD'nin max ve min'ini sadece gösterge penceresinde görünen grafik değerleri arasında buluyorum.Yorumda gösteriyorum( ) Her şey çalışır, ancak ilk çubuktan yalnızca sinyal hatları oluşmaya başlar, yani. Onlar tüm pencereyi doldurana kadar beklemek zorundayım.Bu problem nasıl çözülür?Ve bir şekilde beceriksiz kodumu optimize etmek mümkün mü?

Her arabelleği ayrı bir döngüde deneyin.
 
r772ra :
Her arabelleği ayrı bir döngüde deneyin.
Evet.
   for ( int i= 0 ; i<limit; i++)
   { 
     Macd1Buffer[i]= iMA ( NULL , 0 , 6 , 0 , MODE_EMA , PRICE_CLOSE ,i)- iMA ( NULL , 0 , 12 , 0 , MODE_EMA , PRICE_CLOSE ,i);
     Macd2Buffer[i]= iMA ( NULL , 0 , 12 , 0 , MODE_EMA , PRICE_CLOSE ,i)- iMA ( NULL , 0 , 26 , 0 , MODE_EMA , PRICE_CLOSE ,i);   
   }          

   for (i= 0 ; i<limit; i++) 
   { 
      Signal1Buffer[i]= iMAOnArray (Macd1Buffer, Bars , 5 , 0 , MODE_SMA ,i);
      Signal2Buffer[i]= iMAOnArray (Macd2Buffer, Bars , 9 , 0 , MODE_SMA ,i);
   }