Hatalar, hatalar, sorular - sayfa 917

 
Konstantin83 :

Bir dosyayı csv formatında kaydederken veriler sütunlara bölünmez. Standart örnekteki komut dosyası bile tüm verileri tek bir sütunda görüntüler.

Ayırıcıyı belirtin:

filehandle= FileOpen ( "fractals.csv" , FILE_WRITE | FILE_CSV , "," );
 
tol64 :

Ayırıcıyı belirtin:

Yardım etmedi. Excel'de açarken dosya formatının bilinmediğini ve ayrıca sütunlara ayırmadığını yazdım. Ancak ayırıcıyı belirtmezseniz ve dosya uzantısını belirtmezseniz, o zaman aynı zamanda biçimin bilinmediğini, ancak metnin sütunlarda attığını söylüyor ...
 
Konstantin83 :
Yardım etmedi. Excel'de açarken dosya formatının bilinmediğini ve ayrıca sütunlara ayırmadığını yazdım. Ancak ayırıcıyı belirtmezseniz ve dosya uzantısını belirtmezseniz, o zaman aynı zamanda biçimin bilinmediğini, ancak metnin sütunlarda attığını söylüyor ...

İşte başka yapmanız gerekenler:

filehandle= FileOpen ( "fractals.csv" , FILE_WRITE | FILE_CSV | FILE_ANSI , "," );
 
Sinyallerdeki grafiklerle ilgili bir tür aksaklık. Yoksa sadece ben mi?
 

Bir satır arabelleği olacak bir gösterge oluşturmak mümkün mü, örneğin, bir kapat[] satırı ve sol üstte görüntülenen bir yorum? En basit örneği yapmaya çalıştım, böylece terminalim asıldı

 #property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot Histogram
#property indicator_label1   "1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1   2
double MAbuf1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   ChartGetInteger ( 0 , CHART_VISIBLE_BARS );
   SetIndexBuffer ( 0 ,MAbuf1, INDICATOR_DATA );
   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[])
  {
//--- вычисления значений индикатора
   int start= 0 ;
//--- если расчет уже производился на предыдущем запуске OnCalculate
   if (prev_calculated> 0 ) start=prev_calculated- 1 ; // установим начало расчетов с предпослденего бара
//--- заполняем индикаторный буфер значениями
   for ( int i=start;i<rates_total;i++)
     {
       //----------------------Обнуляем буферы
      MAbuf1[i]= 0 ;
      MAbuf1[i]=close[i];
       Comment ( "Work" );


     }
//--- вернем значение prev_calculated для следующего вызова функции
   return (rates_total);
  }
 
Yorumu döngüden çıkarın - daha iyi hissettirmeli.
 
Dima_S :
Yorumu döngüden çıkarın - daha iyi hissettirmeli.
Teşekkür ederim, sistemi bu kadar yükleyeceğini düşünmemiştim.
 
Gösterge dosyalarına #resource seçeneği ne zaman uygulanacak? Belki biri bilir? Gerçekten tüm projeyi tek bir .ex5 dosyasında birleştirmek istiyorum.
 
MoneyJinn :
Gösterge dosyalarına #resource seçeneği ne zaman uygulanacak? Belki biri bilir? Gerçekten tüm projeyi tek bir .ex5 dosyasında birleştirmek istiyorum.
Görünüşe göre böyle bir fırsat vaat ettiler, ancak zamanlamasını söylemediler.
 

Lütfen ikinci arabelleğin (etiket2) neden sıfır olduğunu açıklayın

 #property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot Label1
#property indicator_label1   "Label1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1   1
//--- plot Label2
#property indicator_label2   "Label2"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrWhite
#property indicator_style2  STYLE_SOLID
#property indicator_width2   1
//--- indicator buffers
double ExtLineBuffer[];
double ExtLineBuffer2[];
int     InpMAPeriod= 13 ;         // Period
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,ExtLineBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,ExtLineBuffer2, INDICATOR_DATA );
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , 0.0 );
   
//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[])
  {
//--- check for bars count
   if (rates_total<InpMAPeriod- 1 +begin)
       return ( 0 ); // not enough bars for calculation
//--- first calculation or number of bars was changed
   if (prev_calculated== 0 )
       ArrayInitialize (ExtLineBuffer, 0 );
//--- sets first bar from what index will be draw
      InpMAPeriod= 20 ;
   int i,limit;
//--- first calculation or number of bars was changed
   if (prev_calculated== 0 ) // first calculation
     {
      limit=InpMAPeriod+begin;
       //--- set empty value for first limit bars
       for (i= 0 ;i<limit- 1 ;i++) ExtLineBuffer[i]= 0.0 ;
       //--- calculate first visible value
       double firstValue= 0 ;
       for (i=begin;i<limit;i++)
         firstValue+=price[i];
      firstValue/=InpMAPeriod;
      ExtLineBuffer[limit- 1 ]=firstValue;
       //ExtLineBuffer[i]=1;
     }
   else limit=prev_calculated- 1 ;
//--- main loop
   for (i=limit;i<rates_total && ! IsStopped ();i++)
   ExtLineBuffer[i]=ExtLineBuffer[i- 1 ]+(price[i]-price[i-InpMAPeriod])/InpMAPeriod;
   ExtLineBuffer2[i]=ExtLineBuffer[i];
//--- return value of prev_calculated for next call
   Comment (ExtLineBuffer[rates_total- 1 ]);
   return (rates_total);
  }
//+------------------------------------------------------------------+

1) Herhangi bir nedenle, OnCalculate işleviyle ayrı kapatma, açma vb. çoklu tamponlarda sorun yok

2) Memnuniyetle kullanırdım ama içine hareketli ortalama hesaplama algoritmasını koyamam ki yukarıdaki kodda

ExtLineBuffer2[i], sabitler dahil farklı değerler atamaya çalıştı - her zaman sıfır