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

 
Dmitry Voronkov :
안녕하세요.
개발자 여러분, 왜 MQL4와 MQL5에는 Expert Advisor에서 인디케이터 서브윈도우를 삭제하는 기능이 있는데 인디케이터 창을 생성하는 기능은 없는지 알려주세요.
템플릿을 사용하거나 창 표시기를 수동으로 실행해야 하므로 편리하지 않습니다. 그래프에 표시된 정보가 손실됩니다.
예, 리소스 파일에서 표시기를 실행하고 표시할 수 있기를 원합니다.
또는 정리하는 방법을 알려주세요.

ChartIndicatorAdd 함수를 사용하여 차트 하위 창을 만들 수 있습니다.

리소스의 표시기에 대해서는 맨 끝에 https://www.mql5.com/ru/docs/runtime/resources 에 작성되어 있습니다. "리소스로 연결된 사용자 지정 표시기로 작업"

Документация по MQL5: Программы MQL5 / Ресурсы
Документация по MQL5: Программы MQL5 / Ресурсы
  • www.mql5.com
Программы MQL5 / Ресурсы - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Slawa :

ChartIndicatorAdd 함수를 사용하여 차트 하위 창을 만들 수 있습니다.

리소스의 표시기에 대해서는 맨 끝에 https://www.mql5.com/ru/docs/runtime/resources 에 작성되어 있습니다. "리소스로 연결된 사용자 지정 표시기로 작업"

도와 주셔서 감사합니다.

하지만 이 4가지 기능에서는 불행히도 그렇지 않습니다. 평범한 :)

 
kofesutra :

MT5 테스터의 캔트: 테스터의 OHLC와 MT5 자체가 일치하지 않으며, 또한 High 및 Low가 Open/Close 범위 내에 있습니다.

불행히도 이 양초만 있는 것은 아닙니다. 그리고 무엇을 해야 할까요? 개발자들에게 쓰는 방법을 알려주세요!

2016.08.13 12:38:48.956 Terminal C:\Program Files\Alpari Limited MT5
2016.08.13 12:38:48.956 터미널 Microsoft Windows XP(x64 기반 PC) on Wine, IE 08.00, Intel Pentium 4 2.40GHz, RAM: 6131 / 7688 Mb, HDD: 33959 / 159136 Mb, GMT
2016.08.13 12:38:48.955 터미널 Alpari Limited MT5 x64 빌드 1375 시작(Alpari Limited)

테스터를 다시 실행하고 트릭을 보았습니다. 촛불이 형성되면서 높음이 다시 그려집니다. 어느 시점에서 값을 더 작은 값으로 변경하고 Open/Close 범위에 들어간 다음 이 범위 내에서 값을 변경합니다.

M1의 OHLC


찾아서 수정했습니다. 메시지 주셔서 감사합니다.

고정된 빌드는 없지만 이 버그는 매주 가 아닌 매일 테스트하여 우회할 수 있습니다. 동시에 모든 주가 올바르게 형성됩니다.

 
Ilyas :

매크로 본문에서 따옴표 제거

매크로 매개변수를 문자열로 변환하려면 #을 사용하십시오:

##은 토큰을 접착하는 데 사용됩니다.
고맙습니다!
 
Slawa :

찾아서 수정했습니다. 메시지 주셔서 감사합니다.

고정된 빌드는 없지만 이 버그는 매주 가 아닌 매일 테스트하여 우회할 수 있습니다. 동시에 모든 주가 올바르게 형성됩니다.

고맙습니다! 나는 당신을 이해하고 수정 된 빌드를 기다릴 것입니다.
 
코드 베이스가 업데이트 되는 요일 은?
 

모호:

 class A {};
class B {
         virtual B *f() { return NULL ; }
         virtual A *g() { return NULL ; }
};
class C : public B {
         virtual C *f() { return NULL ; } //нормально
         virtual C *g() { return NULL ; } //Error: overriding virtual function with different return type
};

어떤 경우에는 다른 반환 유형으로 메서드를 오버로드할 수 있고 다른 경우에는 그렇게 할 수 없습니다.

 

런타임 에러

 //Script3.mq5
class A {};
class B : public A {
public :
        B( int ii ) : i( ii ) {}
         void f( A *a ) { i = g( a ); }
         int g(  A& a ) { return ((B *)&a).i; }
         int i;
};
void OnStart ()
{
        B a = 1 ,
          b = 2 ;
        a.f( &b );
         Print ( "OK:" , a.i );
}

결과:

2016.08.16 10:22:45.244 Script3(GBPUSD,M15) 'Script3.mq5'에서 잘못된 포인터 액세스(11,27)

부동 오류. 같은 내용을 다르게 재작성하면 발생하지 않음

 
A100 :

런타임 에러

결과:

2016.08.16 10:22:45.244 Script3(GBPUSD,M15) 'Script3.mq5'에서 잘못된 포인터 액세스(11,27)

부동 오류. 같은 내용을 다르게 재작성하면 발생하지 않음

감사합니다. 수정했습니다.
 
A100 :

모호:

어떤 경우에는 다른 반환 유형으로 메서드를 오버로드할 수 있고 다른 경우에는 그렇게 할 수 없습니다.

이것은 직접 상속에 문제가 없기 때문에 의식적으로 수행되었습니다.