[해결됨] 다른 작업 시간 프레임의 표시기에서 호출/생성될 때 표시기가 올바르게 인스턴스화되지 않습니다. - 페이지 4

 
nicholishen :

...

나는 특히 당신의 모든 도움에 대해 감사하고 싶습니다... 당신의 겸허함이 없었다면 나는 내가 어디에서 노력할 동기를 찾았을지 모릅니다! /에스

나는 여기에서 당신과 같은 수십 명의 사람들을 보았습니다. 그들은 다른 사람들보다 모든 것을 더 잘 알고, 듣지 않으며, 자신의 잘못을 다른 사람(다른 사용자, 중재자, 중개인, 플랫폼, Metaquotes, OS 등)에게 전가합니다.

여기서 아무것도 배우지 못하는 것 같습니다. 이것은 버그가 아니라 개발자가 플랫폼을 구상한 방식입니다. 나는 당신이 그것이 버그라고 말하는 이유를 이해합니다. 나는 MT5를 발견했고 그것이 어떻게 작동하는지 몇 년 전에 발견했습니다. 이것을 염두에 두고 수용한다면 문제가 무엇인지 더 빨리 알게 될 것입니다.

그러나 그렇지 않습니다. 여전히 "버그" 또는 "주요 결함"이라고 계속 말하고 있습니다. 이것은 단지 우스꽝스럽습니다. 비동기식 기능 동작을 사용하는 MT5 아키텍처는 이 플랫폼을 MT4보다 훨씬 빠르게 만드는 이유입니다. 물론 항상 다루기 쉬운 것은 아닙니다. 여기서 주요 Metaquotes 오류는 불완전하거나 이해할 수 없거나 문서가 부족합니다.

이해하지 못하는 것이 있으면 다른 사람의 말을 들어야 하며(예: Stanislav와 저), 확실히 당신을 도우려는 사람들을 모욕해서는 안 됩니다.

 
Alain Verleyen :

나는 여기에서 당신과 같은 수십 명의 사람들을 보았습니다. 그들은 다른 사람들보다 모든 것을 더 잘 알고, 듣지 않으며, 자신의 잘못을 다른 사람(다른 사용자, 중재자, 중개인, 플랫폼, Metaquotes, OS 등)에게 전가합니다.

여기서 아무것도 배우지 못한 것 같습니다. 이것은 버그가 아니라 개발자가 플랫폼을 구상한 방식입니다. 나는 당신이 그것이 버그라고 말하는 이유를 이해합니다. 나는 MT5를 발견했고 그것이 어떻게 작동하는지 몇 년 전에 발견했습니다. 이것을 염두에 두고 수용한다면 문제가 무엇인지 더 빨리 알게 될 것입니다.

그러나 그렇지 않습니다. 여전히 "버그" 또는 "주요 결함"이라고 계속 말하고 있습니다. 이것은 단지 우스꽝스럽습니다. 비동기식 기능 동작을 사용하는 MT5 아키텍처는 이 플랫폼을 MT4보다 훨씬 빠르게 만드는 이유입니다. 물론 항상 다루기 쉬운 것은 아닙니다. 여기서 주요 Metaquotes 오류는 불완전하거나 이해할 수 없거나 문서가 부족합니다.

이해하지 못하는 것이 있으면 다른 사람의 말을 들어야 하며(예: Stanislav와 저), 확실히 당신을 도우려는 사람들을 모욕해서는 안 됩니다.

타이머를 설정하는 것 외에 다음 반복을 재귀적으로 호출하는 방법 없이 단일 스레드에서 모든 표시기를 실행하는 것은 결함입니다. 속도에 대해 이야기하고 싶습니까? 처리를 다시 대기열에 넣는 대신 해결 방법에 추가 ms를 보냈습니다. 아마도 세상의 끝은 아니지만 그럼에도 불구하고 여전히 해결 방법이 필요합니다. 해결 방법을 이해하고 플랫폼의 제약을 감안할 때 필요한 이유를 이해하는 데 도움을 주신 분들께 깊은 감사를 드립니다. 그러나 나는 여전히 당신이 겸손이 아닌 토론에 가져온 것을 이해하려고 노력하고 있습니다.
 
nicholishen :
타이머를 설정하는 것 외에 다음 반복을 재귀적으로 호출하는 방법 없이 단일 스레드에서 모든 표시기를 실행하는 것은 결함입니다. 속도에 대해 이야기하고 싶습니까? 처리를 다시 대기열에 넣는 대신 해결 방법에 추가 ms를 보냈습니다. 아마도 세상의 끝은 아니지만 그럼에도 불구하고 여전히 해결 방법이 필요합니다. 해결 방법을 이해하고 플랫폼의 제약을 감안할 때 필요한 이유를 이해하는 데 도움을 주신 분들께 깊은 감사를 드립니다. 그러나 나는 여전히 당신이 겸손이 아닌 토론에 가져온 것을 이해하려고 노력하고 있습니다.

나는 당신이 매우 공격적입니다. 처음부터 나는 수년간의 MT5 경험에서 무슨 일이 일어나고 있는지 설명하려고 했습니다. 나는 겸손하지 않으며, 나는 숙련되고 실험적이며 존경받을 자격이 있습니다(모든 사람처럼). 그건 14번 포스트에서 입니다만, 새 틱 없이 작동시키길 원하셨지만 같은 포스트에서 귀하의 "격렬하게"라는 말에 공격을 받아 포기했습니다.

어쨌든 새로운 것을 배우게 해주셔서 감사합니다.

 

나는 이것에 대해 오랫동안 머리를 긁적였다.

이 문제가 발생하는 다른 사람에게는 간단한 해결 방법이 있는 것 같습니다.

OnCalculate를 처음 실행할 때를 결정하기 위해 모듈 수준 변수(RunOnce)를 추가합니다. 첫 번째 실행에서 0을 반환하고 변수를 true로 설정하여 추가 중단을 방지합니다.


 bool RunOnce = false ;

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[]) {
               
   if (rates_total == prev_calculated) return (rates_total);
   if (!RunOnce) {
      RunOnce = true ;
       return ( 0 );
   }
  
REST OF YOUR CODE HERE.


그것은 나를 위해 매우 잘 작동했습니다. 당신에게도 도움이되기를 바랍니다.

[SOLVED]Indicators are not properly instantiated when called/created from an Indicator of different working time-frame.
[SOLVED]Indicators are not properly instantiated when called/created from an Indicator of different working time-frame.
  • 2017.01.30
  • www.mql5.com
UPDATE: See the workaround below CopyBuffer() throws an error of 4806 (Indicator data not accessible) when calling an indicator with a different Ti...
 
솔루션에 대한 Tks