위의 William Roeder 와 같이 텍스트를 날짜/시간 형식으로 변환하고 있기 때문에 그렇게 하고 있습니다. 날짜를 올바르게 저장하고 D' 형식으로 변환하지만 여전히 줄을 만들 수 없기 때문에 내 실수가 어디에 있는지 잘 모르겠습니다. 파일에서 날짜를 복사하고 수동으로 줄을 만든 경우 올바른 날짜로 이동합니다.
structMqlDateTime
{
int year; // Year int mon; // Month int day; // Day int hour; // Hour int min; // Minutes int sec; // Seconds int day_of_week; // Day of week (0-Sunday, 1-Monday, ... ,6-Saturday) int day_of_year; // Day number of the year (January 1st is assigned the number value of zero)
};
또한 매 틱마다 개체를 다시 생성할 필요가 없습니다. 이렇게 하면 이미 존재하는 4200 개체로 오류 로그가 범람하므로 대신 on init 함수에서 개체를 한 번 만든 다음 나중에 원하는 날짜로 이동할 수 있습니다.
그 문제를 피하기 위해 :
또는 다음을 통해 객체가 이미 존재하는지 미리 확인할 수 있습니다.
ObjectFind (...
마르코, 폴
답변과 도움 정말 감사합니다
그러나 지금 내가 직면하고 있는 문제는 파일에서 검색한 정보(날짜)를 변환하여 선을 그리는 데 사용하는 것입니다.
코드에서 파일은 MT4 파일 섹션에 # Lines로 저장되고 저장된 날짜는 예를 들어 2019.05.18 05:30:00 입니다. 첫 번째 단계는
날짜의 마지막 3자리를 2019.05.18 05:30으로 변환합니다. 이제 다음 단계는 D' 형식의 시간을 만들기 위해 달성하지 못한 것입니다.
나는 이것을 다음과 같이 시도했다
하지만 작동하지 않았으므로 문자열을 시간으로 변환합니다.
두 경우 모두 라인이 1970.01.01 00:00에 생성되므로 문제는 파일의 날짜를 MT4가 v-라인을 생성하는 데 사용할 수 있는 의미 있는 것으로 변환하는 것입니다.
나는 코드를 첨부하고 있습니다. 아마도 당신은 내 실수를 발견 할 수 있습니다 .. 코드에서 두 줄을 만들었지 만 파일에서 검색 한 날짜에 아무 줄도 생성되지 않았습니다.
따옴표 사이에 날짜를 작성하여 잘못하고 있습니다.
그대로 :
D'2019.05.18 05:30'
둘 다 datetime s입니다. 그냥
둘 다 더블이다.따옴표 사이에 날짜를 작성하여 잘못하고 있습니다.
그대로 :
D'2019.05.18 05:30'
위의 William Roeder 와 같이 텍스트를 날짜/시간 형식으로 변환하고 있기 때문에 그렇게 하고 있습니다. 날짜를 올바르게 저장하고 D' 형식으로 변환하지만 여전히 줄을 만들 수 없기 때문에 내 실수가 어디에 있는지 잘 모르겠습니다. 파일에서 날짜를 복사하고 수동으로 줄을 만든 경우 올바른 날짜로 이동합니다.
이 문자열에서 날짜/시간 으로의 변환 대신 에포크 이후 초와 같은 긴 정수 값으로 시간을 절약하고 읽는 데 더 많은 행운이 있을 것이라고 생각합니다.
날짜는 초를 포함하여 저장됩니다. 예를 들어 이것은 2019.05.19 15:00:00 파일에서 가져온 시간입니다.
그러나 내 테스트 중에 초와 함께 날짜를 사용하면 1970.01.01 에 줄이 생성된다는 것을 알았습니다. 이것이 내가 초를 제거하지만 여전히 날짜의 정확한 위치에 파일을 생성할 수 없는 이유입니다
이 경우 시간 구조를 볼 수도 있다고 생각합니다.
당신이 사용할 수있는
TimeToStruct ()
다음과 같은 기능 :
그런 다음 여기에서 원하는 모든 값을 추출할 수 있습니다.
이것들은 정수 값이므로 엉망이 될 문자열이 없습니다.