Hatalar, hatalar, sorular - sayfa 59

 
Renat :

Neyse ki, eski yapılandırmaların sorunu geride kaldı. 50 yapı önce çok uzun bir süre ve kendimize birkaç kez format değiştirme izni verdik.

Brokerler için yalnızca dağıtılmış dağıtım dağıtım ağı sağladık , aynı zamanda files.metaquotes.net'teki tüm dağıtımların merkezi bir deposunu sağladık - bu, farklı şirketler için yüzlerce dağıtım kopyasını zamanında güncelleme sorununu temelde çözer.

Her durumda, bu sorun için özür dilerim - bunun bir daha olmayacağından eminim.

Ayrıca, bilinen erişim noktalarına bağlantılar başarısız olduğunda, aracının alım satım sunucularını otomatik ve güvenli bir şekilde aramak için artık daha da gelişmiş bir yöntem uygulayacağız. Bu, çalışan erişim noktalarının listelerinin yayınlanmasıyla ilgili sorunu temelden çözecektir.

Tanrıya şükür Alpari halletti, görünüşe göre şimdi 291 sürümü sitede mevcut.Amiral pazarların eski sürümü sitede tutmaya değmeyeceğini açıklaması kaldı - genellikle 7 mb ağırlığında 237 sürüm var ... :)
 
EQU :

Beyler, imleç ne olacak .. Kesinlikle - F7'de çöküyor ..

Hosanna yerine - sadece kelimeler..

ve kısayol tuşları - pliz - geri .. kolay .. bir alışkanlık - yıllarca çizildi ..


Kısayol tuşlarına gelince, kabul edildi. Bir görev var.

İmleç biraz daha zor. Şu ana kadar belirttiğiniz işlemlerde dahi gözlemlenmedi.

 

Böyle bir durumum var, bir gösterge yazdım , başlatıyorum, terminal çöküyor. bu hatayı yazıyor

2010.07.22 13:43:55 StandardDeviationChannel (EURUSD,M1) Dizi 'StandardDeviationChannel.mq5' içinde aralık dışında (114,51)

Nerede hata yaptığımı anlayamıyorum, mantıksal olarak, her şeyi doğru kaydetmiş gibiyim, MACD göstergesinden standart özel göstergeler setindeki ...\MQL5\Indicators\ örneğinden bir örnek aldım. Örnekler klasörü

 //+------------------------------------------------------------------+
//|                                     StandardDeviationChannel.mq5 |
//|                                                    Сергей Грицай |
//|                                               sergey1294@list.ru |
//+------------------------------------------------------------------+
#property copyright "Сергей Грицай"
#property link       "sergey1294@list.ru"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_plots   3
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_type3   DRAW_LINE
#property indicator_color1  DodgerBlue
#property indicator_color2  DodgerBlue
#property indicator_color3  Blue
#property indicator_style3  STYLE_DOT

input int                 InpMAPeriod= 14 ;               // Period
input int                 InpMAShift= 0 ;                 // Shift
input ENUM_MA_METHOD      InpMAMethod= MODE_SMA ;         // Method
input ENUM_APPLIED_PRICE InpAppliedPrice= PRICE_CLOSE ; // Applied price
input int                 InpDeviation= 2.0 ;             // Deviation
//--- indicator buffers
double                    ExtUpBuffer[];
double                    ExtDownBuffer[];
double                    ExtMiddBuffer[];
double                    ExtMABuffer[];
double                    ExtStdDevBuffer[];
//--- indicator handle
int                       ExtMAHandle;
int                       ExtStdDevMAHandle;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
   SetIndexBuffer ( 0 ,ExtUpBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,ExtDownBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,ExtMiddBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 3 ,ExtMABuffer, INDICATOR_CALCULATIONS );
   SetIndexBuffer ( 4 ,ExtStdDevBuffer, INDICATOR_CALCULATIONS );
   
   PlotIndexSetInteger ( 0 , PLOT_DRAW_BEGIN ,InpMAPeriod- 1 );
   PlotIndexSetInteger ( 1 , PLOT_DRAW_BEGIN ,InpMAPeriod- 1 );
   PlotIndexSetInteger ( 2 , PLOT_DRAW_BEGIN ,InpMAPeriod- 1 );


   ExtMAHandle= iMA ( NULL , 0 ,InpMAPeriod, 0 ,InpMAMethod,InpAppliedPrice);
   ExtStdDevMAHandle= iStdDev ( NULL , 0 ,InpMAPeriod, 0 ,InpMAMethod,InpAppliedPrice);
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---
//--- return value of prev_calculated for next call
   if (rates_total<InpMAPeriod)
       return ( 0 );
