SORUN KODU - sayfa 3

 
burnssss :
Bu scripti kullanarak tarihsel OHLC, fraktallar ve zikzak göstergesini indirmek istiyorum ama csv'yi açtığımda hiçbir bilgim yok.
Biri bana oradaki hatayı söyleyebilir mi?
 int f= FileOpen (file, FILE_CSV | FILE_WRITE , "," ); 
if (f< 1 ) { Alert ( "File opening error" ); return ( 0 ); }
for ( int i= Bars - 1 ;i <= 0 ;i--){
  FileWrite (f, TimeToStr(Time,TIME_DATE|TIME_MINUTES),
            Open,High,Low,Close ,
            iFractals ( Symbol (), 0 , 1 ,i), iFractals ( Symbol (), 0 , 2 ,i),
            iCustom ( Symbol (), 0 , "ZigZag" , 0 ,i), iCustom ( Symbol (), 0 , "ZigZag" , 1 ,i));
}
  1. FileOpen'daki son argüman bir dize değil, bir int'dir.
  2. FileWrite kullanarak dizi yazamazsınız.
  3. Daha önce bahsedilen döngü
[Silindi]  
OHLC verilerini, fraktal ve zikzak indirmek için kod geliştirdim, ancak büyük miktarda veri nedeniyle, M1'de indirmenin başlayacağı tarihi seçecekti.
[Silindi]  
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   start();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
 
 void export() 
{ 

string file="export_"+Symbol()+"_"+Period()+".csv"; 
int f=FileOpen(file,FILE_CSV|FILE_WRITE,","); 
if(f<1) { Alert("File opening error"); return(0); }
for(int i=Bars-1;i<=0;i--)
{
FileWrite(f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close ,iFractals(Symbol(),0,1,i),iFractals(Symbol(),0,2,i),iCustom(Symbol(), 0,"ZigZag",0,i),iCustom(Symbol(),0, "ZigZag",1,i));
}


Alert("Export "+Symbol()+" finished. Exported: "+Bars+" records");  
FileFlush(f); 
FileClose(f); 
}

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
export();

//----
//Alert(ArraySize(norepeats) + ArraySize(morerepeats));
   return(0);
 }
//+------------------------------------------------------------------+
 
burnssss :
OHLC verilerini, fraktal ve zikzak indirmek için kod geliştirdim, ancak büyük miktarda veri nedeniyle, M1'de indirmenin başlayacağı tarihi seçecekti.
 for ( int i= Bars - 1 ;i<= 0 ;i--)
{
FileWrite (f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close , iFractals ( Symbol (), 0 , 1 ,i), iFractals ( Symbol (), 0 , 2 ,i), iCustom ( Symbol (), 0 , "ZigZag" , 0 ,i), iCustom ( Symbol (), 0 , "ZigZag" , 1 ,i));
}

Peki Bars-1'den yazmaya başlamamak için ne yapmanız gerekiyor?

zaman çubuğu i> tarihiniz filewrite ise bir koşul yapın ....

[Silindi]  
deVries :

Entonces, ¿qué hay que hacer no es empezar a escribir de Bares-1

FILEWRITE ....


anlamıyorum çünkü mql4'te amatörüm. Bana bir örnek verebilir misin?

İhtiyacım olan şey, örneğin 1971'den veri indirmeye başlamak yerine, 2009'da indirmeye başlamak.

 
burnssss :


anlamıyorum çünkü mql4'te amatörüm. Bana bir örnek verebilir misin?

İhtiyacım olan şey, örneğin 1971'den veri indirmeye başlamak yerine, 2009'da indirmeye başlamak.


