초기화 시 ChartNavigate - 페이지 4

 
Ihor Herasko :

P./S.: 만일의 경우를 대비 하여 이 실험 동안 터미널이 오랜 시간 후에 로드된 경우(즉, 많은 새 막대가 다음에 나타날 것으로 예상되는 경우) 어떤 일이 발생하는지 살펴보지 않았다는 점을 분명히 하겠습니다. 터미널이 언로드됨) .

 
Alexey Viktorov :

디나, 효과가 있나요? 저는 OnInit에서 작동하지 않는 옵션을 얻으려고 2-3시간 동안(오늘만, 어제의 테스트는 제외) 시도했지만 모두 소용이 없었습니다. 모든 것이 항상 제대로 작동합니다. 이 기능만 주목됨: 두 개의 차트에 지표를 놓고 터미널을 다시 시작하면 터미널을 닫고 열었을 때 활성 상태였던 차트에서만 작동합니다. 두 번째 비활성 차트에서는 작동하지 않습니다. 그러나 내 생각에 이것은 데이터가오고 있다는 사실에도 불구하고 그래프의 그림이없고 그래프 자체가 없다는 것은 충분히 이해할 수 있습니다.

예, 알렉스, 작동합니다. 여기 에 대해 썼습니다. 분명히, 다른 게시물의 인용 뒤에 이것은 시각적으로 손실되었습니다.

 
Dina Paches :

터미널을 내리기 전에 차트를 최신 가격으로 되돌리나요?

아니, 난 돌아오지 않을거야. 그것이 바로 요점이기 때문입니다. 이 모든 것이 무엇을 위한 것인지 조금 더 말씀드리겠습니다. 상인은 테스터처럼 차트를 사용합니다. 표시기는 추정되는 현재 시간의 오른쪽에 있는 실제 차트의 일부를 숨깁니다(사실, 이 시간은 역사의 어딘가에 있습니다). F12 키를 누르면 온라인 차트의 다음 캔들이 표시되는 등입니다. 따라서 인디케이터가 부착된 터미널을 다시 시작하면 정확히 트레이더가 조사를 완료한 위치로 차트 위치를 반환하지 않는 것입니다. 결과적으로 터미널이 차트 표시를 마지막 실제 캔들로 전환하기 때문에 그는 빈 차트를 얻습니다. 그리고 이것은 터미널이 완전히 다른 장소에서 언로드되었다는 사실에도 불구하고.

내가 묻는 이유:

그러한 조건에서 어떻게 작동하는지 확인하기 위해 귀하의 코드를 적용했습니다. 테스트할 때 처음에는 귀하가 설명하는 문제를 재현하기로 결정했습니다. 나중에 나는 깨달았습니다 - 아니요. 차트를 업로드하기 전에 최신 가격으로 반환하면 터미널을 로드한 후 코드에 따라 작동하기 때문입니다. 언로드하기 전에 새로운 가격으로 돌아가지 않으면 로드 후 차트가 언로드 전의 상태로 유지됩니다.

흥미로운 관찰입니다. 나는 그것을 직접 확인했다 - 아아, 아, 아무것도 바뀌지 않았습니다. 마찬가지로 재부팅하면 최신 가격이 표시됩니다.

시계를 확인하는 것이 좋습니다. 이 모든 것을 빌드 1861에서 테스트 중입니다. 어느 것이 있습니까?

 
Alexey Viktorov :

디나, 효과가 있나요? 저는 OnInit에서 작동하지 않는 옵션을 얻으려고 2-3시간 동안(오늘만, 어제의 테스트는 제외) 시도했지만 모두 소용이 없었습니다. 모든 것이 항상 제대로 작동합니다. 이 기능만 주목됨: 두 개의 차트에 지표를 놓고 터미널을 다시 시작하면 터미널을 닫고 열었을 때 활성 상태였던 차트에서만 작동합니다. 두 번째 비활성 차트에서는 작동하지 않습니다. 그러나 내 생각에 이것은 데이터가오고 있다는 사실에도 불구하고 그래프의 그림이없고 그래프 자체가 없다는 것은 충분히 이해할 수 있습니다.

두 개의 차트에 올렸습니다. 불행히도 둘 다 같은 방식으로 작동합니다. 재부팅하면 가장 최근 가격이 표시됩니다.

어떤 빌드가 있습니까?

 
모든 것이 내가 생각했던 것보다 훨씬 더 재미있었습니다. 코드를 OnCalculate로 옮겼지만( 매 틱마다 호출되지 않도록 단일 작업을 수행함) 그림은 변경되지 않았습니다. 즉, 터미널 시작시 OnCalculate에서도 ChartNavigate가 동작하지 않습니다...
 
Alexey Viktorov :

... 이 기능만 주목됨: 두 개의 차트에 지표를 놓고 터미널을 다시 시작하면 터미널을 닫고 열었을 때 활성화된 차트에서만 작동합니다. 두 번째 비활성 차트에서는 작동하지 않습니다. 그러나 내 생각에 이것은 데이터가오고 있다는 사실에도 불구하고 그래프의 그림이없고 그래프 자체가 없다는 것은 충분히 이해할 수 있습니다.

그래서 그것을 시도하십시오 - 나는 나 자신을 추측하지 않았습니다. 이제 나는 그러한 실험을 했습니다(Igor의 코드도 사용).

동시에 그녀는 결국 ... 그가 설명한 문제를 재현했습니다.

 
Ihor Herasko :

...

시계를 확인하는 것이 좋습니다. 이 모든 것을 빌드 1861에서 테스트 중입니다. 어느 것이 있습니까?

그리고 저는 1861이 있습니다. 하지만 Alexey Viktorov 덕분에 OnInit()를 통해 설치할 때 설명하는 문제를 재현할 수 있었습니다. /*당신의 글을 보기 전에*/

절차: 여기에 설명된 대로 .

I. 하지만 터미널을 내리기 전에 차트를 최신 가격으로 옮겼습니다.

동시에, 지표는 기간이 다른 동일한 쌍의 두 차트에 설정되었습니다(GBPUSD M5 및 GBPUSD H1).

이 실험의 결과:

1. GBPUSD M5 차트에 표시기를 먼저 설치한 다음 GBPUSD H1 차트에 표시합니다. 차트를 새로운 막대로 이동한 후 GBPUSD H1 차트가 활성화될 때 터미널을 닫았습니다(즉, 이전 시간대가 활성화됨). 이러한 조건에서 터미널을 다시 열면 열릴 때의 차트가 코드 에서 지정한 막대로 이동 합니다.

2. 그러나 활성 GBPUSD M5 차트로 터미널을 닫고(즉, 더 낮은 시간대가 활성) 터미널을 다시 열면 터미널을 로드한 후 이 두 차트에서 이동이 발생하지 않습니다. 차트는 신선한 막대에서 열립니다. 이 경우 하나는 성공하고 다른 하나는 오류입니다.

test 2018 06 26 (GBPUSD,M5)     Alert : Успешно
test 2018 06 26 (GBPUSD,H1)     Alert : Ошибка № 4111

p.1 , p.2 실험을 하고 터미널을 다시 시작하고 결과를 파악한 후 차트에서 이 표시기를 제거한 다음 다시 설치했습니다.


3. 같은 실험을 했는데 매번 새로운 인디케이터로 재설치를 하지 않고 터미널을 재시작한 후 차트이동이 없습니다. 더 높거나 더 낮은 기간으로 활성 상태에 관계없이. 차트는 신선한 막대에서 열립니다. 메시지 - 단락 2 와 동일(성공 및 오류 4111)

