Vladimir, 코드와 특히 코드 조각에 대한 의견에 감사드립니다! 나는 왜 우리가 미래를 노크하는 것과 같은 날짜를 사용해야 하는지 이해하지 못했습니다. 아마도 지금까지? 미래 에는 거래의 결과 가 결정되지 않는 것 같습니다 :) 아니면 미래 시제로 선을 긋기 위해 미래에 요즘이 필요한가요? 시리즈의 또 다른 질문입니다. 내가 이해하는 한, 우리는 거래에 대한 데이터로 배열을 로드하고 0 거래에서 마지막 거래까지 배열을 반복하면서 시간을 기록된 마지막 기록과 비교하고 deal_time이 나중이면 last_time 변수를 덮어씁니다. 아니면 끝에서 배열을 반복할 수 있습니까? 사실, 배열의 맨 마지막 요소는 우리가 데이터를 필요로 하는 마지막으로 마감된 거래가 될 것입니까? 아마도 논리적 오류가 있을 수 있습니다. 엄격하게 판단하지 마십시오. :)
나는 last_time과 result 변수가 우리가 작업하고 있는 원하는 값이라는 것을 올바르게 이해했습니다. 그리고 결과 이름은 선이 미래로 이동(다시 그리기)되는 기간을 결정합니다. 그런 다음 마지막 거래에서 받은 데이터를 이미 고려하여 라인을 이동하려면 " 기간 동안 의 이익" 코드 블록을 "수직 라인 이동" 블록 앞에 배치해야 합니다. 이것이 맞습니까? 아니면 내가 뭔가를 혼동하고 있습니까?
"마지막 거래"라는 용어를 명확히 하고 싶습니다.
현재 날짜 내의 마지막 거래를 찾아야 합니까? 아니면 지난 N일 동안?
마지막 24시간 내 거래 - 역사를 살펴볼 필요가 없습니다.
마지막 24시간 내 거래 - 역사를 살펴볼 필요가 없습니다.
다음과 같은 의미입니다.
표시기는 OBJ_VLINE 도움말에서 수직선을 생성, 이동 및 삭제하는 코드를 사용합니다. (지금까지는 표시기에서 선 생성만 작동함). 라인 이름은 입력 매개변수 " Vertical line name "에 지정됩니다.
수직선은 OnOnit()에서 생성됩니다 .
부하를 최소화하기 위해 1분에 한 번씩 스토리를 폴링합니다. 이러한 목적을 위해 우리 프로그램의 전역 변수 영역(이 경우 표시기)에서 변수 ExtLastMove 를 선언합니다.
- 이 변수는 거래 내역에 대한 마지막 액세스 시간을 저장합니다.
OnCalculate()에서 현재 시간(모든 기호 TimeCurrent 에 대한 마지막 인용 시간)에서 저장된 ExtLastMove 시간을 빼고 차이가 60초 미만인 경우 종료 합니다.
차이가 더 크면 ExtLastMove 에 새 시간 을 씁니다.
거래 내역은 LastProfitForPeriod()에서 액세스할 수 있습니다.
여기에는 from과 to의 두 가지 날짜가 사용됩니다. "To"는 미래(현재 시간 + 1일)로 설정 되고 " from"은 현재 시간에서 하루를 뺀 값입니다.
지금은 그게 다야, 너무 많은 bukoffs...
나는 왜 우리가 미래를 노크하는 것과 같은 날짜를 사용해야 하는지 이해하지 못했습니다. 아마도 지금까지? 미래 에는 거래의 결과 가 결정되지 않는 것 같습니다 :) 아니면 미래 시제로 선을 긋기 위해 미래에 요즘이 필요한가요?
시리즈의 또 다른 질문입니다.
내가 이해하는 한, 우리는 거래에 대한 데이터로 배열을 로드하고 0 거래에서 마지막 거래까지 배열을 반복하면서 시간을 기록된 마지막 기록과 비교하고 deal_time이 나중이면 last_time 변수를 덮어씁니다. 아니면 끝에서 배열을 반복할 수 있습니까? 사실, 배열의 맨 마지막 요소는 우리가 데이터를 필요로 하는 마지막으로 마감된 거래가 될 것입니까?
아마도 논리적 오류가 있을 수 있습니다. 엄격하게 판단하지 마십시오. :)
그래서 필요합니다. 현재 시간 과 그 이전에 "from"을 얻도록 보장합니다.
아니면 끝에서 배열을 반복할 수 있습니까?
작업이 마지막 거래를 찾는 것이라면 어레이를 정렬하고 정확한 시간을 검색해야 합니다. 어떤 일이 일어날지 또는 코어의 내부 논리가 변경될지 절대 알 수 없으며 거래가 순서를 벗어나게 될 것입니다.
그래서 필요합니다.현재 시간 과 그 이전에 "from"을 얻도록 보장합니다.
작업이 마지막 거래를 찾는 것이라면 어레이를 정렬하고 정확한 시간을 검색해야 합니다. 어떤 일이 일어날지 또는 코어의 내부 논리가 변경될지 절대 알 수 없으며 거래가 순서를 벗어나게 될 것입니다.
알겠습니다. 원칙적으로 24시간의 이력 제한을 고려하면 데이터를 정렬할 때 큰 로드는 분명히 없을 것입니다. :)
알겠습니다. 원칙적으로 24시간의 이력 제한을 고려하면 데이터를 정렬할 때 큰 로드는 분명히 없을 것입니다. :)
따라서 최종 터치가 남아 있습니다.받은 이익에 따라 라인을 이동하십시오.
이동 규칙이 무엇인지 상기시켜 주나요?
이것이 맞습니까? 아니면 내가 뭔가를 혼동하고 있습니까?
여기에서 "before" 매개변수가 미래에 수행되어야 하는 이유에 대한 설명을 찾았습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
오류, 버그, 질문
레나트 팻쿨린 , 2016.11.04 12:43
TimeCurrent()를 종료 날짜로 사용하지 마십시오. 모든 종료 거래가 캡처되도록 TimeCurrent()+86400을 사용하십시오.
TimeCurrent는 정확한 최신 시간이 아니라 "업데이트 중 마지막으로 알려진 서버 시간"으로 100% 정확한 시간이 아닙니다. 특히 초반에는요.