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

 
Andreas Hoogendoorn # :

CGraphic 및 CCurve 클래스를 사용하고 있는데 이상한 일이 발생합니다. 다른 통화 쌍에서 동일한 EA의 두 인스턴스를 실행하고 있습니다. 차트를 스크롤하면 다른 차트가 잠시 동안 표시됩니다. 두 차트 사이에 메모리가 엉망인 것 같습니다. 터미널을 다시 시작해도 아무런 차이가 없습니다. (사진은 애니메이션 gif입니다)


최소한의 예를 게시할 수 있습니까? 그리고 다음과 같이 터미널 및 운영 체제 데이터를 지정하십시오.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

매우 글리치한 메타 트레이더

블라디미르 카르푸토프 , 2021.03.16 04:20

질문이 있는 경우 먼저 '저널' 탭의 처음 세 줄을 표시해야 합니다.


(이 줄을 선택하고 클립보드에 복사한 다음 버튼을 사용하여 메시지에 붙여넣습니다. 암호 ). 다음과 같이 표시되어야 합니다.

 2021.03 . 16 05 : 13 : 07.133 Terminal        MetaTrader 5 x64 build 3003 started for MetaQuotes Software Corp.
2021.03 . 16 05 : 13 : 07.134 Terminal        Windows 10 build 19042 , Intel Core i7- 9750 H  @ 2.60 GHz, 26 / 31 Gb memory, 842 / 947 Gb disk, IE 11 , UAC, GMT+ 2
2021.03 . 16 05 : 13 : 07.134 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

 
Andreas Hoogendoorn # :

CGraphic 및 CCurve 클래스를 사용하고 있는데 이상한 일이 발생합니다. 다른 통화 쌍에서 동일한 EA의 두 인스턴스를 실행하고 있습니다. 차트를 스크롤하면 다른 차트가 잠시 동안 표시됩니다. 두 차트 사이에 메모리가 엉망인 것 같습니다. 터미널을 다시 시작해도 아무런 차이가 없습니다. (사진은 애니메이션 gif입니다)


좋아 여전히 버그이지만 문제를 해결했습니다 !!!

CGraphic 클래스를 사용하는 경우 그래픽 리소스를 생성할 때 고유한 이름을 사용해야 합니다.

리소스는 원래대로 격리되지 않습니다. 한 차트의 EA는 다른 차트의 리소스에 액세스할 수 있습니다.


 2022.04 . 17 12 : 44 : 13.049 Terminal        MetaTrader 5 x64 build 3260 started for MetaQuotes Software Corp.
2022.04 . 17 12 : 44 : 13.050 Terminal        Windows 10 build 19044 , 4 x Intel Core i5   750 @ 2.67 GHz, 4 / 11 Gb memory, 4 / 124 Gb disk, UAC, GMT- 3
2022.04 . 17 12 : 44 : 13.050 Terminal        C:\Users\andre\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

#include <Graphics\Graphic.mqh>
CGraphic          graphic;

graphic.Create( 0 , "test" , 0 , 0 , 0 , 1200 , 400 );

이 예제는 실패합니다.

 graphic.Create( 0 , ( string ) MathRand (), 0 , 0 , 0 , 1200 , 400 );
이 예는 괜찮습니다.
 

이미 그것에 대해 썼습니다 . 하지만 정말 충분합니다.
이 사이트의 백엔드 개발자 여러분, 이 문제를 수정하십시오.
한 번도 구매하지 않은 유료 제품의 새 버전에 대한 알림이 하루에도 몇 번씩 지속적으로 도착합니다.

이 링크를 따릅니다.

 
Andreas Hoogendoorn # :

CGraphic 및 CCurve 클래스를 사용하고 있는데 이상한 일이 일어나고 있습니다. 다른 통화 쌍에서 동일한 EA의 두 인스턴스를 실행하고 있습니다. 한 그래프를 스크롤하면 다른 그래프가 잠시 동안 표시됩니다. 두 그래프 사이에 메모리가 혼동되는 것 같습니다. 터미널을 다시 시작해도 아무 것도 변경되지 않습니다. (사진은 애니메이션 gif입니다)


