Hatalar, hatalar, sorular - sayfa 1720

 
Karputov Vladimir :

Hata burada yatıyor (tırnak işaretleri arasındaki boşluk):


Ve bu doğru. Şu an çalışıyor. Teşekkür ederim ! :-)
 
Dosya boyutu Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkc 6 Gb'dir. Bu olmamalı.
 
fxsaber :
Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkc dosya boyutu 6 Gb'dir. Bu olmamalı.

Muhtemelen 10. ayda kene verilerinin yapısı değişmiştir (birçok ek bilgi girilmiş olabilir). Veya belki de aktif olarak işlem gören basmakalıp bir semboldür.

Şimdi, böyle bir komut dosyası tarafından istendiğinde:

 //+------------------------------------------------------------------+
//|                                                    CopyTicks.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.01"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int   ticks= 200000000 ;   // количество запрашиваемых тиков
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//--- запросим тики
   int copied= CopyTicks ( _Symbol ,ExTicks, COPY_TICKS_ALL , 0 ,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print ( "Получено тиков: " ,copied, " код ошибки: " , GetLastError ());
   if (copied> 1 )
     {
       Print ( "Тик: " ,ExTicks[ 0 ].time, " bid: " ,ExTicks[ 0 ].bid, " ask: " ,ExTicks[ 0 ].ask, " last: " ,ExTicks[ 0 ].last, " [0]" );
       Print ( "Тик: " ,ExTicks[copied- 1 ].time, " bid: " ,ExTicks[copied- 1 ].bid, " ask: " ,ExTicks[copied- 1 ].ask, " last: " ,ExTicks[copied- 1 ].last, " [" ,copied- 1 , "]" );
     }
   Print ( "Size " ,(( long )copied* sizeof ( MqlTick ))>> 20 , " Mb" );
  }
//+------------------------------------------------------------------+

"Open-Broker" sunucusunda, kene boyutları (ayrıca, 10. ayda - bu nihai değil, keneler indirilmeye devam ediyor)

Veritabanı boyutunu işaretleyin

 2016.10 . 05 07 : 34 : 05.886 Terminal        MetaTrader 5 x64 build 1434 started (MetaQuotes Software Corp.)
2016.10 . 05 07 : 34 : 05.888 Terminal        Windows 10 Pro (x64 based PC), IE 11.00 , UAC, Intel Core i3- 3120 M  @ 2.50 GHz, RAM: 3800 / 8077 Mb, HDD: 57955 / 233310 Mb, GMT+ 02 : 00
2016.10 . 05 07 : 34 : 05.888 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
Dosyalar:
CopyTicks.mq5  2 kb
 
Karputov Vladimir :

Muhtemelen 10. ayda kene verilerinin yapısı değişmiştir (birçok ek bilgi girilmiş olabilir). Ya da belki sadece sembol aktif olarak işlem görmüştür.Şimdi, böyle bir komut dosyası tarafından istendiğinde:

"Open-Broker" sunucusunda, kene boyutları (ayrıca, 10. ayda - bu nihai değil, keneler indirilmeye devam ediyor)

Senaryo

 #define TOSTRING(A) #A + " = " + ( string )(A) + " "

void OnStart ()
{
   MqlTick Ticks[];
  
   const int Amount = CopyTicks ( _Symbol , Ticks, COPY_TICKS_ALL , D'2016.10.01' * 1000 , 1000000000 );
  
   if (Amount > 0 )
     Print (TOSTRING((Amount * sizeof ( MqlTick )) >> 20 ) + "Mb " + TOSTRING(Ticks[ 0 ].time) + TOSTRING(Ticks[Amount - 1 ].time));
}

Boş bir terminalde sonuç (diğer semboller üzerinde çalışmak aynı sonucu verir) (Uzman Danışmanlar ve göstergeler olmadan bir tablo)

 2016.10 . 05 08 : 16 : 56.824 Scripts script Test (Si- 12.16 ,M1) removed
2016.10 . 05 08 : 16 : 56.821 MemoryException 52000000072 bytes not available
2016.10 . 05 08 : 16 : 56.816 Scripts script Test (Si- 12.16 ,M1) loaded successfully
2016.10 . 05 08 : 10 : 10.408 Terminal        RAM: 81 Mb reserved, 491 Mb committed

 
Karputov Vladimir :

Muhtemelen 10. ayda kene verilerinin yapısı değişmiştir (birçok ek bilgi girilmiş olabilir). Veya belki de aktif olarak işlem gören basmakalıp bir semboldür.

Şimdi, böyle bir komut dosyası tarafından istendiğinde:

"Open-Broker" sunucusunda, kene boyutları (ayrıca, 10. ayda - bu nihai değil, keneler indirilmeye devam ediyor)

Yeterli sabrım yoktu - 201610.tkc dosya boyutu 7.5 Gb ile kenelerin indirilmesini kesmeye karar verdim.
 

Dosyayı patlatırsanız, hata yeniden başlatıldıktan sonra bile olacaktır.

