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

 
Roman :

이전 페이지에서 fxsaber는 측정값을 제공했습니다.
왜 이런 일이 일어나는지 설명했습니다.
항상 메모리를 정적으로 또는 동적으로 할당하십시오.

측정값은 정확히 무엇입니까? 큰 테이블에 대해 이야기하는 경우 화면에 왼쪽 부분만 표시되고 나머지는 잘립니다. 그래서 나는 거기에 무엇이 있는지 모릅니다.

그러나 코드로 판단하면이 매크로가 거기에서 비교되면

GetCurrentTick2(Tick, !i)

100회 반복당 하나의 함수 호출 만 있습니다. 그리고 첫 번째 매크로에서 - 각 반복에 대한 호출. 그래서 그것은 일종의 넌센스입니다.

 
Alexey Navoykov :

측정값은 정확히 무엇입니까? 큰 테이블에 대해 이야기하는 경우 화면에 왼쪽 부분만 보이고 나머지 부분은 잘립니다. 그래서 나는 거기에 무엇이 있는지 모릅니다.

그러나 코드로 판단하면이 매크로가 거기에서 비교되면

100회 반복당 하나의 함수 호출 만 있습니다. 그리고 첫 번째 매크로에서 - 각 반복에 대한 호출. 그래서 그것은 일종의 넌센스입니다.

컴파일러는 만능이 아니므로 때때로 참여하여 올바른 코드로 그를 도와야 합니다.))

 
Sergey Dzyublik :
ME 디버거(빌드 2370)의 결함 - StepInto(F11) 및 설정된 중단점이 작동하지 않습니다.
문제는 함수를 호출하기 위해 한 번 이상 StepOver(F10) 동작을 적용하면 앞으로 이 함수를 더 이상 디버그할 수 없다는 것입니다.

재생 단계:
1) 디버그 모드에서 코드를 실행합니다.
2) 중단점에 도달한 후 StepOver(F10)를 두 번 실행합니다.

그게 다야 - 이제 Increment 함수 내에서 "가져올" 방법이 없고 수동으로 설정한 모든 중단점이 작동하지 않으며 StepInto(F11) 작업 대신 StepOver(F10)가 실제로 실행됩니다.


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

수정됨

 
Roman :

컴파일러는 만능이 아니므로 때때로 참여해야 함))

뭐라고요? 당신은 당신의 디자인이 더 빨리 작동한다고 주장했지만 더 빨리 작동하지 않습니다. 해당 코드에서 호출될 가능성이 100배 적습니다.
 
Alexey Navoykov :

100회 반복당 하나의 함수 호출 만 있습니다. 그리고 첫 번째 매크로에서 - 각 반복에 대한 호출. 그래서 그것은 일종의 넌센스입니다.

테스트, 정확도로 결함을 찾지 못했지만 여기에는 필요하지 않은 경우 플러스 또는 마이너스가 정상입니다.
비교: SymbolInfoTick 100번 호출 VS SymbolInfoTick 1번 호출, "수동" 캐시의 99배 반환
함수가 한 패스에서 두 번 이상 호출될 때 현재 심볼이 표준 SymbolInfoTick 함수를 사용하는 것이 얼마나 수익성이 없는지 보여줍니다.
문제에 대한 가능한 솔루션으로 개발자는 미리 정의된 변수를 도입하도록 초대됩니다.

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



fxsaber 가 악마가 다리를 부러뜨릴 것이라는 설명도 없이 게시물에 모든 것을 흩어놓았을 뿐입니다.

 
Alexey Navoykov :

100회 반복당 하나의 함수 호출 만 있습니다. 그리고 첫 번째 매크로에서 - 각 반복에 대한 호출. 그래서 그것은 일종의 넌센스입니다.

그의 예는 MQL 프로그램의 다른 부분에서 입찰/매도 데이터의 특정 사용입니다. SymbolInfoTick()을 더 자주 호출할수록 테스트 성능이 떨어집니다.

내 프로파일러에서 TimeCurrent()의 성능에 대한 논란의 여지가 있는 섹션을 발견하고 다양한 방법으로 시도한 다음 완전히 포기했습니다.

나는 변수의 전역 가시성을 거의 사용하지 않지만 테스터에서 모든 것이 "비행"하기 위해 다음과 같이 작성합니다.

 MqlTick Tick = { 0 };
#define Ask Tick.ask
#define Bid Tick.bid
#define TimeCurrent_ Tick.time
//+------------------------------------------------------------------+
void OnTick ()
{
   SymbolInfoTick ( _Symbol ,Tick);
  ....
}
 
Alexey Navoykov :
뭐라고요? 당신은 당신의 디자인이 더 빨리 작동한다고 주장했지만 더 빨리 작동하지 않습니다. 해당 코드에서 호출될 가능성이 100배 적습니다.

이것은 내 디자인이 아니며 그 예제에서 이해했듯이 테스트를 위해 매크로를 하나씩 호출했습니다.
그리고 패스 리포트는 잘려도 함께 보여주지만 실행시간은 보입니다.

 
Sergey Dzyublik :

테스트, 정확도로 결함을 찾지 못했지만 여기에는 필요하지 않은 경우 플러스 또는 마이너스가 정상입니다.
비교: SymbolInfoTick 100번 호출 VS SymbolInfoTick 1번 호출, "수동" 캐시의 99배 반환

예, 캐시에 대해 이해합니다. 여기 이 로마인이 메모리 할당에 대해 뭔가를 문지른 것뿐입니다 ... 트롤에 대해 당신이 옳았던 것 같습니다)

 
Alexey Navoykov :

예, 캐시에 대해 이해합니다. 여기 이 로마인이 메모리 할당에 대해 뭔가를 문지른 것뿐입니다 ... 트롤에 대해 당신이 옳았던 것 같습니다)

그리고 캐시가 어디에 할당된다고 생각하십니까? 패자.

 
Sergey Dzyublik :

테스트, 정확도로 결함을 찾지 못했지만 여기에는 필요하지 않은 경우 플러스 또는 마이너스가 정상입니다.
비교: SymbolInfoTick 100번 호출 VS SymbolInfoTick 1번 호출, "수동" 캐시의 99배 반환
함수가 한 패스에서 두 번 이상 호출될 때 현재 심볼이 표준 SymbolInfoTick 함수를 사용하는 것이 얼마나 수익성이 없는지 보여줍니다.
문제에 대한 가능한 솔루션으로 개발자는 미리 정의된 변수를 도입하도록 초대됩니다.

저를 100% 이해하셨습니다.

fxsaber 가 악마가 다리를 부러뜨릴 것이라는 설명도 없이 게시물에 모든 것을 흩어놓았을 뿐입니다.

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