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

 

내 질문은 이미 날아갔습니다.)) 반복합니다.

톨64:
어떤 이유로 Expert Advisors는 2001년과 2006년 사이에 테스트되지 않았습니다. 유로와 파운드를 살펴보았습니다. 터미널을 닫고 기록을 삭제했습니다. 새로고침 상관없습니다. 2001년 이전 거래가 열렸습니다. 그리고 2001년부터 2006년까지 신호가 있으면 합격. 왜요?

---
추가 정보. 이것은 테스터 설정에서 D1 시간 프레임이 선택된 경우에만 발생합니다. 전문가 설정 에서 D1 기간을 선택하고 테스터의 TF가 더 작은 경우 간격이 없습니다. 이것은 버그입니까 아니면 이에 대한 설명이 있습니까?

비슷한 문제가 발생한 사람이 있습니까?
[삭제]  
Yedelkin :
따라서 작성자가 제공한 코드 를 보십시오. 이 경우 PositionGetDouble이 호출됩니다. :)

글쎄요, 원칙적으로 포지션이 없다고 판단되어 특정 포지션의 선택이 실패로 끝난 후 데이터를 얻습니다...

왠지 이상합니다.

 
papaklass :

베델킨에게

다시. 도움말에 따르면 새로운 위치 데이터를 얻으려면 요청하기 직전 에 PositionSelect( Symbol() ) 함수를 호출하는 것이 좋습니다. 내가 제공한 코드는 이 주장을 반박합니다. 논리적인 관점에서 코드 자체는 터무니없지만 도움말에 있는 설명의 부정확성을 강조합니다.

지금:

그리고 잼은 위치가 없는 경우 PositionGetDouble(POSITION_VOLUME) 함수가 0을 반환해야 한다는 것입니다. 모두. 임호.

아니 당신이 틀렸어....

volume=0인 (PositionSelect()) 위치 있으면 0을 반환합니다.

아니면 포지션이 없으면 포지션을 반환해야 하고 시가=0이라고 생각하시나요?!?

 
papaklass :

그리고 잼은 위치가 없는 경우 PositionGetDouble(POSITION_VOLUME) 함수가 0을 반환해야 한다는 것입니다.

:) "잼"은 열린 위치가 없으면 데이터를 요청하고 이러한 데이터를 기반으로 추가 계산을 수행하는 것이 의미가 없다는 것입니다.

..글쎄, 당신이 그 위치가 누락되었다는 것을 확실히 알고 있다고 가정해 봅시다. 위치가 없는 것으로 이미 알려진 경우 왜 그것에 대한 데이터를 요청(추가 단계를 수행)합니까? 코드를 약간 다시 작성하는 것이 더 쉽습니다.

파파클라스 :

다시. 도움말에 따르면 새로운 위치 데이터를 얻으려면 요청하기 직전 에 PositionSelect( Symbol() ) 함수를 호출하는 것이 좋습니다. 내가 제공한 코드는 이 주장을 반박합니다. 논리적인 관점에서 코드 자체는 터무니없지만 도움말에 있는 설명의 부정확성을 강조합니다.

위의 코드 는 작성자가 "신선한 데이터를 확보하기 위해" PositionSelect() 함수를 호출한다고 말하고 함수는 실패를 보고하지만 작성자는 계속해서 새로운 위치 데이터를 요구합니다. 바르게?

그러나 다음과 같은 일이 발생합니다.

  • (a) PositionSelect 기능의 실패는 새로운 위치 데이터가 (저자가 원하는 대로) 환경에 복사되지 않았음을 의미합니다.
  • (b) PositionGetDouble, PositionGetInteger 및 PositionGetString에 대한 후속 호출은 PositionSelect 함수가 성공했을 때 이전에 복사된 데이터를 반환합니다.

즉, 개발자는 함수를 호출하여 성공하면 새로운 위치 데이터로 작업을 계속하고 함수가 false를 반환하면 아무 것도 약속하지 않을 것을 권장합니다. ...false가 수신되면 개발자는 약간 다른 절차를 권장합니다. :)

2. 또한 새 버전의 코드를 고려하십시오.

 if ( PositionSelect ( Symbol ()))
   { //---еще одно непосредственное обращение
       //---например, расчитываем объем позиции при доливки
   } 
else 
   {
       //---например, расчитываем объем позиции при отсутствии позиции
   }

여기서 PositionSelect() 함수가 성공적으로 완료되지 않은 경우 즉시 "포지션 이 없는 상태에서 포지션의 볼륨을 계산"하는 것을 제안합니다. 그러나 PositionSelect() 함수의 실패는 자동으로 위치가 없다는 것을 의미한다고 누가 말했습니까? PositionSelect() 함수의 실패 이유는 다를 수 있습니다.

[삭제]  

개발자에게 돌아가고 싶다...

그림으로 지정 가격에 도달했을 때 보류중인 주문 을 삭제할 수있는 것이 중요하다고 말하고 싶습니다. 그런 기회가 없다면 MT4 트레이더인 저에게는 훨씬 더 흥미롭습니다. 이에 대한 향후 계획을 말씀해 주십시오. 고맙습니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
파일:
zhq04b2p01.png  16 kb
 

테스터로 작업할 때 터미널이 매우 자주 충돌합니다.

[삭제]  
tol64 :

테스터로 작업할 때 터미널이 매우 자주 충돌합니다.

터미널 충돌 보고서는 자동 모드에서 개발자가 정기적으로 수신하는 것 같습니다. 그러나 원하는 경우 모든 세부 정보를 지정하고 로그를 첨부하는 SD에 신청서를 제출할 수 있습니다.
 
tol64 :

테스터로 작업할 때 터미널이 매우 자주 충돌합니다.

서비스 데스크에서 귀하의 상황을 자세히 설명하십시오.

  • 테스트 중 전문가 입력 매개변수
  • 표시기를 부착하십시오(수정 후 표시기는 제거됩니다).
 
Interesting :
터미널 충돌 보고서는 자동 모드에서 개발자가 정기적으로 수신하는 것 같습니다. 그러나 원하는 경우 모든 세부 정보를 지정하고 로그를 첨부하는 SD에 신청서를 제출할 수 있습니다.
즉, 세부 정보 >> 섹션에 있는 정보는 인터넷이 켜져 있으면 자동으로 개발자에게 전송됩니까? 그렇다면 훌륭합니다. 모든 것이 자동화되어야 합니다.)))
 
ALozovoy :

서비스 데스크에서 귀하의 상황을 자세히 설명하십시오.

  • 테스트 중 전문가 입력 매개변수
  • 표시기를 부착하십시오(수정 후 표시기는 제거됩니다).

알겠습니다. 나중에 할게요.