오류, 버그, 질문 - 페이지 2750

 
fxsaber :

죄송합니다, 제가 말을 잘 못해요.

가장 당혹스러웠던 점은 요점이 정확히 함수에 있음에도 불구하고 처음에는 문자열에 집중했다는 것입니다.

함수 캐시를 사용한 테스트가 즉시 이루어졌다면 훨씬 더 명확했을 것입니다.

 
Sergey Dzyublik :

문제에 대한 가능한 솔루션으로 개발자는 미리 정의된 변수를 도입하도록 초대됩니다.

간격이 있는 두 개의 연속 호출이 동일한 결과를 제공해야 하는 이유는 무엇입니까?

 void f()
{
    MqlTick tick1, tick2; 
   SymbolInfoTick ( Symbol (),tick1); //1
   /*вычисления*/
   SymbolInfoTick ( Symbol (),tick2); //2
}
 const MqlTick _Tick;
void f()
{
   MqlTick tick1, tick2; 
   tick1 = _Tick; //1
   /*вычисления*/
   tick2 = _Tick; //2
}
 
A100 :

간격이 있는 두 개의 연속 호출이 동일한 결과를 제공해야 하는 이유는 무엇입니까?

해서는 안 된다. 그러나 규범의 고유 상징에 대한 테스트를 위해.
 
A100 :

간격이 있는 두 개의 연속 호출이 동일한 결과를 제공해야 하는 이유는 무엇입니까?

우리는 Sleep을 사용 하지 않고 Tester에 대해서만 이야기하고 있기 때문입니다 - Expert Advisors의 99%.

테스터의 임의적 지연에 대해 주장하지 않을 것입니다. 이 모드가 유용하다고 본 적이 없습니다.

 
fxsaber :

테스터의 임의적 지연에 대해 주장하지 않을 것입니다. 이 모드가 유용하다고 본 적이 없습니다.

주문 작업 기능을 디버그하는 데만 사용됩니다.

테스터의 그래프가 기울기를 변경하는 정도, 즉 테스터를 보는 것이 매우 편리합니다. 시장 주문으로 작업할 때 거래 논리가 얼마나 나쁜지

 
Sergey Dzyublik :

ME 디버거의 버그(빌드 2370) - 중단점을 트리거한 후 (F5) 키를 누를 때 코드 실행을 계속하는 대신 코드를 실행하지 않고 동일한 중단점이 실제로 다시 트리거됩니다.

재생 단계:
1)
두 줄 모두에 대해 수동으로 중단점을 설정합니다. " arr.Add()";
2) 디버깅 시작(F5);
3) RMB를 사용하여 새 탭에서 첨부 파일 <Generic\ArrayList.mqh>를 엽니다.
4) "bool CArrayList::Add(T item) " 함수에서 "if(m_size==ArraySize(m_items))" 줄을 찾아 수동으로 중단점을 설정합니다.
5) "
ArrayList.mqh" 탭에서 코드 실행(F5)을 계속합니다.

결과적으로
실제 코드 실행 없이 이전과 동일한 중단점이 트리거됩니다.

메시지 주셔서 감사합니다.

수정됨

 
fxsaber :

우리는 Sleep을 사용 하지 않고 Tester에 대해서만 이야기하고 있기 때문입니다 - Expert Advisors의 99%.

테스터의 임의적 지연에 대해 주장하지 않을 것입니다. 이 모드가 유용하다고 본 적이 없습니다.

근본적으로 아무것도 변경하지 않고 기록을 다음과 같이 하는 것이 더 쉽습니다(사실상 그렇습니다).

 SymbolInfoTick ( NULL , tick ); //1

의미할 것이다

 SymbolInfoTick ( Symbol (), tick ); //2

최소한 줄 복사 문제가 사라집니다.

 
A100 :

근본적으로 아무것도 변경하지 않고 기록을 다음과 같이 하는 것이 더 쉽습니다(사실상 그렇습니다).

의미할 것이다

최소한 줄 복사 문제가 사라집니다.

그는 결국 다른 것을 요구합니다. 각 틱에서 MqlTick 구조에 가장 빠르게 액세스해야 합니다.

_Symbol ....에 대한 액세스 권한이 있다는 역설이 있는 것 같지만 액세스 권한이 없습니다.

 const MqlTick _Tick; // Текущий _Symbol-тик.

MQL 언어는 거래 전략 개발을 위한 언어로 자리 잡고 있지만.... 현재 틱의 현재 가격 을 모르면 TS가 무엇인지 모르겠습니다.

 
Igor Makanu :

그는 결국 다른 것을 요구합니다. 각 틱에서 MqlTick 구조에 가장 빠르게 액세스해야 합니다.

옵션은 무엇입니까

 SymbolInfoTick ( NULL , tick ); //1

만족하지? 여기서 병목 현상이 어디에 있는지 표시하십시오. 속도가 느리면 개발자는 근본적인 변경 없이 이러한 호출을 인라인/최적화할 수 있습니다.

 
A100 :

옵션은 무엇입니까

만족하지? 속도가 느리면 개발자는 이러한 호출을 인라인/최적화할 수 있습니다.

예, 적어도 테스터에서는 느립니다. 테스터에서 다음과 같이 씁니다. https://www.mql5.com/en/forum/1111/page2749#comment_16487642

많은 수의 옵티마이저 패스로 이득이 나타납니다.


어떻게 설명해야 할지 모르겠어, 기본적인 것들은 어떻게 설명해야 할지 모르겠어..

글쎄, 그들은 어떻게 철자가 EA입니까? - 절차적 또는 OOP 스타일로 라이브러리를 수집합니다. 각 기능은 다른 프로젝트에 완전히 이식할 수 있으며 이를 보장하기 위해 Bid, Ask every-예제를 작성합니다. 그런 다음 공백에서 거래 전략을 구성합니다. 개발자가 현재 제공하는 것 - 모든 곳에서 SymbolInfoDouble()을 작성합니다.

사유: