Geliştiriciler MT5 terminalinde saat formatı - sayfa 5

 
avoitenko :


Bunu vermek için datetime tipinin 10 byte olması ve MqlDateTime yapısının şişman olması gerekir.

eka seni yakaladı :)

uzun yeter. 8 bayt.


ve hiç kimse yapılardan bahsetmiyor. her şey şimdi olduğu gibi kalmalı.

 
avoitenko :

Konuyu okudum ve milisaniyenin sadece spor ilgisi için gerekli olduğunu anladım. 100 m için fiyatı ölçmek için ms'ye kadar bir doğrulukla çalıştırın.

Bunu vermek için datetime tipinin 10 byte olması ve MqlDateTime yapısının şişman olması gerekir.

MQL6'yı bekleyin, bir milisaniyelik zamanlayıcı ve kene geçmişi ve diğer pek çok güzellik olacak. Ve şimdi eklemek için bir neden göremiyorum. BENİM NACİZANE FİKRİME GÖRE.



farklı şeyler okuyun ve anlayın.

Ancak MqlDateTime'ın kaç bayt alacağını saydığınız için teşekkürler, bu benim 12 konserimi ciddi şekilde vuracak, MT5'in nasıl değiş tokuş edildiğini şimdiden görüyorum.  

Sereev başlangıçta ne düşündüğümü dile getirdi ve bu yüzden açıktı, ama hangi forumda olduğumu unuttum. Milisaniye, sunucuyla senkronizasyon için değil, bir dizi olay kavramı için gereklidir!  

 

 

sergeev :

uzun yeter. 8 bayt.

Siz sunmaya devam edin...

Uzun sürenizi zamana dönüştürme ve milisaniye çıkarma.

Bu, ileri geri dönüştürme için ek yapılar, veri türleri ve birkaç yeni işlev gerektirecektir.

Ne için? hazır bir ciltleme ile bir tarih saat varsa.

 
avoitenko :

Siz sunmaya devam edin...

Uzun sürenizi zamana dönüştürme ve milisaniye çıkarma.

Bu, ileri geri dönüştürme için ek yapılar, veri türleri ve birkaç yeni işlev gerektirecektir.

Ne için? hazır bir ciltleme ile bir tarih saat varsa.

Andrey, tüm saygımla ama cevabını düşünmedin.

Milisaniye cinsinden süre, saniye cinsinden sürenin 1000 + aynı ms'lerin sayısı ile çarpımıdır.

Toplam

Zamanı milisaniye cinsinden alıyorum, 1000'e bölüyorum. Eski favori tarihimizi tüm imkanlarla elde ediyorum. ARTI bölümün geri kalanı milisaniye sayısıdır.

Her şey.

 

sergeev :

Zamanı milisaniye cinsinden alıyorum, 1000'e bölüyorum. Eski favori tarihimizi tüm imkanlarla elde ediyorum. ARTI bölümün geri kalanı milisaniye sayısıdır.

Onlar. Zamanı öğrenmek için bir şeyi bir şeye bölmem mi gerekecek? Yuvarlama hatası ne olacak? Bölmeden bir şekilde yapabilir misin?

 
avoitenko :

Onlar. Zamanı öğrenmek için bir şeyi bir şeye bölmem mi gerekecek? Yuvarlama hatası ne olacak? Bölmeden bir şekilde yapabilir misin?

yani sayılar tam sayıdır :)

bölmek istemiyorsanız - sadece son üç basamağı alın - bunlar milisaniyedir.

 
sergeev :

bölmek istemiyorsanız - sadece son üç basamağı alın - bunlar milisaniyedir.

Onları bölmeden nasıl alabilirim? Tamsayıya geri dönüştürmek için dizeye ve sağ üç karaktere dönüştürün mü? Bana ilham vermiyor.

Milisaniye elde etmek için bölme, çarpma ve diğer işlemlerden kalanı elde etmek için ek işlemler bir tür çılgınlıktır. BENİM NACİZANE FİKRİME GÖRE. Herhangi bir şey varsa, raftan mevcut olmalıdırlar.

