Hatalar, hatalar, sorular - sayfa 661

 

Dizenin uzunluğunda bir dahili sınır var mı ( type string ) veya ne kadar boş bellek var, dizeye bu kadar çok şey doldurulacak mı?

// Soru, OpenCL için program yazma ile bağlantılı olarak ortaya çıktı

Lütfen doğru cevabı belgelere de yansıtın. Ve sonra yardımda hiçbir ipucu yok.

 
MetaDriver :

Dizenin uzunluğunda bir dahili sınır var mı ( type string ) veya ne kadar boş bellek var, dizeye bu kadar çok şey doldurulacak mı?

// Soru, OpenCL için program yazma ile bağlantılı olarak ortaya çıktı

Lütfen doğru cevabı belgelere de yansıtın. Ve sonra yardımda hiçbir ipucu yok.

"\r\n" yeni satır karakteri olmadan, 32768'den biraz daha az bir şey, kabaca söylemek gerekirse, 32000 karakter tam olarak uyuyor,

ve satır besleme ile, yeterli hafıza olduğu sürece, en azından dizeye 2.000.000 soktum, sonra elim yoruldu :)

 
Urain :

"\r\n" yeni satır karakteri olmadan, 32768'den biraz daha az bir şey, kabaca söylemek gerekirse, 32000 karakter tam olarak uyuyor,

ve satır besleme ile, yeterli hafıza olduğu sürece, en azından dizeye 2.000.000 soktum, sonra elim yoruldu :)

Ah teşekkürler, sevindim! İlk defa bana iki lyama yetecek.

// Kafam karıştı: kıçındaki satır besleme de ne? O sadece bir sembol, diğerlerinden daha kötü / daha iyi değil.

// Hayır, sana inanıyorum, sadece genellikle nasıl çalıştığını anlıyorum, ama burada her şey bir şekilde garip ve şaşırtıcı ..

// Neyi ölçtün? Bir dosyada bir davayı kaydetme işlevi değil mi?

:)

 
MetaDriver :

Ah teşekkürler, sevindim! İlk defa bana iki lyama yetecek.

// Sadece kafam karıştı: satır beslemenin bununla ne ilgisi var? O sadece bir sembol, diğerlerinden daha kötü / daha iyi değil.

// Hayır, sana inanıyorum, sadece genellikle nasıl çalıştığını anlıyorum, ama burada her şey bir şekilde garip ve şaşırtıcı ..

// Neyi ölçtün? Bir dosyada bir davayı kaydetme işlevi değil mi?

:)

Büyük olasılıkla, bu dizenin dahili temsilidir, \r\n'den sonra büyük olasılıkla bilgileri depolamak için yeni bir (ek) dizi tahsis edilir.

Emin değilim, MQ'ya sorun.

Tabii ki, kontrol için onu bir dosyaya attım, ama en başından beri çizgi oluştu, uzunluğu Len'den kontrol edildi, kısacası, şu an hatırlamıyorum, uzun zaman önceydi. , ama her şey rütbe sıralamasıydı.

ZZY Ve kaydedilen dizeden kontrol edilen 10 karakteri okumak, çeviri olmadan ~ 32700'den fazla değişkene yazmaz.

 
Urain :

Büyük olasılıkla, bu dizenin dahili temsilidir, \r\n'den sonra büyük olasılıkla bilgileri depolamak için yeni bir (ek) dizi tahsis edilir.

Emin değilim, MQ'ya sorun.

Tabii ki, kontrol için onu bir dosyaya attım, ama en başından beri çizgi oluştu, uzunluğu Len'den kontrol edildi, kısacası, şu an hatırlamıyorum, uzun zaman önceydi. , ama her şey rütbe sıralamasıydı.

ZZY Ve kaydedilen dizeden kontrol edilen 10 karakteri okumak, çeviri olmadan ~ 32700'den fazla değişkene yazmaz.

Tamam, teşekkürler Nikolai. Ve bu arada, Reçel Gününüz Kutlu Olsun..!. Sizinde Reçel Gününüz Kutlu Olsun...!



--

Peki yoldaş stringo ne diyecek ?

 
Maksimum dize uzunluğu 1073741816 karakterdir, ancak x86 (32 bit), bu kadar çok karakter için yeterli belleğe sahip değildir.
 
Valmars :
Sadece bilgisayarın zamanını zaman içinde senkronize etmek gerekir, aksi takdirde fırsatları da kaybedebiliriz.

Her şey başıma geldi. ben seni yanlış anlamışım o zaman )) Tüm geçmişi her zaman doğru şekilde almak için senkronizasyon şu şekilde yapılabilir:

 //+------------------------------------------------------------------+
//| МАКСИМАЛЬНОЕ_ВРЕМЯ                                               |
//+------------------------------------------------------------------+
datetime ChoiceTimeFunction()
  {
   datetime synchro= NULL ;
//---
   synchro=( datetime ) fmax (( double ) TimeTradeServer (),( double ) TimeLocal ());
//---
   if (! MQL5InfoInteger ( MQL5_TESTING ) || ! MQL5InfoInteger ( MQL5_OPTIMIZATION ) || ! MQL5InfoInteger ( MQL5_VISUAL_MODE ))
     {
       Print ( "synchro_time: " ,synchro, "; TimeTradeServer(): " , TimeTradeServer (), "; TimeLocal(): " , TimeLocal ()); return (synchro);
     }
//---
   synchro= TimeCurrent ()+Milliseconds_Ahead;
//---
   Print ( "synchro_time tm+ml_ahead: " ,synchro, "; TimeCurrent(): " , TimeCurrent (), "; Milliseconds_Ahead: " ,Milliseconds_Ahead); return (synchro);
  }