1 Ekim'den itibaren 1000 onay talep ederseniz, ilgili tkc dosyası her başlatmadan sonra sürekli olarak büyüyecektir. Kısacası, bu kötü bir böcek.

 
Karputov Vladimir :
Yeterli sabrım yoktu - 201610.tkc dosya boyutu 7.5 Gb ile kenelerin indirilmesini kesmeye karar verdim.

Böcek! Ekim ayına ait tüm bilgiler göstergelerle gösterilir. Ve dosya süresiz olarak büyür.

Yapının kritik bir güncellemesine ihtiyaç var, çünkü çalışmak imkansız - trafikten bahsetmiyorum bile vida tıkanmış.

 

herkese selam

böyle anlaşılmaz bir hatayla karşılaşan

danışman WDOX16'da bir işlem açmaya çalışır, örneğin bir yanıt alır = 0

işlemin başarılı olduğunu yazarken: Sonuç = 0 sembol WDOX16 hacim 1.0 işlem 1 tp 3264,5 sl 3239.5 tip 0 fiyat 3250.0 İşlem başarıyla tamamlandı

ama hiçbir şey açmıyor. ?


 
fxsaber :

Senaryo

Boş bir terminalde sonuç (diğer semboller üzerinde çalışmak aynı sonucu verir) (Uzman Danışmanlar ve göstergeler olmadan bir tablo)

Her zaman bir milyar kene ister misin? Bu sadece dizi için 49 gigabayt. Si-12.16 keneleri Ocak ayından bu ana kadar 15789962 adettir.

Sizinkine dayalı küçük bir komut dosyası, aylara göre onay sayısını sayar.

 void OnStart ()
  {
   MqlTick Ticks[];
   int Amount= CopyTicks ( _Symbol ,Ticks, COPY_TICKS_ALL , D'2016.01.01' * 1000 , ulong ( 100000000 ));
   MqlDateTime str;
   TimeToStruct ((Ticks[ 0 ].time_msc-Ticks[ 0 ].time_msc% 1000 )/ 1000 ,str);
   char m=( char )str.mon;
   long n= StringToTime ( StringFormat ( "01.%d.2016" ,m+ 1 ))* 1000 ;
   int pos= 0 ;
   for ( int i= 0 ;i<Amount;i++)
     {
       if (Ticks[i].time_msc>=n || i==Amount- 1 )
        {
         PrintFormat ( "Month %d: %d ticks, %d Mb" ,m,i- 1 -pos,( sizeof ( MqlTick )*(i- 1 -pos))>> 20 );
         m++;
         n= StringToTime ( StringFormat ( "01.%d.2016" ,m+ 1 ))* 1000 ;
         pos=i;
        }
     }
  }


ve bu sonucu verir

 2016.10 . 05 10 : 31 : 51.249 CalcTick (Si- 12.16 ,M1)   Month 1 : 122413 ticks, 6 Mb
2016.10 . 05 10 : 31 : 51.249 CalcTick (Si- 12.16 ,M1)   Month 2 : 78627 ticks, 3 Mb
2016.10 . 05 10 : 31 : 51.252 CalcTick (Si- 12.16 ,M1)   Month 3 : 758652 ticks, 37 Mb
2016.10 . 05 10 : 31 : 51.253 CalcTick (Si- 12.16 ,M1)   Month 4 : 388578 ticks, 19 Mb
2016.10 . 05 10 : 31 : 51.254 CalcTick (Si- 12.16 ,M1)   Month 5 : 181053 ticks, 8 Mb
2016.10 . 05 10 : 31 : 51.255 CalcTick (Si- 12.16 ,M1)   Month 6 : 408080 ticks, 20 Mb
2016.10 . 05 10 : 31 : 51.257 CalcTick (Si- 12.16 ,M1)   Month 7 : 458366 ticks, 22 Mb
2016.10 . 05 10 : 31 : 51.260 CalcTick (Si- 12.16 ,M1)   Month 8 : 867396 ticks, 43 Mb
2016.10 . 05 10 : 31 : 51.297 CalcTick (Si- 12.16 ,M1)   Month 9 : 10973162 ticks, 544 Mb
2016.10 . 05 10 : 31 : 51.301 CalcTick (Si- 12.16 ,M1)   Month 10 : 1555625 ticks, 77 Mb


İşte diskte nasıl göründüğü


 
Alexey Da :

Her zaman bir milyar kene ister misin? Bu sadece dizi için 49 gigabayt. Si-12.16 keneleri Ocak ayından bu ana kadar 15789962 adettir.

Hayır, sadece bu durumda. Bir trilyon onay talep edersem ve aslında 20 milyondan az onay varsa, o zaman neden bir trilyon için bellek ayırmaya çalışayım?!

Bir trilyon bir marjla. Ama bu çok şey istediğim anlamına gelmiyor. Sadece "belirtilen tarihten beri bana TÜM keneleri ver" diyor.

Sizinkine dayalı küçük bir komut dosyası, aylara göre onay sayısını sayar.

ve bu sonucu verir

İşte diskte nasıl göründüğü

Açılışta deneyler yapıyorsunuz, bende BCS var. Ekranınızın benimkiyle ve Karputov'un ekranıyla (aynı Açılış) hiçbir ilgisi yok - ikisinde de çok daha fazla Ekim-tkc var. Ve büyümeye devam ediyor!