Bu ilginç değil, ancak geliştiricilerin neden başlangıçta şu anda bahsettiğimiz değil de UNIX zaman depolama biçimini seçtikleri. milisaniye ile?

Bir şeyler biliyor olmalılar.

 

tarih saat türü :

Тип datetime предназначен для хранения даты и времени в виде количества секунд, прошедших с 01 января 1970 года. Занимает в памяти 8 байт.

Sadece bunu yapmak zorundaydın:

Datetime türü, tarih ve saati 01 Ocak 1970'den bu yana geçen milisaniye sayısı olarak depolamak üzere tasarlanmıştır. Bellekte 8 bayt yer kaplar.

Ve bölünme ve diğer çöplerin bununla ne ilgisi var?! Zaman herhangi bir birimde saklanabilir ( üçte bile olsa). Hatta Dünya saatlerine/saniyelerine, hatta Mars saatlerine bile dönüştürülebilir. Bundan, dönüşüm için harcanan bilgi işlem kaynaklarının miktarı az ya da çok olmayacak. Dönüşüm sadece bir İnsan tarafından basit bir anlayış için gereklidir, bir makine tarafından değil.

Belki de para biriktirmeye ve tarihsel veritabanlarını daha güçlü bir şekilde sıkıştırmaya karar verdiler. Sevgili geliştiriciler, hikayeye cevap verin, neden saniyeyi seçtiniz? Bence daha fazla doğruluğu gereksiz olarak gördüler, çünkü. şimdi bile bu milisaniyelere neden ihtiyaç duyulduğunu anlamıyorlar.

 
papaklass :

Ben diğer taraftan gideceğim.

1. Teklif = 1.30245 hacim 50 lot. Bu seviye 30 ms sürer.

2. Teklif = 1.30244 hacim 75 lot. Bu seviye 25 ms sürdü.

3. Teklif = 1.30243 hacim 300 lot. Şu anda 2 saniye için var.

Bu bilgiler ticarette size yardımcı olacaktır.

,,,pipsatörler için mümkün evet... ama 50 lotunuzu sıfır gecikmeyle piyasaya sunacak böyle bir komisyoncu nerede?¿?

 
avoitenko :

Onları bölmeden nasıl alabilirim? Tamsayıya geri dönüştürmek için dizeye ve sağ üç karaktere dönüştürün mü? Bana ilham vermiyor.

Datetime'ın nasıl bir yapıya dönüştürüldüğünü hiç merak ettiniz mi? bölme ve kalan değil mi?

Yoksa farklı çalıştığını mı düşünüyorsunuz? http://msdn.microsoft.com/ru-RU/library/windows/desktop/ms72428428v=vs.85%29.aspx

Herhangi bir şey varsa, raftan temin edilebilir olmalıdırlar.

bliiin :) peki, ne tür hazır? size 8 bayt verildi - geliştiricilerden başka neye ihtiyacınız var?

Bu ilginç değil, ancak geliştiricilerin neden başlangıçta şu anda bahsettiğimiz değil de UNIX zaman depolama biçimini seçtikleri. milisaniye ile?

Görünüşe göre her zaman bir tür zaman formatından bahsediyorsunuz. iyi tamam. Ne biliyorsun?

Şahsen biliyorum 3.

- 4 bayt - Unix dönemi 1970 ile 2038 arasındaki saniye sayısı (INT)

- 8 bayt - 1601'den 30828'e kadar 100 nanosaniye sayısı (FILETIME)

- 8 bayt - Unix döneminden 1970'e kadar olan milisaniye sayısı (INT64)

8 baytlık SYSTEMTIME zamanını depolamak için bir yapı da vardır, ancak bu bir türevdir. vb.


Eh, MT sunucusunda zaten olanı vermeyi öneriyorum - Unix döneminden 8 bayt.

neden gizledin? :)

FILETIME structure (Windows)
  • msdn.microsoft.com
Contains a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC). Syntax Members dwLowDateTime The low-order part of the file time. dwHighDateTime The high-order part of the file time. Remarks To convert a FILETIME structure into a time that is easy to display to a user, use the FileTimeToSystemTime...
Neden: