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

 
예, 이제 4초 동안 앞서 갔습니다.
 
추세선 이 위치를 변경할 때 중간점이 사라지는 이유는 무엇입니까?
 

안녕하세요!

시각적 테스트 중에 특정 변수의 값이 각 막대에서 어떻게 변하는지 그래픽으로 확인해야 합니다. 하위 창에서 별도의 그래프를 빌드해야 합니다. 예를 들어 차트 아래의 별도 창에서 각 막대의 자기자본 변동 차트를 보고 싶습니다.

어떻게 하면 더 잘할 수 있나요? 지표를 작성하고 차트에 첨부하고 터미널의 전역 변수를 통해 EA에서 변수 값을 전달합니까? 아니면 더 "아름다운" 방법이 있습니까?

미리 감사드립니다.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
Alex5757000 :

안녕하세요!

시각적 테스트 중에 특정 변수의 값이 각 막대에서 어떻게 변하는지 그래픽으로 확인해야 합니다. 하위 창에서 별도의 그래프를 빌드해야 합니다. 예를 들어 차트 아래의 별도 창에서 각 막대의 자기자본 변동 차트를 보고 싶습니다.

어떻게 하면 더 잘할 수 있나요? 지표를 작성하고 차트에 첨부하고 터미널의 전역 변수를 통해 EA에서 변수 값을 전달합니까? 아니면 더 "아름다운" 방법이 있습니까?

미리 감사드립니다.

전혀 그렇지 않습니다. 지표에서 직접 자본 또는 잔액 값을 얻을 수 있습니다.

표시기 버퍼를 막대 차트로 그리기 위한 매개변수를 설정합니다.

4가지 값 모두를 적절한 버퍼에 씁니다.

바가 열릴 때 열리고 하이-로우 및 동적으로 닫힙니다(마지막 바).

간단히 말해서 다음과 같습니다. 첨부 파일에서

물론 절대 값(주석 처리된 버전)을 가질 수도 있지만 작은 초기 증분은 잘 보이지 않을 것이라고 생각합니다.

추신과 그렇지는 않지만 두 번째 옵션도 가능하도록 동적 스케일이 있습니다. 꽤 읽을 수 있습니다.

파일:
 
Urain :

전혀 그렇지 않습니다. 지표에서 직접 자본 또는 잔액 값을 얻을 수 있습니다.

표시기 버퍼의 그리기 매개변수를 막대 차트로 설정합니다.

4가지 값 모두를 적절한 버퍼에 씁니다.

바가 열릴 때 열리고 하이-로우 및 동적으로 닫힙니다(마지막 바).

자기자본과 잔고가치 - 예, 하지만 EA에서 계산된 변수의 값을 보고 싶다면?
 

차트에 OBJ_LABEL을 표시 합니다.

더 많은 것은 여기에서 읽을 수 있습니다:

https://www.mql5.com/ru/forum/1111/40260#comment_40260

https://www.mql5.com/ru/forum/2963

 
Alex5757000 :
자기자본가치와 잔고가치 - 예, 하지만 EA에서 계산된 변수의 값을 보고 싶다면?

사용자 정의 이벤트 를 통해 보낼 수 있습니다. 이벤트 차트에서 업데이트한 후에만 기억하십시오.

그렇지 않으면 큐의 순서대로 이벤트가 처리되기 전에 틱이 옵니다.

위협, 전역을 통해 가능하지만 동일한 문제가 이미 발생했으며 변수가 여전히 EA에서 처리 중입니다(변경 사항 준비 중). 물론 데이터는 도달하지만 지연이 있습니다. 한 틱, 그것은 이벤트에서 여전히 더 정확할 것입니다. 변수에 실제 데이터가 있다는 것이 이미 알려진 경우 사실 뒤에 차트 업데이트를 넣을 위치가 있습니다.

 

다음은 " 'return' 오류와 함께 컴파일되지 않는 코드입니다. " 문자열 " CTest getCopy( void ) {CTest res; return res;} " 때문에 " 구조에 개체가 있고 복사할 수 없습니다 ."

