Hatalar, hatalar, sorular - sayfa 3137

 
Merhaba!
Danışmanı seçilen tüm enstrümanlar için geçmiş üzerinde test ederken , test cihazı sadece döviz çiftleri için sonuç verir ve kripto için "oninit sıfır olmayan kod 1" verir. Bu konuda ne yapılabilir? Kimde vardı?
 
lapundra1 # :
Merhaba!
Danışmanı seçilen tüm enstrümanlar için geçmiş üzerinde test ederken , test cihazı sadece döviz çiftleri için sonuç verir ve kripto için "oninit sıfır olmayan kod 1" verir. Bu konuda ne yapılabilir? Kimde vardı?

123 satırını yorumlayın ve hata ortadan kalkacaktır. Bir telepat olarak söylüyorum :) - çünkü kod yok, yani sadece telepati, başka türlü değil :)

 

Selamlar.

MT5'i terminalde başlatırken bir hata oluşur:

2022.01.03 15:33:30.108 Sanal Barındırma sanal ana bilgisayarların listesi alınamadı [1001] (tls - sertifika zinciri motoru oluşturulamadı)

2022.01.03 15:34:30.945 sinyal '56334871': sinyallerin listesi alınamadı


Ardından, MetaEditor'daki Depoya bağlanmaya çalışırken:

2022.01.03 15:34:39.668 Depolamak projeler listesi isteği 1001 hatasıyla başarısız oldu

2022.01.03 15:34:46.561 Depolamak MQL5 Storage aktivasyonu başarısız oldu [1001]


Aynı zamanda, başka bir bilgisayarda, her şey normal şekilde bağlandı ve değişiklikleri Depoya gönderdi.

Bilgisayarda herhangi bir ağ sorunu algılanmadı, her şey yolunda gidiyor. Son birkaç aydır bilgisayarda "riskli" eylemler de olmadı ve her şey yolunda gitti. 3140 oluşturun.

Hangi yöne kazılacak?


 

Madrid Mahkemesinin Sırları'na bile girmiyorum ve Tanrı, gösterge tutamaçlarının neden 0 veya 1'den değil de 10'dan endekslenmeye başladığını merak etmeme izin vermiyor. Siktir et, bununla hayatta kalacağım.

Kodda aynı göstergenin görünüşte bağımsız iki tutamacı varsa ve ikincisi silinirse, neden sadece ikinci MA'nın değil, birincinin de kaybolduğunu bana daha iyi açıklayabilir misiniz? Yani, tutamaçlardan birinin silinmesi diğerini öldürür. Yardım'dan büyük ölçüde basitleştirilmiş ve iki katına çıkarılmış iMA kodu:

 #property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots    2

#property indicator_label1    "iMA1"
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1

#property indicator_label2    "iMA2"
#property indicator_type2    DRAW_LINE
#property indicator_color2    clrBlue
#property indicator_style2    STYLE_SOLID
#property indicator_width2    1

double iMABuffer1[], iMABuffer2[];
int     handle1, handle2;
int     bars_calculated= 0 ;

int OnInit ()
  {
   SetIndexBuffer ( 0 ,iMABuffer1, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,iMABuffer2, INDICATOR_DATA );

   PlotIndexSetInteger ( 0 , PLOT_SHIFT , 0 );
   PlotIndexSetInteger ( 1 , PLOT_SHIFT , 0 );

   handle1= iMA ( _Symbol , PERIOD_CURRENT , 10 , 0 , MODE_SMA , PRICE_CLOSE );
   handle2= iMA ( _Symbol , PERIOD_CURRENT , 20 , 0 , MODE_SMA , PRICE_CLOSE );

   return ( INIT_SUCCEEDED );
  }

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   int values_to_copy;

   int calculated= BarsCalculated (handle1);
   if (calculated<= 0 ) return ( 0 );

   if (prev_calculated== 0 || calculated!=bars_calculated || rates_total>prev_calculated+ 1 )
       if (calculated>rates_total) values_to_copy=rates_total;
       else                        values_to_copy=calculated;
   else
      values_to_copy=(rates_total-prev_calculated)+ 1 ;

   if (!FillArrayFromBuffer(iMABuffer1, 0 ,handle1,values_to_copy)) return ( 0 );
   if (!FillArrayFromBuffer(iMABuffer2, 0 ,handle2,values_to_copy)) return ( 0 );

   //if(handle2!=INVALID_HANDLE)
   //   Print(IndicatorRelease(handle2));

   bars_calculated=calculated;

   return (rates_total);
  }