Testçi için şimdiye kadar sadece bir koltuk değneği kaldı ve o zaman bile tüm durumlar için değil. Düzeltene kadar bekliyoruz.
 
tol64 :

Her şey başıma geldi. ben seni yanlış anlamışım o zaman )) Tüm geçmişi her zaman doğru şekilde almak için senkronizasyon şu şekilde yapılabilir:

Testçi için şimdiye kadar sadece bir koltuk değneği kaldı ve o zaman bile tüm durumlar için değil. Düzeltene kadar bekliyoruz.

Hayır, doğru anladın. Sunucu saati bilgisayarın saat dilimine bağlı değildir, herkes için aynıdır ve 'Market Watch'ta kaydedilen son saate eşittir.

Bu sunucuda piyasa kapanışında (ticaretin sonunda), yeni bir haftada bir sonraki piyasa açılana kadar stop tetikleyicisi olmamalıdır. Senin durumunda durum pek öyle görünmüyor. Fiyat teklifleri zaten terminale gelmeyi durdurdu ve hala sunucuda işleniyorlar ve ayarlanan duraklar tetikleniyor. Bazı DC'lerde stoplar piyasa tarafından değil, stopta belirlenen fiyat tarafından tetiklenir. Bu bir piyasa mekanizması değil, bir "mutfak" mekanizmasıdır.

Ve olası işlem atlamaları hakkında söylediğim şey, bu, eğer saatiniz 2 dakika geriyse, o zaman bu son 2 dakika içinde yapılan işlemler, sunucu zamanı esas alınarak hesaplandığından, geçmişe dahil edilmeyecektir. yerel saat ve aynı 2 dakika için geride kalacaktır.

Test cihazına gelince, orada size neyin uymadığı genellikle belirsizdir, çünkü her şey orada modellenmiştir ve yerel, sunucuya eşittir.

 
MetaDriver :

Tamam, teşekkürler Nikolai. Ve bu arada, Reçel Gününüz Kutlu Olsun..!. Sizinde Reçel Gününüz Kutlu Olsun...!

ben çıkardım

Skype ve gece yarısı size bir arkadaşınızın reçel gününü hatırlatacak (reklam olarak :)

Pasta için teşekkürler, hiçbir şey değil, sadece mumları sindirmek bir şekilde zor :o)

 
Valmars :

Hayır, doğru anladın. Sunucu saati bilgisayarın saat dilimine bağlı değildir, herkes için aynıdır ve 'Market Watch'ta kaydedilen son saate eşittir.

Bu sunucuda piyasa kapanışında (ticaretin sonunda), yeni bir haftada bir sonraki piyasa açılana kadar stop tetikleyicisi olmamalıdır. Senin durumunda, durum böyle görünmüyor. Fiyat teklifleri zaten terminale gelmeyi durdurdu ve hala sunucuda işleniyorlar ve ayarlanan duraklar tetikleniyor. Bazı DC'lerde stoplar piyasa tarafından değil, stopta belirlenen fiyat tarafından tetiklenir. Bu bir piyasa mekanizması değil, bir "mutfak" mekanizmasıdır.

Hayır, sunucuda her şey yolunda gitti ( MQ demo hesabı). Yani benim bağlantım kesildiği anda stoplar tetiklendi. Ama bağlandığımda market çoktan kapanmıştı. Piyasa İzleme penceresi, bağlantım kesilmeden önceki son tik saatini kaydetti. İşlemlerin tarihçesini talep ederken , ikinci değer olarak TimeCurrent () belirterek tüm geçmişi almadım. TimeCurrent () için Yardım şunları söylese de:

... Zaman değeri ticaret sunucusunda oluşturulur ve kullanıcının bilgisayarındaki zaman ayarlarına bağlı değildir.

Yani anladığım kadarıyla eğer bir bağlantı varsa bu fonksiyon, piyasa genel bakış penceresindeki enstrümanlardan birinden gelen bir kotasyonun sunucudan son gelişinin değerini, bağlantı kopması ve pazar zaten kapalıyken bağlantı oluştu. Benim durumumda bu olmadı ve sırasıyla tüm hikayeyi alamadım. Piyasa kapalıyken Market Watch'ta saatin sunucu ile senkronize edilip edilmemesi gerektiğini bilmiyorum, Yardım'da bahsedilmiyor.

Ve olası işlem atlamaları hakkında söylediğim şey, bu, eğer saatiniz 2 dakika geriyse, o zaman bu son 2 dakika içinde yapılan işlemler, sunucu zamanı esas alınarak hesaplandığından, geçmişe dahil edilmeyecektir. yerel saat ve aynı 2 dakika için geride kalacaktır.

Bu durumda, tüm geçmişe ihtiyacınız varsa, bir gün öncesinden daha büyük bir sayı ekleyebilirsiniz ve bu, tüm işlemlerin seçileceğini garanti eder. :)

Test cihazına gelince, orada size neyin uymadığı genellikle belirsizdir, çünkü her şey orada modellenmiştir ve yerel, sunucuya eşittir.

Ve test cihazında, HistoryDealsTotal () işlevinde bir hata var ve Görselleştirme modunda kendini gösteriyor. Orada zaman doğru bir şekilde modellenmiştir. Bazı durumlarda sadece bir koltuk değneği yardımcı olur.

Neden: