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

 
여기요!

주어진: MT5 터미널에 있는 두 개의 차트(예: EURUSD H1 , EURUSD H1). 그래프에 각각 숫자 1과 2가 있고 왼쪽에서 오른쪽으로 번호가 매겨집니다.

숫자 1이 있는 차트에 "패널"(거의 모든 것)을 배치할 때 차트 2로 전환하고 차트 1로 돌아간 후 패널이 최소화되어 왼쪽 상단 모서리로 축소됩니다.

동시에 "패널"이 차트 2에 배치되면 기존 차트 1과 함께 차트 1로 전환하고 차트 2로 돌아갈 때 최소화 - "패널"을 왼쪽 상단으로 접는 현상이 발생하지 않습니다. :).

누가 본질이 무엇이며 어떻게 처리해야 하는지 설명할 수 있습니까?

패널-01패널-02
파일:
 
SEM :

안녕하세요!

최신 버전(2007 빌드 , 2019년 2월 25일)에는 두 가지 버그가 있습니다.

하나)       1) 프로그램을 열 때(또는 프로필을 변경할 때) 많은 차트(총 41개)에 영원한 "업데이트 대기 중"이 표시됩니다.

2)       2) 프로그램을 닫았을 때 완전히 닫히지 않고, 작업 관리자는 더 이상 시각적으로 표시되지 않지만 프로그램이 닫히지 않았다고 표시합니다.

삼)       논란의 여지가있는 버그 (2018 년 12 월 버전에서는 모든 것이 잘 작동했으며 오류가 없었음), 표시기에 오류가있을 수 있습니다. 프로그램을 시작하거나 프로필을 변경할 때 표시기가 렌더링 된 데이터에 따라 잘못 계산됩니다. 데이터의 일부가 잘못 계산되었음을 알 수 있습니다. 템플릿을 다시 적용하거나 지표 속성을 열고 닫을 때 데이터가 올바르게 계산됩니다.

4)       어떤 이유로 업데이트 후 에이전트가 클라우드에서 작동을 중지했습니다(계정이 지정됨). 586개의 테스트를 통과했으며 경과 시간은 0시간 0분입니다.

차트 그리기 오류는 표준 표시기에서도 발생하며 터미널을 다시 시작하고 작업 관리자를 통해 강제 종료하는 것만으로도 도움이 됩니다.

무엇이 잘못되었을 수 있습니까? 로드된 기호별 기록.

오류

 
SEM :

차트 그리기 오류는 표준 표시기에서도 발생하며 터미널을 다시 시작하고 작업 관리자를 통해 강제 종료하는 것만으로도 도움이 됩니다.

무엇이 잘못되었을 수 있습니까? 기호 기록이 로드되었습니다.


도 만났다. 나는 최신 버전에서 그것을 말하지 않을 것이지만 이전 버전에서는 - 확실히. 주로 표시기에서 개체(레이블 등)로 작업 합니다. 아마도 이것은 많은 수의 표시기 배열 때문일 것입니다. "INDICATOR_DATA" 및 "INDICATOR_CALCULATIONS" 모두 평균 약 40개입니다. 솔루션도 동일했습니다. 작업 관리자의 프로그램 목록에서 터미널을 강제로 제거했습니다. 그런데 표시기는 메모리가 제공되면 터미널에서 성공적으로 컴파일된 후에도 이러한 상황에서 업데이트되지 않았습니다. 하지만 여기서 확실하지 않습니다. 디스패처에서 작업을 제거하는 것이 더 쉬웠습니다.

ㅏ. 그것이 어떻게 나왔는지. 동일한 수의 어레이로 코드를 최적화하여 이러한 어레이의 가능한 최소 수의 데이터가 단위 시간당 처리되도록 합니다.

Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
  • www.metatrader5.com
Определение трендов, построение каналов, выявление циклов и уровней поддержки/сопротивления — все эти и многие другие задачи решаются при помощи аналитических объектов. Всего в торговой платформе доступно 46 таких инструментов. Среди них имеются геометрические фигуры, различные каналы, инструменты Ганна, Фибоначчи, Эллиотта и многое другое. В...
 
Ilya Malev :

나는 이전에 MT5에서 TS의 조밀한 개발에 참여하지 않았기 때문에 그러한 미묘함을 인식하지 못합니다. 시장 상황은 어떻습니까? 뉴스는 무엇입니까? 테이크는 동일한 지정가 주문이며, 간격에 빠지면 첫 번째 견적에서 실행되어야 합니다. 즉, 제한의 경우 플러스로 밀어 넣습니다. 품질 중개인은 실생활에서 이것을 허용할 수 있습니다. 물론 이것이 규칙은 아니지만. 그러나 바당 스프레드가 모든 곳에서 최대로 취해지면 한계에서의 이 이득은 완전히 보상될 것입니다.

Take Tester 등에서 미끄러짐을 확인하는 가장 빠른 방법일 것입니다.

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

라이브러리: TradePanel_Csharp

fxsaber , 2019.03.05 10:10

데모

SlipPage 칼럼 보기

SlipPage 열은 시작(한계 기준) 및 닫힘(테이크 기준) 시 미끄러짐을 핍 단위로 보여줍니다. 테스터가 실제 틱 모드에서 이익을 과대 평가하는 방법을 명확하게 볼 수 있습니다.

 
다른 컴파일러에도 이 기능이 있습니까?
 void OnInit ()
{
  OnInit2(); // Пропишите внизу OnInit
}