Ⅱ. 또한 동일한 두 차트에 표시기를 동시에 설치하는 실험을 수행했지만 터미널을 언로드하기 전에 이러한 차트를 새 막대로 되돌리지 않았습니다.

다음과 같은 결과가 있습니다. 더 높은 기간에 닫거나 열면 더 높은 기간의 차트가 닫히기 전의 위치에 있습니다. 주니어(비활성) - 가장 최근에.

하단 차트를 열거나 닫으면 하단 차트가 새로운 막대에서 열립니다. 이 경우의 메시지 - 단락 2 (성공 및 오류 4111)


III. 이제 다음과 같은 문제가 발생했습니다.

  • 표시기를 설치하기 전에 차트 자동 스크롤을 비활성화하는 것을 잊었습니다.
  • 이것을 깨달았을 때 나는 표시기를 제거하고 즉시 새 표시기를 설치했습니다.

따라서 표시기를 다시 설치한 후에는 이동이 없었지만 경고는 성공적이었습니다.

test 2018 06 26 (GBPUSD,M5)     Alert : Успешно

그러나 표시등 다시 설치하기 전에 자동 스크롤이 꺼져있을뿐만 아니라 얼마 후 문제가 밝혀지지 않았습니다.


이 같은.

서비스 데스크에 글을 쓰셔야 할 것 같습니다.

 
Dina Paches :

이 경우 하나는 성공하고 다른 하나는 오류입니다.

그러나 이것은 서프라이즈입니다! 아직 ChartNavigate에서 오류가 발생하지 않았습니다. 그러나 이것은 이미 무언가입니다.

문제의 핵심에서, 분명히 나는 무슨 일이 일어나고 있는지 이해하기 시작했습니다.

ChartNavigate() 가 OnInit() 또는 OnCalculate()에서 처음 호출될 때 모든 차트 데이터가 아직 로드되지 않았을 가능성이 높습니다. 그럼에도 불구하고 ChartNavigate()는 이미 작동했고 성공적으로 작동했습니다(당시). 그런 다음 데이터가 로드되어 차트에 표시되어 완전히 다시 그려지고 차트가 시작 부분으로 이동합니다. 그 결과 차트가 ChartNavigate()에 의해 전혀 이동되지 않은 것처럼 보입니다.

따라서 그래프를 성공적으로 이동하려면 히스토리 페이징으로 인해 그래프 데이터의 표시가 더 이상 예상되지 않는지 어떻게든 결정해야 합니다. 그러한 사실이 확립된 후에야 ChartNavigate()를 호출할 수 있습니다.

 
Ihor Herasko :

...

따라서 그래프를 성공적으로 이동하려면 히스토리 페이징으로 인해 그래프 데이터의 표시가 더 이상 예상되지 않는지 어떻게든 결정해야 합니다. 그러한 사실이 확립된 후에야 ChartNavigate()를 호출할 수 있습니다.

당신이 아마도 옳을 것입니다. 터미널을 같은 방식으로 다시 시작하면 이것이 관련될 수 있습니다. 또한 실험 중에 표시기를 다시 설치하는 것과 조합하여(또는 사용하지 않고) 자동 스크롤을 활성화/비활성화하는 데 관심이 있었습니다. 이 게시물의 끝 부분에 있는 블록 III 에서 설명한 것의 결과입니다. 그러나 아직 자세히 고려하지 않았습니다. 시급한 문제를 해결해야 합니다. 따라서 더 나아가는 동안 나는 통과합니다.

 
Ihor Herasko :

2개의 차트에 올렸습니다. 불행히도 둘 다 같은 방식으로 작동합니다. 재부팅하면 가장 최근 가격이 표시됩니다.

어떤 빌드가 있습니까?

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

초기화 시 ChartNavigate

알렉세이 빅토 로프 , 2018.06.25 15:10

1861도 있습니다. 한 번만 재생산된 것으로 밝혀졌습니다. 다른 모든 시도는 잘 작동했습니다.