이것은 2가지 방법으로 고칠 수 있습니다:

1) " class "를 " struct "로 변경

2) 오버로드된 할당 연산자 로 드레인의 주석 처리를 제거합니다.

즉, 복사 생성자의 역할이 오버로드된 할당 연산자에 의해 수행되도록 해야 합니까? 그렇다면 매트릭스 클래스의 한 가지 예(그런데 자세한 분석을 통해 내 코드에서 오류를 찾을 수 있음)를 제외하고 이것이 참고서에 표시되지 않은 이유는 무엇입니까?

 class CTest
  {
public :
    CTest( void ): cnt( 0 ) {}
   ~CTest( void ) {}
    CTest( const CTest& T) {cnt = T.cnt;} // copy constructor
     //------------------------
    CTest getCopy( void ) {CTest res; return res;} 
     //------------------------
     //CTest* operator=(const CTest& T) {cnt = T.cnt; return GetPointer(this);}
private :
         int cnt;
  };
Документация по MQL5: Основы языка / Операторы / Оператор-выражение
Документация по MQL5: Основы языка / Операторы / Оператор-выражение
  • www.mql5.com
Основы языка / Операторы / Оператор-выражение - Документация по MQL5
 
WWer :

다음은 " 'return' 오류와 함께 컴파일되지 않는 코드입니다. " 문자열 " CTest getCopy( void ) {CTest res; return res;} " 때문에 " 구조에 개체가 있고 복사할 수 없습니다 ."

글쎄, 자연스럽게. 함수에서 개체를 반환할 수 없습니다. ( struct 와 반대 ) 문서화되어 있습니다.


이것은 2가지 방법으로 고칠 수 있습니다:

1) " class "를 " struct "로 변경

위 참조.

2) 오버로드된 할당 연산자 로 드레인의 주석 처리를 제거합니다.

글쎄, 자연스럽게. 오버로드된 연산자는 핸들 포인터를 반환합니다. 이제 getCopy() 함수에서 반환되는 것은 더 이상 객체가 아니라 포인터(함수로부터의 반환은 암시적 할당)이므로 코드가 정확합니다.

// 문법적으로만 정확합니다.

// getCopy() 함수에서 초기화되지 않은 변수를 반환하는 것은 구문 문제를 보여주기만 하고 합리적인 척하지 않기를 바랍니다.

즉, 복사 생성자의 역할이 오버로드된 할당 연산자에 의해 수행되도록 해야 합니까?

어 ... 그리고 여기에 역할이 있습니까? 할당 연산자를 원하는 대로 오버로드하고 복사 생성자를 올바르게 작성할 수 있습니다. 귀하의 오류는 다른 곳에 있습니다.


그렇다면 매트릭스 클래스의 한 가지 예(그런데 자세한 분석을 통해 내 코드에서 오류를 찾을 수 있음)를 제외하고 이것이 참고서에 표시되지 않은 이유는 무엇입니까?

2096785년 2월 11일에 공룡 Vasya가 그리스도 탄생 전 도마뱀 Klava를 잘못 밟았기 때문입니다. 이것은 현재 상황을 초래한 긴 원인과 결과의 사슬을 수반했습니다. 할 일이 없습니다.

;)

 
MetaDriver : // getCopy() 함수에서 초기화되지 않은 변수를 반환하는 것은 구문 문제를 보여주는 데만 사용되며 합리적인 척하지 않습니다.

왜 초기화합니까? 이것은 단지 이것을 위한 생성자가 있는 클래스의 인스턴스입니다.

메타드라이버 :
어 ... 그리고 여기에 역할이 있습니까? 할당 연산자 를 원하는 대로 오버로드하고 복사 생성자를 올바르게 작성할 수 있습니다. 귀하의 오류는 다른 곳에 있습니다.

그렇다면 이 목적을 위해 복사 생성자를 작성하는 것이 어떻게 올바른가요?