개발자 MT5 터미널의 시간 형식 - 페이지 5

 
avoitenko :


주기 위해서는 datetime 형이 10바이트 가 되어야 하고 MqlDateTime 구조가 뚱뚱해져야 한다.

eka가 당신을 얻었습니다 :)

길면 충분합니다. 8바이트.


그리고 아무도 구조에 대해 전혀 이야기하지 않습니다. 모든 것이 지금 그대로 있어야 합니다.

 
avoitenko :

나는 스레드를 읽고 밀리초가 스포츠에 대한 관심에만 필요하다는 것을 깨달았습니다. 최대 ms의 정확도로 100m에 대한 가격 실행을 측정하기 위해.

이를 제공하려면 datetime 유형이 10바이트가 되어야 하고 MqlDateTime 구조가 필요합니다.

MQL6을 기다리면 밀리초 타이머와 틱 기록 및 기타 많은 기능이 제공됩니다. 이제 추가할 이유가 없습니다. 임호.



다양한 것을 읽고 이해한다.

그러나 MqlDateTime이 얼마나 많은 바이트를 차지할 것인지 계산해 주셔서 감사합니다. 이것은 제 12개 공연에 심각한 타격을 줄 것입니다. MT5가 어떻게 스왑에 들어가는지 이미 알고 있습니다.  

Sereev는 내가 처음에 생각한 것을 표명하여 명확했지만 내가 어떤 포럼에 있는지 잊어 버렸습니다. 밀리초는 서버와의 동기화가 아니라 이벤트 시퀀스의 개념에 필요합니다!  

 

 

sergeev :

길면 충분합니다. 8바이트.

당신은 계속 제안...

long을 시간으로 변환하고 밀리초를 추출하는 방법.

여기에는 추가 구조, 데이터 유형 및 앞뒤로 변환하기 위한 몇 가지 새로운 기능이 필요합니다.

무엇 때문에? 기성 바인딩이 있는 날짜/시간이 있는 경우.

 
avoitenko :

당신은 계속 제안...

long을 시간으로 변환하고 밀리초를 추출하는 방법.

여기에는 추가 구조, 데이터 유형 및 앞뒤로 변환하기 위한 몇 가지 새로운 기능이 필요합니다.

무엇 때문에? 기성 바인딩이 있는 날짜/시간이 있는 경우.

Andrey, 모든 존경을 표하지만 당신은 당신의 대답에 대해 생각하지 않았습니다.

밀리초 단위 시간은 초 단위 시간에 1000을 곱한 값과 동일한 ms 수 입니다.

나는 시간을 밀리초 단위로 1000으로 나눕니다. 모든 가능성과 함께 우리가 가장 좋아하는 날짜 시간 을 얻습니다. 더하기 나눗셈의 나머지는 밀리초 수입니다.

모든 것.

 

sergeev :

나는 시간을 밀리초 단위로 1000으로 나눕니다. 모든 가능성과 함께 우리가 가장 좋아하는 날짜 시간 을 얻습니다. 더하기 나눗셈의 나머지는 밀리초 수입니다.

저것들. 시간을 알아보려면 무언가를 무언가로 나누어야 하지 않을까요? 반올림 오류는 어떻습니까? 어떻게든 나누지 않고 할 수 있습니까?

 
avoitenko :

저것들. 시간을 알아보려면 무언가를 무언가로 나누어야 하지 않을까요? 반올림 오류는 어떻습니까? 어떻게든 나누지 않고 할 수 있습니까?

그래서 숫자는 정수입니다 :)

나누기를 원하지 않는 경우 - 마지막 세 자리를 취하십시오 - 이것은 밀리초입니다.

 
sergeev :

나누기를 원하지 않는 경우 - 마지막 세 자리를 취하십시오 - 이것은 밀리초입니다.

어떻게 나누지 않고 가져갈 수 있습니까? 문자열로 변환하고 정수로 다시 변환하려면 오른쪽 세 글자? 그것은 나에게 영감을주지 않습니다.