bool FillArrayFromBuffer( double &values[],
                         int shift,
                         int ind_handle,
                         int amount
                         )
  {
   if ( CopyBuffer (ind_handle, 0 ,-shift,amount,values)< 0 )
       return ( false );

   return ( true );
  }

void OnDeinit ( const int reason)
  {
   if (handle1!= INVALID_HANDLE )
       IndicatorRelease (handle1);
   if (handle2!= INVALID_HANDLE )
       IndicatorRelease (handle2);
  }

İki satırın yorumunu kaldırırsanız, sonuç olarak hiçbir şey çizilmeyecektir. Beklenen: ilk MA (kırmızı) kalacaktır.

... Ve tek yapmak istediğim hafızamı temizlemekti.

 
x572intraday # :

Madrid Mahkemesinin Sırları'na bile girmiyorum ve Tanrı, gösterge tutamaçlarının neden 0 veya 1'den değil de 10'dan endekslenmeye başladığını merak etmeme izin vermiyor. Siktir et, bununla hayatta kalacağım.

Kodda aynı göstergenin görünüşte bağımsız iki tutamacı varsa ve ikincisi silinirse, neden sadece ikinci MA'nın değil, birincinin de kaybolduğunu bana daha iyi açıklayabilir misiniz? Yani, tutamaçlardan birinin silinmesi diğerini öldürür. Yardım'dan büyük ölçüde basitleştirilmiş ve iki katına çıkarılmış iMA kodu:

İki satırın yorumunu kaldırırsanız, sonuç olarak hiçbir şey çizilmeyecektir. Beklenen: ilk MA (kırmızı) kalacaktır.

... Ve tek yapmak istediğim hafızamı temizlemekti.

En az:

 if (handle2!= INVALID_HANDLE && !FillArrayFromBuffer(iMABuffer2, 0 ,handle2,values_to_copy)) return ( 0 );
 
JRandomTrader # :

En az:

Kontrol ettin mi? Benim için işe yaramadı. Ve sadece birini silmeniz (belleğin serbest bırakılmasıyla) ve diğerini görsel olarak bırakmanız gerekir. Ve mantığınızdan yola çıkarak: ikinci tutamaç varsa ve ikinci arabellek doldurulmadıysa, çıkıyoruz ve IndicatorRelease(handle2) ile hattıma bile ulaşmıyor (kodu doğru yere yerleştirdiysem).

 
   int dim= 5 ;
   int Arr1[ 5 ]; // OK
   int Arr2[dim]; // '[' - invalid index value

Ya tamamen batırdım ya da bir hata değilse, Yardım'a bir keçe çizme soktum.

 
x572intraday # :

Ya sonunda işi batırdım ya da bir hata değilse, Yardım'a bir keçe çizme soktum.

Statik dizinin boyutu bir sabittir, int değil.

 
Valeriy Yastremskiy # :

Statik bir dizinin boyutu bir sabittir, int değil.

Bunun gibi bir vektör tanımlayabilirsiniz, ancak bunlar yalnızca çiftlerdir.

 int n = 5 ;
vector v(n);
v[ 0 ] = 1.2 ;
 
Aleksey Nikolayev # :

Bunun gibi bir vektör tanımlayabilirsiniz, ancak bunlar yalnızca çiftlerdir.

TAMAM. O zaman yeniden boyutlandırsam iyi olur.