차트의 그래픽 개체를 만들 때 이름에 추가해야 하는 이름은 예를 들어 차트가 그려질 차트의 ID입니다.

   CGraphic graphic;

   graphic.Create( 0 , "G" +( string )ChartId(), 0 , 30 , 30 , 780 , 380 );


그렇지 않으면 두 차트의 그래픽 리소스 이름이 동일하고 그래픽 리소스가 터미널에 대해 전역적이기 때문에 두 프로그램은 동일한 리소스로 작동합니다(즉, 동일한 캔버스에 그리기).

 

오류: OrderCalcMargin이 잘못된 값을 반환합니다.


OrderCalcMargin()은 때때로 필요한 여백의 잘못된 값을 반환합니다.

예를 들어 많은 주요 외환 쌍과 다른 많은 CFD 등에서 제대로 작동하며 올바른 값을 반환합니다.


그러나 USDPLN이나 PLATINUM 또는 다른 곳에서는 필요한 마진의 절대적으로 잘못된 값을 반환합니다.

EURUSD 및 USDPLN에 대해 요청한 ENUM_SYMBOL_CALC_MODE 는 동일하지만( SYMBOL_CALC_MODE_FOREX ) EURUSD의 경우 함수가 필요한 마진의 올바른 값을 반환하면 USDPLN의 경우 잘못된 것입니다.

왜 그래?

 

안녕하세요! 나는 주소로 편지를 쓰기를 바랍니다.

우리는 MT5(버전 5.00 빌드 3260, Just2Trade)에서 경고가 사라지는 것에 대해 이야기하고 있습니다.

결론: 경고를 추가(또는 변경)하고 창을 닫지 않고 컴퓨터를 다시 시작하면(시작-종료-다시 시작)
그러면 경고의 모든 변경 사항이 사라집니다 . 그리고 보존하기 위해서는 십자로 터미널 창을 닫는 것을 잊지 말아야 합니다.

KMK는 수정해야 할 꽤 힘든 버그입니다.

 
Lazar Buga # : 왜 그래?

당신의 중개인이 망했습니다. 그들과 이야기하십시오.

 
Ilyas # :

차트의 그래픽 개체를 만들 때 이름에 추가해야 하는 이름은 예를 들어 차트가 그려질 차트의 ID입니다.


그렇지 않으면 두 차트의 그래픽 리소스 이름이 동일하고 그래픽 리소스가 터미널에 대해 전역적이기 때문에 두 프로그램은 동일한 리소스로 작동합니다(즉, 동일한 캔버스에 그리기).

그래픽 개체의 리소스 이름은 63자를 초과할 수 없습니다. 이름에 차트 식별자를 추가하면 불행히도 제대로 읽을 수 있는 이름을 위한 공간이 거의 남지 않습니다.

 
a18 # :

안녕하세요! 나는 주소로 편지를 쓰기를 바랍니다.

우리는 MT5(버전 5.00 빌드 3260, Just2Trade)에서 경고가 사라지는 것에 대해 이야기하고 있습니다.

결론: 경고를 추가(또는 변경)하고 창을 닫지 않고 컴퓨터를 다시 시작하면(시작-종료-다시 시작)
그러면 경고의 모든 변경 사항이 사라집니다 . 그리고 보존하기 위해서는 십자로 터미널 창을 닫는 것을 잊지 말아야 합니다.

KMK는 수정해야 할 꽤 힘든 버그입니다.

수정됨, 베타 버전입니다.

 
컴파일 중 오류:
 template < typename T>
struct A {
    T *t;
};
void OnStart()
{
    A< void > a; // Error: 'void' - expression of 'void' type is illegal
}