그리고 밀리초를 얻기 위해 나눗셈, 곱셈 및 기타 연산에서 나머지를 얻기 위한 추가 연산은 일종의 야생성입니다. 임호. 그들은 선반에서 구할 수 있어야 합니다.

이것은 흥미롭지 않지만 개발자가 처음에 UNIX 시간 저장 형식을 선택했으며 지금 이야기하고 있는 형식이 아닌 이유입니다. 밀리초로?

그들은 뭔가를 알고 있어야합니다.

 

날짜/시간 유형 :

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

다음과 같이 하면 됩니다.

datetime형은 1970년 1월 1일 이후의 밀리초 단위 로 날짜와 시간을 저장하도록 설계되었습니다. 메모리에서 8바이트를 차지합니다.

그리고 분열과 다른 쓰레기가 그것과 무슨 상관이 있습니까?! 시간은 모든 단위로 저장할 수 있습니다( 3분 의 1도 포함). 지구 시간/초, 심지어 화성 시간으로도 변환할 수 있습니다. 이로부터 변환에 소비되는 컴퓨팅 리소스의 양은 늘어나거나 줄어들지 않을 것입니다. 변환은 기계가 아닌 인간의 단순한 이해를 위해서만 필요합니다.

아마도 그들은 비용을 절감하고 과거 데이터베이스를 더 강력하게 압축하기로 결정했을 것입니다. 개발자 여러분, 이야기에 대한 답변입니다. 왜 초를 선택하셨습니까? 나는 그들이 더 많은 정확성을 불필요하다고 생각했다고 생각합니다. 지금도 그들은 이 밀리초가 왜 필요한지 이해하지 못합니다.

 
papaklass :

반대편에서 가겠습니다.

1. 입찰가 = 1.30245 볼륨 50 로트. 이 레벨은 30ms 동안 지속됩니다.

2. 입찰가 = 1.30244 볼륨 75 로트. 이 수준은 25ms 동안 지속되었습니다.

3. 입찰 = 1.30243 볼륨 300 로트. 현재 2초 동안 존재합니다.

이 정보는 거래에 도움이 될 것입니다.

,,, pipsators의 경우 가능합니다... 하지만 지연 없이 50랏을 시장에 소개할 브로커가 어디 있습니까? ¿?

 
avoitenko :

어떻게 나누지 않고 받을 수 있습니까? 문자열로 변환하고 정수로 다시 변환하려면 오른쪽 3개 문자로 변환하시겠습니까? 그것은 나에게 영감을주지 않습니다.

datetime이 어떻게 구조로 변환되는지 궁금해 한 적이 있습니까? 나눗셈과 나머지가 아니라?

아니면 다르게 작동한다고 생각하십니까? http://msdn.microsoft.com/ru-RU/library/windows/desktop/ms724284%28v=vs.85%29.aspx

그들은 선반에서 구할 수 있어야 합니다.

bliiin :) 글쎄, 어떤 종류의 기성품에? 8바이트가 주어졌습니다. 개발자에게 그 밖에 무엇이 더 필요합니까?

이것은 흥미롭지 않지만 개발자가 처음에 UNIX 시간 저장 형식을 선택했으며 지금 이야기하고 있는 형식이 아닌 이유입니다. 밀리초로?

당신은 항상 어떤 종류의 시간 형식에 대해 이야기하고 있는 것 같습니다. 글쎄, 알았어. 당신은 무엇을 알 수 있습니까?

나는 개인적으로 안다 3.

- 4바이트 - Unix epoch 1970에서 2038까지의 초 수(INT)

- 8바이트 - 1601에서 30828 사이의 100나노초 수(FILETIME)

- 8바이트 - Unix epoch 1970에서 11-whack-a-year(INT64)까지의 밀리초 수

8바이트 SYSTEMTIME 시간을 저장하는 구조도 있지만 이는 파생물입니다. 등.


글쎄, 나는 이미 MT 서버에 있는 것 - 유닉스 시대의 8바이트를 줄 것을 제안한다.

왜 숨겨? :)

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...