//--- not all data may be calculated
   int calculated= BarsCalculated (ExtMAHandle);
   if (calculated<rates_total)
     {
       Print ( "Not all data of ExtMAHandle is calculated (" ,calculated, "bars ). Error" , GetLastError ());
       return ( 0 );
     }
   calculated= BarsCalculated (ExtStdDevMAHandle);
   if (calculated<rates_total)
     {
       Print ( "Not all data of ExtStdDevMAHandle is calculated (" ,calculated, "bars ). Error" , GetLastError ());
       return ( 0 );
     }
//--- we can copy not all data
   int to_copy;
   if (prev_calculated>rates_total || prev_calculated< 0 ) to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
       if (prev_calculated> 0 ) to_copy++;
     }
//--- get MA buffer
   if ( CopyBuffer (ExtMAHandle, 0 , 0 ,to_copy,ExtMABuffer)<= 0 )
     {
       Print ( "Getting fast MA is failed! Error" , GetLastError ());
       return ( 0 );
     }
//--- get StdDev buffer
   if ( CopyBuffer (ExtStdDevMAHandle, 0 , 0 ,to_copy,ExtStdDevBuffer)<= 0 )
     {
       Print ( "Getting slow StdDev is failed! Error" , GetLastError ());
       return ( 0 );
     }
//---
   int limit;
   if (prev_calculated== 0 )
      limit= 0 ;
   else limit=prev_calculated- 1 ;
//--- the main loop of calculations
   for ( int i=limit;i<rates_total;i++)
     {
      ExtMiddBuffer[i]=ExtMABuffer[i];
      ExtUpBuffer[i]=ExtMABuffer[i]+(InpDeviation*ExtStdDevBuffer[i]);
      ExtDownBuffer[i]=ExtMABuffer[i]-(InpDeviation*ExtStdDevBuffer[i]);
     }
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
sergey1294 :

Böyle bir durumum var, bir gösterge yazdım, başlatıyorum, terminal çöküyor. bu hatayı yazıyor

2010.07.22 13:43:55 StandardDeviationChannel (EURUSD,M1) Dizi 'StandardDeviationChannel.mq5' içinde aralık dışında ( 114,51 )

Ekli kod satırında 114 ve 51 konumlarının nerede olduğunu belirtin.
 
ExtUpBuffer[i]=ExtMABuffer[i]+(InpDeviation* E xtStdDevBuffer[i]);
kırmızıyla vurgulanmış
 
sergey1294 :
kırmızıyla vurgulanmış

Görünüşe göre, to_copy'niz açıkça Rate_total'dan daha az.
 
mql5 :
Görünüşe göre, to_copy'niz açıkça Rate_total'dan daha az.

Evet, to_copy=1.
 
Rosh :
Evet, to_copy=1.

ve bu nasıl düzeltilebilir? bire eşitse, neden bu satırları kaldırdığınızda

      ExtUpBuffer[i]=ExtMABuffer[i]+(InpDeviation*ExtStdDevBuffer[i]);
      ExtDownBuffer[i]=ExtMABuffer[i]-(InpDeviation*ExtStdDevBuffer[i]);

sonra gösterge çalışmaya başlar ve MA'yı mükemmel bir şekilde çizer

 
sergey1294 :

ve bu nasıl düzeltilebilir? bire eşitse, neden bu satırları kaldırdığınızda

sonra gösterge çalışmaya başlar ve MA'yı mükemmel şekilde çizer


belirttiniz

#property indicator_buffers 4

ama koymak

   SetIndexBuffer ( 0 ,ExtUpBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,ExtDownBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,ExtMiddBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 3 ,ExtMABuffer, INDICATOR_CALCULATIONS );
   SetIndexBuffer ( 4 ,ExtStdDevBuffer, INDICATOR_CALCULATIONS );
 
mql5 :
belirttiniz

#property indicator_buffers 4

ama koymak

Çok teşekkür ederim, böyle bir önemsemedim, şimdi her şey yolunda