Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 817

 
evillive :

Yardımı okuyabilirsiniz, her şey orada, örneklerle.


teşekkürler
 

Dosya verilerinden bir gösterge çizme fikri vardı.

Bir ders kitabından örnek aldım. Senaryoyu kendim için değiştirdim:

 int start()                             // Спец. функция start
  {
//--------------------------------------------------------------- 2 --
   int Handle,                         // Файловый описатель
       shift,Text;                             // Стиль вертикальной линии
   string File_Name= "News.csv" ,         // Имя файла
          Obj_Name,                     // Bмя объекта
          Instr,                       // Название валюты
          One,Two,                     // 1я и 2я чать названия инстр.
          Str_DtTm;                     // Дата и время события(строка)
   datetime Dat_DtTm;                   // Дата и время события(дата)
//--------------------------------------------------------------- 3 --
   Handle= FileOpen (File_Name, FILE_CSV | FILE_READ , ";" ); // Открытие файла
   if (Handle< 0 )                         // Неудача при открытии файла
     {
       if ( GetLastError ()== 4103 )         // Если файла не существует,..
         Alert ( "Нет файла с именем " ,File_Name); //.. извещаем трейдера 
       else                              // При любой другой ошибке..
         Alert ( "Ошибка при открытии файла " ,File_Name); //..такое сообщ
       PlaySound ( "Bzrrr.wav" );           // Звуковое сопровождение
       return ( 0 );                           // Выход из start()      
     }
//--------------------------------------------------------------- 4 --
   while ( FileIsEnding (Handle)== false ) // До тех пор, пока файловый ..
     {                                 // ..указатель не в конце файла
       //--------------------------------------------------------- 5 --
      Str_DtTm = FileReadString (Handle); // Дата и время события(дата)
      Text     = FileReadString (Handle); // Текст описания события
       //--------------------------------------------------------- 6 --
      Dat_DtTm =StrToTime(Str_DtTm);   // Преобразование типа данных
       //--------------------------------------------------------- 7 --
      shift=iBarShift( NULL , 0 ,Dat_DtTm);
       Alert ( "Время=" , TimeToString (Time[shift]), "Text=" ,Text); 
       if ( FileIsEnding (Handle)== true )   // Файловый указатель в конце
       break ;                         // Выход из чтения и рисования
     }
//--------------------------------------------------------------- 8 --
   FileClose ( Handle );                 // Закрываем файл
   return ( 0 );                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --

" Uyarı " olan satır kaldırılabilir.

Mantıksal olarak, göstergedeki tarihi almanız ve dosya ile karşılaştırmanız ve eşleşirse arabelleğe bir değer atamanız gerekir.

Ancak, bence, verilerin zaten dikkate alındığı dosyanın başlangıcından aramaya başlamak için her çubukta, çok pahalı olacaktır.

Soru, göstergedeki dosyanın işlenmiş satırlarını nasıl düzeltip onları aramaya başlamaktır?

 
Forexman77 :

Tarihlerin "20141231" biçiminde olduğu büyük bir dosya var. Bir dizeyi tarih saat biçimine dönüştürmek için yıl, ay ve gün arasında "YYYY.AA.GG" noktalarına ihtiyacınız vardır.

Bu nasıl yapılabilir?

 string sdt= "20141231"
string dt= StringSubstr (sdt, 0 , 4 )+ "." + StringSubstr (sdt, 4 , 2 )+ "." + StringSubstr (sdt, 6 , 2 )
 
vicmos :

Teşekkürler zaten anladım. Başlangıçta virgülle ayrıldığı dosyayı dönüştürdü. Virgülleri noktalarla değiştirdim ve ardından ikinci sütunu, tüm "uniCSVed" programlarını ekledim.

Şimdi bunu programlı olarak nasıl yapacağımı bileceğim.

Şimdi başka bir titanik görev, bu verilerden nasıl bir gösterge çizilir? Komut dosyası yaptı, her şey doğru şekilde görüntüleniyor.

Ancak göstergede, fren olmaması için, son yinelemede verilerin alındığı satırı bir şekilde hatırlamanız gerekir.

 
Forexman77 :

Teşekkürler zaten anladım. Başlangıçta virgülle ayrıldığı dosyayı dönüştürdü. Virgülleri noktalarla değiştirdim ve ardından ikinci sütunu, tüm "uniCSVed" programlarını ekledim.

Şimdi bunu programlı olarak nasıl yapacağımı bileceğim.

Şimdi başka bir titanik görev, bu verilerden nasıl bir gösterge çizilir? Komut dosyası yaptı, her şey doğru şekilde görüntüleniyor.

Ancak göstergede, fren olmaması için, son yinelemede verilerin alındığı satırı bir şekilde hatırlamanız gerekir.

Bu muhtemelen FileTell( Karşılık gelen açık dosyanın dosya işaretçisinin geçerli konumunu döndürür ) ve FileSeek( Dosya işaretçisinin konumunu belirtilen konuma göre belirtilen bayt sayısı kadar hareket ettirir ) ile mümkündür.
 
evillive :
Bu muhtemelen FileTell( Karşılık gelen açık dosyanın dosya işaretçisinin geçerli konumunu döndürür ) ve FileSeek( Dosya işaretçisinin konumunu belirtilen konuma göre belirtilen bayt sayısı kadar hareket ettirir ) ile mümkündür.

Teşekkür ederim! Ayrıca bu işlevlere dikkat edildi. Ayrıca birde şu var   FileIsLineEnding . Nasıl yapacağımı daha fazla düşüneceğim.

 
lexdemon :
Ve Ticket_of_the_first_order nasıl belirlenir?

OrderTicket() işlevinin değerini bir değişkene atayın . Örneğin: int Ticket= OrderTicket(). Peki ve sonra bu değeri OrderSelect'te kullanın.

OrderSelect(Bilet,SELECT_BY_TICKET); .

Başka bir şekilde mümkündür. Bir bilet tanımlamayalım, sadece numaralandırma yöntemini (SELECT_BY_POS) kullanarak siparişi bulalım.

Almak:

 string Symb=Symbol();

for(i=0;i<=OrdersTotal() ;i++)

   if(OrderSelect(i,SELECT_BY_POS)==true)

 {

   if(OrderSymbol()!=Symb)continue;

   if(OrderType()==OP_BUY)

     {

   break;

     }

   }

}

 

   if(OrderOpenPrice()+10*Point<=Ask)

 OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);

 

 
