Hatalar, hatalar, sorular - sayfa 2573

 

Oh, evet, o zaman kesinlikle aşırı disk yüklenmesi konusunda endişelenmenize gerek yok.
Beni şaşırtan tek şey, büyük veri dizilerini kaydetmek için global uçbirim değişkenlerinin (eğer onlardan bahsediyorsak) kullanılmasıdır.
Korkunç bir koltuk değneği.

Tamam, değişkenlerin kendileri, ancak bunların dize adları da vardır, bu değişkene erişmek için her seferinde saklamanız ve yine de bir dize araması yapmanız gerekir, saklanabilecek tek çift türden bahsetmeye gerek yok. Birliği kullanabileceğiniz açıktır, ancak kullanımı da ücretsiz değildir.

Diske periyodik otomatik kaydetme ile herhangi bir veri dizisinin kaynakları aracılığıyla veya deinit olayı gerçekleştiğinde kaydetmeyi kendi başınıza uygulamak çok daha doğrudur.

 
Nikolai Semko :

Tamam, değişkenlerin kendileri, ancak bunların dize adları da vardır, bu değişkene erişmek için her seferinde saklamanız ve yine de bir dize araması yapmanız gerekir, saklanabilecek tek çift türden bahsetmeye gerek yok. Birliği kullanabileceğiniz açıktır, ancak kullanımı da ücretsiz değildir.

Global değişkenleri kullanmak için bir fikrim ve arzum vardı, ancak eski moda bir şekilde bir şeyi diske kaydetmeye karar verdim, özellikle şimdi kodları olabildiğince doğru yazmaya başladım - verileri yapılarda saklıyorum ve yapıları dökümü yapabilirsiniz. tek tıklamayla disk - FileWriteStruct ()



ve böylece, global değişkenler "tam tersi kullanılmalıdır" - veriler global değişken adına saklanmalıdır. ve sağlama toplamı Base64 kullanarak iki katına çıkıyor - CryptEncode() içinde her şey hazır ve ideal olarak genel olarak Base85 ( Ascii85 ) veya kaynakları Base128 github'da bir yerde gördüm

ve yanılmıyorsam, terminalin global değişkeninin adı 256 karakterdir? Base64 verimliliği %60'ın (boyut) biraz üzerindedir, diğer kodlama yöntemleri daha yüksektir - bir global değişkende toplam 160-180 bayt saklanabilir

Doğru, verileri önekle tanımlamanız gerekecek, ancak genel olarak, tüm bunlar işe yarayacak - özellikle global değişkenler nadiren kullanıldığından - tüm adlar aslında ücretsizdir

 
Igor Makanu :

Global değişkenleri kullanmak için bir fikrim ve arzum vardı, ancak eski moda bir şekilde bir şeyi diske kaydetmeye karar verdim, özellikle şimdi kodları olabildiğince doğru yazmaya başladım - verileri yapılarda saklıyorum ve yapıları dökümü yapabilirsiniz. tek tıklamayla disk - FileWriteStruct ()



ve böylece, global değişkenler "tam tersi kullanılmalıdır" - veriler global değişken adına saklanmalıdır. ve sağlama toplamı Base64 kullanarak iki katına çıkıyor - CryptEncode() içinde her şey hazır ve ideal olarak genel olarak Base85 ( Ascii85 ) veya kaynakları Base128 github'da bir yerde gördüm

ve yanılmıyorsam, terminalin global değişkeninin adı 256 karakterdir? Base64 verimliliği %60'ın (boyut) biraz üzerindedir, diğer kodlama yöntemleri daha yüksektir - bir global değişkende toplam 160-180 bayt saklanabilir

Doğru, verileri önekle tanımlamanız gerekecek, ancak genel olarak, tüm bunlar işe yarayacak - özellikle global değişkenler nadiren kullanıldığından - tüm adlar aslında ücretsizdir

Her neyse, değişkene ulaşmak için, istediğinizi karşılayana kadar sağlama toplamlarını yinelemeniz gerekir. Ya değişkenler gugillion ise?
Veya değişkenlerin sırasını takip edin ve bunlara dizinler atayın. Ama bu kesinlikle işe yaramaz çünkü. bir veri kalıcılık sınıfı yazmak daha kolay
 
Nikolai Semko :
bir veri kalıcılık sınıfı yazmak daha kolay

Sınıf, örnekler de dahil olmak üzere düzenlenmiştir. Geliştiriciler, kaynakların etrafına sarmalayıcılar yazmadan veri aktarmanıza olanak tanıyan yeni işlevler sunacak.

Bayraklar için global değişkenler kullanıyorum. Değerlerini her zaman görme yeteneği de uygundur - F3.

 
fxsaber :

Sınıf, örnekler de dahil olmak üzere düzenlenmiştir. Geliştiriciler, kaynakların etrafına sarmalayıcılar yazmadan veri aktarmanıza olanak tanıyan yeni işlevler sunacak.

Bayraklar için global değişkenler kullanıyorum. Değerlerini her zaman görmek de uygundur - F3.

Evet gördüm. Bu nedenle, şaşırdım.
Değerleri kontrol etmek için katılıyorum, sonra haklı.
 
Georgiy Merts :

Görsel test modumda SymbolInfoTick() işlevinin bir değer döndürdüğünü ve Close[0] zaman serisinin başka bir değeri olduğunu buldum.

Bu benim hatam mı? Yanlış bir şey mi yapıyorum?

Değerler aynı olmalı gibi görünüyor:

Kural olarak, fark 1-2 puandır, ancak keskin hareketlerde daha da fazla olabilir.

Sadece ben mi?

Şimdiye kadar zaman serilerini "daha doğru" olarak aldım, SymbolInfoTick()'in Close[0]'dan farklı bir değer verdiği ortaya çıkarsa, Close[0]'ın doğru değer olduğunu düşünüyorum, spread'i aynı bırakıyorum SymbolInfoTick() tarafından döndürüldüğü gibi.

Ancak yine de, hangi fiyatın doğru olduğunu, DC'nin hangi fiyata "baktığını" - SymbolInfoTick()'te veya Close[0]'da anlamak ilginçtir.

Yapı numarası nedir?

Build 2155 zaten düzeltilmiş olmalı - bu hata geçen hafta düzeltildi

 
Slava :

Yapı numarası nedir?

Build 2155 zaten düzeltilmiş olmalı - bu hata geçen hafta düzeltildi

Ey. Bende 2085 var.

Tabii, güncelliyorum.

PS Evet, şimdi değerler aynı.
 
Slava :

Yapı numarası nedir?

Build 2155 zaten düzeltilmiş olmalı - bu hata geçen hafta düzeltildi

Bu konuda bilinen bir şey var mı?
https://www.mql5.com/ru/forum/1111/page2571#comment_13285021
 
Aleksei Beliakov :
Bu konuda bilinen bir şey var mı?
https://www.mql5.com/ru/forum/1111/page2571#comment_13285021

Çoğaltmak için herhangi bir ayrıntı sağlamadınız

 
Slava :

Çoğaltmak için herhangi bir ayrıntı sağlamadınız

Trite, bu işlevlerin sonuçlarını ontick'te yazdırırsanız, bu, 1970.01.01 zamanı için 0 fiyatı içindir.
Eskiden bar zamanı ya da fiyattı.
demek ki artık böyle
 iHigh ( NULL , PERIOD_W1 , 0 ) в журнале будет 0
iTime( NULL , PERIOD_W1 , 0 ) в журнале будет 1970.01.01