#define OnInit OnInit2
이제 컴파일러 출력
'OnInit2' - function not defined        Test3.mq5       3       3
1 error(s), 0 warning(s)                2       1


그리고 발행하고 싶습니다.

'OnInit2' - function not defined        Test3.mq5       3       3 Пропишите внизу OnInit
1 error(s), 0 warning(s)                2       1
 
fxsaber :
다른 컴파일러에 이 옵션이 있습니까?이제 컴파일러 문제


그리고 발행하고 싶습니다.

컴파일러에서는 그럴 가능성이 거의 없으며 인터프리터에서는 가장 가능성이 높습니다. 컴파일러에서는 함수 또는 변수 호출에 대한 포인터의 정적 바인딩이 일반적으로 사용됩니다(이와 같이 들릴까요?). 컴파일 타임에 모든 포인터 오프셋이 계산됩니다.

귀하의 예에서 모든 것은 구식 방식입니다. #define 및 #ifndef( _DEBUG ? )

 
Igor Makanu :

컴파일러에서는 그럴 가능성이 거의 없으며 인터프리터에서는 가장 가능성이 높습니다. 컴파일러에서는 함수 또는 변수 호출에 대한 포인터의 정적 바인딩이 일반적으로 사용됩니다(이와 같이 들릴까요?). 컴파일 타임에 모든 포인터 오프셋이 계산됩니다.

귀하의 예에서 모든 것은 구식 방식입니다. #define 및 #ifndef( _DEBUG ? )

나는 컴파일러가 줄 주석으로 오류 메시지를 완성하기를 원했습니다.

 
Vjacheslav Lapaev :

도 만났다. 나는 최신 버전에서 그것을 말하지 않을 것이지만 이전 버전에서는 - 확실히. 주로 표시기에서 개체(레이블 등)로 작업 합니다. 아마도 이것은 많은 수의 표시기 배열 때문일 것입니다. "INDICATOR_DATA" 및 "INDICATOR_CALCULATIONS" 모두 평균 약 40개입니다. 솔루션도 동일했습니다. 작업 관리자의 프로그램 목록에서 터미널을 강제로 제거했습니다. 그런데 표시기는 메모리가 제공되면 터미널에서 성공적으로 컴파일된 후에도 이러한 상황에서 업데이트되지 않았습니다. 하지만 여기서 확실하지 않습니다. 디스패처에서 작업을 제거하는 것이 더 쉬웠습니다.

ㅏ. 그것이 어떻게 나왔는지. 동일한 수의 어레이로 코드를 최적화하여 이러한 어레이의 가능한 최소 수의 데이터가 단위 시간당 처리되도록 합니다.

조언 해주셔서 감사합니다! 물론 프로그램이 불안정한 점은 아쉽지만 12월 버전에는 그런 오류가 없었다.
 
Ilyas :

나는 제시된 코드를 자세히 살펴보지 않았습니다. 추측해 보겠습니다. 문제는 두 EA가 동일한 그래픽 리소스로 작동한다는 것입니다.

이것은 표준 라이브러리 클래스 CAppDialog를 사용 하는 예입니다.

이 클래스를 사용하면 패널에서 차트를 전환할 때 Minimize() 메서드가 항상 호출됩니다.

나는 그것을 이해하고 싶지 않았고, 나는 단지 내 자신의 OnClickButtonMinMax()를 썼습니다. 그것은 매우 비뚤어졌지만 문제 없이 작동했습니다. 나는 그것을 내 소스에서 찢었습니다.

CAppDialog::OnClickButtonMinMax()
  {
   if (Width()< 200 ) Minimized_state= false ;
   if (Minimized_state)
     {
      Minimize();
     }
   else
     {
      Maximize();
       ObjectSet (TS1.Name()+ "Label" , OBJPROP_BACK , true );
       ObjectSet (TS2.Name()+ "Label" , OBJPROP_BACK , true );
       ObjectSet (CP.Name()+ "Label" , OBJPROP_BACK , true );
     }
  }

CAppDialog 클래스에서 Minimize() 및 Maximize() 후에 CCheckBox 클래스의 OBJPROP_BACK 속성이 변경되고 확인란이 "사각형" 테두리로 바뀌므로 빨리 ObjectSet(TS1.Name()을 제거했습니다. +"Label",OBJPROP_BACK) 이 코드에서 true); ...

 
Vjacheslav Lapaev :
여기요!

주어진: MT5 터미널에 있는 두 개의 차트(예: EURUSD H1, EURUSD H1). 그래프에 각각 숫자 1과 2가 있고 왼쪽에서 오른쪽으로 번호가 매겨집니다.

숫자 1이 있는 차트에 "패널"(거의 모든 것)을 배치할 때 차트 2로 전환하고 차트 1로 돌아간 후 패널이 최소화되어 왼쪽 상단 모서리로 축소됩니다.

동시에 "패널"이 차트 2에 배치되면 기존 차트 1과 함께 차트 1로 전환하고 차트 2로 돌아갈 때 최소화 - "패널"을 왼쪽 상단으로 접는 현상이 발생하지 않습니다. :).

누가 본질이 무엇이며 어떻게 처리해야 하는지 설명할 수 있습니까?

내 이전 답변을 삭제했습니다.

차트에 맞지 않기 때문에 창이 최소화됩니다.
"전체 터미널 창에 대한 차트" 모드를 종료하면 차트의 실제 크기가 표시됩니다.

차트에서 패널이 축소되는 것을 방지하려면 차트의 크기를 늘려야 합니다.
그런 다음 차트를 전체 터미널로 확장하고 전환을 시도할 수 있습니다.