나는 완전히 길을 잃었다 - 페이지 4

 
ydrol :

datetime의 시간대(1970년 이후 초)는 UTC를 기준으로 합니다. 유닉스 시간처럼. UnixTime - 64비트 유닉스 시간 입니다.

datetime - datetime = long(초 지속 시간)

날짜 시간 +/- 초(긴) = 날짜 시간(다른 날짜)

datetime +/- 초(int) = datetime(다른 날짜)


GMT에서 날짜/시간을 어떻게 지정합니까?
 
ydrol : datetime의 시간대(1970년 이후 초)는 UTC를 기준으로 합니다.
거짓. 시간대는 브로커 서버의 시간입니다. 사용 중인 브로커에 따라 다릅니다.
FMIC : 당신은 여기 트롤입니다! 이 스레드에 대한 내 마지막 게시물입니다! 당신은 노력할 가치가 없습니다.

트롤에게 먹이를 주지 마세요.

응답하면 트롤 권한을 부여합니다. 트롤을 무시하면 트롤은 관심을 끌기 위해 굶주리고 결국 죽습니다.

 
FMIC : 당신은 여기 트롤입니다! 이 스레드에 대한 내 마지막 게시물입니다! 당신은 노력할 가치가 없습니다.

훌륭한 기여를 했다고 생각합니다. 귀하의 게시물은 간결하고 잘 가르쳐졌으며 귀하의 노력에 대해 "감사합니다"라는 결의안을 많이 받습니다.

예, 당신이 이 사람을 위해 최선을 다했다고 생각합니다.

 
아 대부분의 경우 mql에서 시간대는 시간을 얻은 위치에 따라 다릅니다. 일반적으로 브로커입니다. 잊어버렸습니다. 큰 False 헤드업에 감사드립니다. -lol
 
RaptorUK :
GMT에서 날짜/시간을 어떻게 지정합니까?

whoop mql4는 깨진 시간 개념을 사용한다는 사실을 잊어버렸습니다 . 나는 수사학적인 q :-)를 인정합니다. 시간대는 그것이 어디에서 왔는지에 달려 있습니다. 따라서 여러 소스 중개인, 컴퓨터, 백 테스팅이 있기 때문에 모든 문제가 있습니다.
 
ydrol :
whoop mql4는 깨진 시간 개념을 사용한다는 사실을 잊어버렸습니다. 나는 수사학적인 q :-)를 인정합니다. 시간대는 그것이 어디에서 왔는지에 달려 있습니다. 따라서 여러 소스 중개인, 컴퓨터, 백 테스팅이 있기 때문에 모든 문제가 있습니다.
나는 당신이 수사학적인 q를 얻었기 때문에 기쁩니다.
 

데이터 유형 승격 규칙이 그런 식으로 작동할까봐 두려웠습니다. 알았어 그래서:

datetime - datetime = long(초 지속 시간)

datetime +/- 초(long) = datetime(다른 날짜)

datetime +/- 초(int) = datetime(다른 날짜)

그러나 X=YZ 또는 (YZ)/60 또는 이와 유사한 것으로 X가 이미 long 또는 int로 선언되고 Y와 Z가 날짜/시간인 경우, 그것은 매우, 매우 나쁜 것입니까? 그렇다면 static_cast가 모든 것을 고칠까요?

Raptoruk, 그것은 시간대에 독립적이지 않습니다. 물론 오후 2시와 3시 사이의 차이는 한 시간대에서 3600입니다. 그러나 거래가 금요일 동부 시간 오후 5시에 중단된다는 것을 알고 있지만 시간대 시간 0(1970년 1월 1일 자정)이 무엇인지 모른다면 어떻게 될까요? 그렇다면 문제가 발생하지 않습니까! 따라서 1970년 1월 1일은 목요일이었습니다. 시간 0이 GMT이면 그 후 46시간, 즉 165600 모듈로 604800에서 거래가 멈춥니다. 즉, 일주일에 604800초로 604800으로 나눈 나머지에 대해 X%604800 산술 연산을 사용하고 거래합니다. 165600에서 멈춥니다. 그러나 브로커가 2개의 시간대 동쪽에 있고 정크에 7200보다 높은 타임스탬프가 있는 경우 time%604800이 165600이 아니라 172800일 때 거래가 중지됩니다.

보고된 시간 인덱스에 대한 불확실성이 있는 것 같습니다. 확실히 하기 위해 거래가 시작되고 끝나는 시간 모듈로 604800을 코드에서 파악해야 한다고 생각합니다. iTime('USDJPY',60,X)과 같은 것을 살펴보고 48시간의 공백을 찾는 것 같습니다. iTime은 "개방" 시간, 즉 시작 시간이라고 믿을 수 있습니다. 그렇죠? 즉, 거래는 2일 간격 전 마지막 시간 지수 1시간 후에 멈추고 간격 후 첫 번째 지수의 시작 부분에서 정확히 재개된 다음 604800의 배수를 추가하면 단순히 주를 변경합니다. 몇 주 안에 마지막 시간을 놓치거나 처음 한 시간을 놓치는 것과 같은 복잡한 문제가 추가될 수 있습니다. iTime('USDJPY',1,X)을 사용하여 최대 몇 분 단위로 퇴근할 수 있습니다.

오, 많은 게시물이 그 하나로 인해 너무 빨리 시작되었습니다. 다른 분들은 아시겠지만 랩토룩은 괜찮을 것 같지만 무리한 욕설은 환영하지 않으니 ydrol이나 raptoruk가 아니거나 새로운 이야기를 할 사람이 아니라면 그냥 게시를 중단하세요. 나는 당신의 감정 상태에 어떤 식 으로든 신경 쓰지 않기 때문에 트롤. 그리고 당신이 주변에 더 던질 것이 있다면 귀머거리에 떨어진다는 것을 알아두십시오.

 
zortharg :

데이터 유형 승격 규칙이 그런 식으로 작동할까봐 두려웠습니다. 알았어 그래서:

datetime - datetime = long(초 지속 시간)

날짜 시간 +/- 초(긴) = 날짜 시간(다른 날짜)

datetime +/- 초(int) = datetime(다른 날짜)

그러나 X=YZ 또는 (YZ)/60 또는 이와 유사한 것으로 X가 이미 long 또는 int로 선언되고 Y와 Z가 날짜/시간인 경우, 그것은 매우, 매우 나쁜 것입니까? 그렇다면 static_cast가 모든 것을 고칠까요?

Raptoruk, 그것은 시간대에 독립적이지 않습니다.

좋습니다. 날짜/시간이 0인 시간대는 무엇입니까?

그러나 거래가 금요일 동부 시간 오후 5시에 중단된다는 것을 알고 있지만 시간대 시간 0(1970년 1월 1일 자정)이 무엇인지 모른다면 어떻게 될까요? 그렇다면 문제가 발생하지 않습니까!

아니요 . . 글쎄요 아마도 당신은 할 것입니다, 나는 그렇게 하지 않습니다, 우리는 하지 않습니다. 내 브로커 시간대를 알고 있으므로 그에 따라 금요일 오후 5시를 조정하고 금요일 오후 5시에 조정된 날짜 시간을 얻을 수 있습니다.
 
zortharg :

데이터 유형 승격 규칙이 그런 식으로 작동할까봐 두려웠습니다. 알았어 그래서:

datetime - datetime = long(초 지속 시간)

날짜 시간 +/- 초(긴) = 날짜 시간(다른 날짜)

datetime +/- 초(int) = datetime(다른 날짜)

그러나 X=YZ 또는 (YZ)/60 또는 이와 유사한 것으로 X가 이미 long 또는 int로 선언되고 Y와 Z가 날짜/시간인 경우, 그것은 매우, 매우 나쁜 것입니까? 그렇다면 static_cast가 모든 것을 고칠까요?


이것은 '승진 규칙'이 아닙니다. 단지 제가 현명하기를 바랍니다(희망합니다!). 나는 일반적으로 위의 typecast를 직접 만들 것입니다.

