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

 
DV2010 :

정보가 부족해서 죄송합니다.

1. "저널" 탭의 정보:

2. 제거 테스트 중인 지표는 일반 볼린저 밴드입니다.

- 표시 파일은 C:\Program Files\Alpari Limited MT5\MQL5\Indicators\Examples\BB.ex5에 있습니다.

- 컴파일된 파일이 차트에 수동으로 추가됩니다.

이 게시물에 두 파일을 모두 첨부합니다.

3. 표시기를 제거하고 버그가 감지된 Expert Advisor의 전체 코드:

   void OnInit(){
      ChartIndicatorDelete(0,0,"Bollinger Bands");
   } 

검사 결과:

그런 "전문가"(응용 프로그램에서 - DeleteInd.ex5)를 차트로 끌어온 후

이전에 수동으로 추가한 볼린저 밴드는 삭제되지만 그 이후의 차트는 차트 크기를 조정할 때 크기가 조정되지 않습니다.

상세하고 잘 구성된 질문에 감사드립니다(오랫동안 아무도 그렇게 쓰지 않았습니다!).

이것은 나에게 일어나는 일입니다.

  1. ...\MQL5\Indicators\Examples\BB.mq5 폴더에서 BB 지표를 수동으로 추가합니다.
  2. 같은 차트에서 Expert Advisor를 시작합니다. 고문 자신은 다음과 같이 덧붙였습니다.
     //+------------------------------------------------------------------+
    //|                                                      ProjectName |
    //|                                      Copyright 2012, CompanyName |
    //|                                       http://www.companyname.net |
    //+------------------------------------------------------------------+
    void OnInit ()
      {
       ResetLastError ();
       if (! ChartIndicatorDelete ( 0 , 0 , "Bollinger Bands" ))
           Print ( "Error delete BB " , GetLastError ());
      }
    //+------------------------------------------------------------------+
    오류가 발생합니다

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    차트에서 지표를 삭제할 때 오류가 발생했습니다.


이 오류는 어드바이저에서 표시기를 제거한 후 BB가 있던 차트 창을 볼 수 있지만 실제로는 이미 파괴되었기 때문에 발생합니다. 확인하려면 어드바이저를 시작한 후 터미널에서 다른 프로필 로 전환한 다음 (이전 프로필로) 돌아가서 차트가 소의 혀로 핥았는지 확인해야 합니다.

내 구성:

 2016.02 . 11 18 : 47 : 04.915 Terminal        MetaTrader 5 x64 build 1241 started (MetaQuotes Software Corp.)
2016.02 . 11 18 : 47 : 04.915 Terminal        Windows 10 Pro (x64 based PC), IE 11.63 , UAC, Intel Core i3- 3120 M  @ 2.50 GHz, RAM: 785 / 3981 Mb, HDD: 68822 / 233310 Mb, GMT+ 02 : 00
2016.02 . 11 18 : 47 : 04.915 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\ 43 B472C43247368C5B97C7F22A1AE963
파일:
DeleteInd.mq5  1 kb
 
Karputov Vladimir :

상세하고 잘 구성된 질문에 감사드립니다(오랫동안 아무도 그렇게 쓰지 않았습니다!).

이것은 나에게 일어나는 일입니다.

  1. ...\MQL5\Indicators\Examples\BB.mq5 폴더에서 BB 지표를 수동으로 추가합니다.
  2. 같은 차트에서 Expert Advisor를 시작합니다. 고문 자신은 다음과 같이 덧붙였습니다.
    오류가 발생합니다

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    차트에서 지표를 삭제할 때 오류가 발생했습니다.


이 오류는 어드바이저에서 표시기를 제거한 후 BB가 있던 차트 창을 볼 수 있지만 실제로는 이미 파괴되었기 때문에 발생합니다. 확인하려면 어드바이저를 시작한 후 터미널에서 다른 프로필 로 전환한 다음 (이전 프로필로 돌아가서) 차트가 혀로 소처럼 핥아져 있는지 확인해야 합니다.

내 구성:

로그에서 코드를 실행하면 다음과 같은 결과만 나타납니다.

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

그러나 다른 프로필로 전환하고 다시 돌아온 후에는 실제로 창이 없습니다(비록 전문가를 추가한 후 따옴표가 변경되었지만).

버그라는 뜻인가요? 결국 내가 이해하는 한 ChartIndicatorDelete() 함수를 사용하여 지표를 삭제하면 차트의 비정상적인 동작이 발생하지 않아야 합니까? 그것을 고칠 수 있습니까?

 
DV2010 :

로그에서 코드를 실행하면 다음과 같은 결과만 나타납니다.

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

그러나 다른 프로필로 전환하고 다시 돌아온 후에는 실제로 창이 없습니다(비록 전문가를 추가한 후 따옴표가 변경되었지만).

버그라는 뜻인가요? 결국 내가 이해하는 한 ChartIndicatorDelete() 함수를 사용하여 지표를 삭제하면 차트의 비정상적인 동작이 발생하지 않아야 합니까? 그것을 고칠 수 있습니까?

이미 서비스 데스크에 보고했습니다.
 
책상에서 그들은 고문과 지표로 작동 모드간에 고문을 전환하기 위해 하나의 파일이 있어야한다고 조언했습니다. 동일한 제품이 다른 터미널에 설치됩니다.

나는 스위치를 만들었다. 그러나 다음과 같은 일이 발생했습니다. Experts 폴더에서 mq4 파일을 컴파일하면 프로그램이 Expert Advisor로만 작동하고 지표로(Indicator 폴더에 복사할 때) 차트에도 설치되지 않습니다. 그러나 이 폴더에서 다시 컴파일하면 모든 것이 정상입니다. 그리고 어드바이저와 마찬가지로 Indicators 폴더에 컴파일 되어 있으면 설치가 되지 않습니다. 말해봐, 여기 무슨 일 있어? 컴파일 모드는 엄격하고 오류가 없습니다.

 

최신 MT5 빌드 1241에서 ChartIndicatorDelete 기능은 차트를 "망칩니다". 크기 조정 시 차트가 다시 그려지지 않고 , 터미널이 닫힐 때 차트가 저장되지 않습니다.

이것은 이미 수정되었습니다. 다음 빌드를 기다려주세요

 
Igor Ramensky :
책상에서 그들은 파일이 하나여야 한다고 조언했습니다.
그리고 접수번호 는 접수창구에 문의하시면 됩니다
 
개발자 여러분, MQL에서 클래스 함수와 메서드의 재귀가 허용됩니까? 재귀 메서드를 호출하고 스택 오버플로가 발생합니다.
 
coderex :
개발자 여러분, MQL에서 클래스 함수와 메서드의 재귀가 허용됩니까? 재귀 메서드를 호출하고 스택 오버플로가 발생합니다.

물론 허용됩니다. 그렇지 않으면 스택 오버플로가 발생하지 않습니다.

무엇을 기대했습니까?

어떻게 든 재귀의 깊이를 제어합니까?

 
Slawa :

물론 허용됩니다. 그렇지 않으면 스택 오버플로가 발생하지 않습니다.

무엇을 기대했습니까?

어떻게 든 재귀의 깊이를 제어합니까?

이미 알아냈어요 :) 물론 끼어들어서 죄송합니다. 재귀를 오랫동안 사용하지 않았고 재귀의 깊이를 제어하는 것을 완전히 잊어 버렸습니다 ...
 
얼마나 자주 활성화를 수행할 수 있습니까? 또는 다른 방법으로, 한 번 활성화한 후 다음 활성화 시간을 얼마나 걸립니까?