bir mumun zamanını nasıl elde edersiniz?

 if (Time[i]>= D'2004.01.01 00:00' ) FileWrite (f,TimeToStr(Time,TIM.......                                         // New Year'2004
[Silindi]  
13'ün zikzağını almak için değişmesi gereken kodun aşağıdaki bölümünde?

İndirdiğim zikzak parametresinin 12 olduğunu ve zikzak parametresi 13'ü indirmek istediğimi not ediyorum.

 for ( int i= Bars - 1 ;i<= 0 ;i--)
{
FileWrite (f,TimeToStr(Time,TIME_DATE|TIME_MINUTES),Open,High,Low,Close , iFractals ( Symbol (), 0 , 1 ,i), iFractals ( Symbol (), 0 , 2 ,i), iCustom ( Symbol (), 0 , "ZigZag" , 0 ,i), iCustom ( Symbol (), 0 , "ZigZag" , 1 ,i));
}

Çok teşekkürler

[Silindi]  

İyi,

soruma bir çözüm?

çok teşekkürler

 
burnssss : İndirdiğim zikzak parametresinin 12 olduğunu ve zikzak parametresi 13'ü indirmek istediğimi not ediyorum
HİÇBİR parametreyi zikzağa geçirmiyorsunuz. Varsayılanları istemiyorsanız, üçünü de iletin. iCustom - MQL4 forumunun ayrıntılı açıklaması
[Deleted]  

Bunu deneyin, iyi çalışıyor gibi görünüyor.

Bu uzmanı geriye dönük test ettikten sonra, yazılı dosyayı metatrader/tester/files klasörünüzde bulacaksınız.

Uyarı! Ben bir programcı değilim, bu yüzden bu hata çalışan kod parçaları içerebilir. :)

 //+------------------------------------------------------------------+
//|                                                        burns.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link       "https://www.metaquotes.net"

/*
if this mode parameter is zero, the indicator values of the previous bar 
will be written to file, instead of their last known positon
*/
extern int mode= 1 ;
int bartime;
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit(){
 Alert ( "Export " + Symbol ()+ " finished. Exported: " + Bars + " records" );  
 return ( 0 );
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start() {
 if(bartime==Time[0]) return(0);
 bartime=Time[0];
 double value[ 7 ];
 string file= "export_" + Symbol ()+ "_" + Period ()+ ".csv" ; 
 int f= FileOpen (file, FILE_CSV | FILE_READ | FILE_WRITE , "," ); 
 if (f< 0 ) { Alert ( "File opening error" ); return ( 0 );}
 
 value[ 0 ]=Open[ 1 ];
 value[ 1 ]=High[ 1 ];
 value[ 2 ]=Low[ 1 ];
 value[ 3 ]=Close[ 1 ];
 
 if (mode!= 0 ) {
  value[ 4 ]=lastfrup();
  value[ 5 ]=lastfrdn();
  value[ 6 ]=lastzz();
 }
 else {
  value[ 4 ]= iFractals ( NULL , 0 ,MODE_UPPER, 1 );
  value[ 5 ]= iFractals ( NULL , 0 ,MODE_LOWER, 1 );
  value[ 6 ]= iCustom ( NULL , 0 , "ZigZag" , 12 , 5 , 3 , 0 , 1 );
 }
 
 string sum=TimeToStr(Time[ 1 ],TIME_DATE|TIME_MINUTES);
 for ( int j= 0 ; j< 7 ; j++) {
  sum=sum+ "," +DoubleToStr(value[j], Digits );
 }
 FileSeek (f, 0 , SEEK_END );
 FileWrite (f,sum);
 FileClose (f);
 return ( 0 );
}
//+------------------------------------------------------------------+
double lastfrup() {
 for ( int i= 1 ; i< Bars - 1 ; i++) {
   if ( iFractals ( NULL , 0 ,MODE_UPPER,i)!= 0 ) break ;
 }
 return ( iFractals ( NULL , 0 ,MODE_UPPER,i));
}
//+------------------------------------------------------------------+
double lastfrdn() {
 for ( int i= 1 ; i< Bars - 1 ; i++) {
   if ( iFractals ( NULL , 0 ,MODE_LOWER,i)!= 0 ) break ;
 }
 return ( iFractals ( NULL , 0 ,MODE_LOWER,i));
}
//+------------------------------------------------------------------+
double lastzz() {
 for ( int i= 1 ; i< Bars - 1 ; i++) {
   if ( iCustom ( NULL , 0 , "ZigZag" , 12 , 5 , 3 , 0 ,i)!= 0 ) break ;
 }
 return ( iCustom ( NULL , 0 , "ZigZag" , 12 , 5 , 3 , 0 ,i));
}