CJIeCaPb :

OrderTicket() işlevinin değerini bir değişkene atayın. Örneğin: int Ticket= OrderTicket(). Peki ve sonra bu değeri OrderSelect'te kullanın.

OrderSelect(Bilet,SELECT_BY_TICKET); .

Başka bir şekilde mümkündür. Bir bilet tanımlamayalım, sadece numaralandırma yöntemini (SELECT_BY_POS) kullanarak siparişi bulalım.

Almak:

Numaralandırma yöntemi zaten gerçeğe daha yakın
 

Bu yeni başlayanlar için bir konu olduğu için, ben kendi sorumu soracağım ...

1. Teklifleri indirmek için bir yazılım API'si var mı? İdeal olarak istek al/gönder.

2. Geniş erişim için böyle bir şey yoksa, hangi platformların ayrıştırılması en kolay olduğu ve saniyede bir gerçek zamanlı alıntılara erişim sağlayabildiği.

3. Elbette her şeyin üzerine otomasyon yazabilirsiniz. Ama yine de hangi dillerin ve araçların en uygun ve popüler olduğunu bilmek istiyorum?

 
Burada, örneğin, burada https://iqoption.com/us/options/turbo (orada kayıtlı biri varsa) grafik gerçek zamanlı olarak çok iyi görüntülenir. İdeal olarak, ayrıştırılır, ancak FireBug'un betiğin tırnak almak için nereye gittiğini göstermediği bir şey. Orada her saniye grafikte bir nokta çizilir.