내 계산 결과가 여전히 1970년 1월 1일 이후 초 단위의 숫자인 경우(시간대 또는 그 부족에 관계 없이) datetime 으로 유지합니다.

그렇지 않으면 다른 것(지속 시간, 1970년 1월 1일 이후의 분) 은 아마도 long 으로 저장할 것입니다. (때로는 일반적인 기간 동안 int , esp 등)


그렇지만 MQL4 디자이너가 모든 날짜 시간에 대해 UTC를 의무화 하지 않고 모든 브로커가 UTC 데이터를 보내도록 강제하고 클라이언트가 현지 시간에 해석하도록 하는 방법에 대해 의아해합니다. 현재 접근 방식은 모든 다운스트림을 불필요하게 복잡하게 만들기 때문입니다.

모든 틱 데이터 소스에 대해 올바르게 수행하려는 경우 GMT 시간 및 백테스트 중 세션 열기/닫기 시간 을 계산하는 것이 예상보다 더 어렵게 만듭니다.

(예: Alpari에는 과거 데이터에 여러 시간대가 있으므로 백테스트할 때 데이터 소스에 주의해야 합니다.)

추신: 내 이전 가짜를 편집했습니다 :)

 

ydrol, 성스러운 것이든 무엇이든 사랑하기 위해 mql4에서 static_cast를 사용할 수 있는지 알려주세요. C++에서와 동일합니까? 이 페이지 https://docs.mql4.com/basis/types/casting 은 이것을 언급하지 않으며 포럼에서 찾을 수 없으며 어디에서도 찾을 수 없습니다. 계속해서 코딩을 하다보면 datetime이 길어질 뿐만 아니라 datetime이 2배가 되는 불가피한 상황이 생겨서 제대로 해보고 싶습니다. 즉, 프로그램은 샘플이 어느 주의 어느 부분에 속하는지 파악하고 그에 따라 계산에서 강조합니다. 그러나 시간 모듈로 한 주의 초 수는 여전히 날짜/시간 유형 변수이며 다른 것으로 캐스팅할 수 없다면 그렇게 붙어 있습니다. 하지만 나는 그것의 수학적 기능을 수행할 필요가 있고, 마지막에 double이 되도록 해야 합니다. 모른다면 당황하지 말고 이런 상황에서 어떻게 타이핑을 해야 하는지 알려주세요.

raptoruk, "아니 .. 글쎄요. 아마도 당신은 할 것입니다. 나는 그렇게하지 않습니다. 우리는하지 않습니다." 그것은 절대적으로 문제입니다. 나에게, 너에게, 우리에게가 아니라 시간대에 독립적이라는 이전 진술의 유효성에 대한 것입니다. 브로커가 있는 시간대는 중요하지 않기 때문에 외환 거래는 브로커의 시계를 따르지 않습니다. 금요일과 일요일 오후 5시입니다. 오후 10시(그리니치 표준시) 그리고 일광 절약 시간/표준 시간은 어떻습니까! 그건 어때요! 일부 국가에서는 한 시간을 더하거나 빼지 않거나 다른 날에 수행하므로 좋은 방법이 없으면 일년 중 일부에 대해 한 시간 쉬는 코드로 끝날 수 있습니다. . 나, 나는 브로커에 정착하지 않았습니다. 내가 시도하고 있는 것은 GMT+2에 있지만 데모 계정 을 기반으로 하여 지금은 그것들이 마음에 들지 않는다고 생각합니다. 그리고 실제로 하나를 시도한다면 아마도 다른 것을 사용하고 싶을 것입니다. 따라서 그렇게 하지 않는 것이 쉬운 문제라면 브로커의 시간대가 프로그램에 하드코딩되는 것을 원하지 않습니다. 질문을 액면 그대로 받아들이지 않고 모욕을 퍼붓기 위해 모든 것을 뒤틀어 보려고 하는 다른 사람처럼 다시는 되지 마십시오.

사유: