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

 
svds75 :
아니요, 수동으로 설정해야 하지만 프로그래밍 방식으로 확인해야 합니다.
그런 다음 가시성 플래그 를 읽고 상수로 논리 &를 수행해야 합니다.
 

이와 같이:

   long cf= ObjectGetInteger ( 0 , "name" , OBJPROP_TIMEFRAMES );
   Alert (((cf& OBJ_PERIOD_H1 )== OBJ_PERIOD_H1) || cf==0);
H1 의 가시성 플래그 가 설정되면 true가 됩니다.
 
Integer :
그런 다음 가시성 플래그 를 읽고 상수로 논리 &를 수행해야 합니다.

당신이 의미하는 경우 :

 ObjectGetInteger ( 0 , "line" , OBJPROP_TIMEFRAMES , OBJ_PERIOD_W1 & OBJ_PERIOD_MN1 ,res);

또는

 ObjectGetInteger ( 0 , "line" , OBJPROP_TIMEFRAMES , OBJ_PERIOD_W1 && OBJ_PERIOD_MN1 ,res);
똑같다.
 
svds75 :

당신이 의미하는 경우 :

또는

똑같다.
아니다. 열거형으로 get을 할 필요는 없습니다. 필요한 기간의 플래그가 설정되어 있는지 확인한 다음 확인하십시오. 위는 예시입니다.
 
svds75 :

당신이 의미하는 경우 :

또는

똑같다.

귀하의 실수는 여기에 bool(res)입니다. res는 모든 디스플레이에서 항상 1보다 크므로 res에서 반환되는 내용을 보십시오. 따라서 bool(res)은 res=0인 경우에만 0 또는 false를 반환합니다.

유형 변환 및 비교를 부주의하게 사용합니다.

OBJ_NO_PERIODS

0

개체는 어떤 기간에도 표시되지 않습니다.

OBJ_PERIOD_M1

0x00000001

개체는 1분 차트에 그려집니다.

OBJ_PERIOD_M2

0x00000002

개체는 2분 차트에 그려집니다.

OBJ_PERIOD_M3

0x00000004

개체는 3분 차트에 그려집니다.

OBJ_PERIOD_M4

0x00000008

개체는 4분 차트에 그려집니다.

OBJ_PERIOD_M5

0x00000010

개체는 5분 차트에 그려집니다.

OBJ_PERIOD_M6

0x00000020

개체는 6분 차트에 그려집니다.

OBJ_PERIOD_M10

0x00000040

개체는 10분 차트에 그려집니다.

OBJ_PERIOD_M12

0x00000080

개체는 12분 차트에 그려집니다.

OBJ_PERIOD_M15

0x00000100

개체는 15분 차트에 그려집니다.

OBJ_PERIOD_M20

0x00000200

개체는 20분 차트에 그려집니다.

OBJ_PERIOD_M30

0x00000400

개체는 30분 차트에 그려집니다.

OBJ_PERIOD_H1

0x00000800

개체는 1시간 차트에 그려집니다.

OBJ_PERIOD_H2

0x00001000

개체는 2시간 차트에 그려집니다.

OBJ_PERIOD_H3

0x00002000

개체는 3시간 차트에 그려집니다.

OBJ_PERIOD_H4

0x00004000

개체는 4시간 차트에 그려집니다.

OBJ_PERIOD_H6

0x00008000

개체는 6시간 차트에 그려집니다.

OBJ_PERIOD_H8

0x00010000

개체는 8시간 차트에 그려집니다.

OBJ_PERIOD_H12

0x00020000

개체는 12시간 차트에 그려집니다.

OBJ_PERIOD_D1

0x00040000

개체는 일일 차트에 그려집니다.

OBJ_PERIOD_W1

0x00080000

개체는 주간 차트에 그려집니다.

OBJ_PERIOD_MN1

0x00100000

개체는 월별 차트에 그려집니다.

OBJ_ALL_PERIODS

0x001ffffff

개체는 모든 시간대에 그려집니다.

 
Integer :

이와 같이:

H1 의 가시성 플래그 가 설정되면 true가 됩니다.
고맙습니다.
 
meat :

내 이전 게시물에 계속됩니다. 과학적 찌르기의 방법을 사용하여 버그로 이어지는 문제가 있는 곳을 찾을 수 있었습니다.

다음과 같은 기능이 있는 라이브러리가 있습니다.

다음은 기본 파일입니다.

결과 어드바이저가 작동하지 않고 로그에 "EX5 로드 실패"가 표시됩니다.

게시해 주셔서 감사합니다. 수정되었습니다.
 

안녕하세요. 나는 OnInit 기능에서 어드바이저를 반복했는데 이 때문에 분명히 어드바이저가 꺼지고 시간 프레임이 변경될 때 터미널이 중단됩니다(브레이크 후 시간 프레임은 변경되지 않음). 여기 질문이 있습니다. 고정이 원인입니까? 그렇다면 알고리즘을 OnTiick으로 옮기면 문제가 해결됩니까? 그렇지 않다면 무엇이 도움이 될까요?

PS: 루프에 Sleep 기능이 있으므로 터미널에 과부하가 걸리지 않습니다. 입력 필드 는 루프에서 읽습니다.  

 
king20 :

안녕하세요. 나는 OnInit 기능에서 어드바이저를 반복했는데 이 때문에 분명히 어드바이저가 꺼지고 시간 프레임이 변경될 때 터미널이 중단됩니다(브레이크 후 시간 프레임은 변경되지 않음). 여기 질문이 있습니다. 고정이 원인입니까? 그렇다면 알고리즘을 OnTiick으로 옮기면 문제가 해결됩니까? 그렇지 않다면 무엇이 도움이 될까요?

PS: 루프에 Sleep 기능이 있으므로 터미널에 과부하가 걸리지 않습니다. 입력 필드 는 루프에서 읽습니다.  

하드 드라이브를 포맷하십시오.
 
king20 :

안녕하세요. 나는 OnInit 기능에서 어드바이저를 반복했는데 이 때문에 분명히 어드바이저가 꺼지고 시간 프레임이 변경될 때 터미널이 중단됩니다(브레이크 후 시간 프레임은 변경되지 않음). 여기 질문이 있습니다. 고정이 원인입니까? 그렇다면 알고리즘을 OnTiick으로 옮기면 문제가 해결됩니까? 그렇지 않다면 무엇이 도움이 될까요?

PS: 루프에 Sleep 기능이 있으므로 터미널에 과부하가 걸리지 않습니다. 입력 필드 는 루프에서 읽습니다.  

OnInit - 초기화에만 사용됩니다. OnTick, OnTimer 등 모든 계산을 추가로 수행해야 합니다.

입력 필드의 변경 사항을 알아야 하는 경우 이에 대한 표준 라이브러리가 있습니다. https://www.mql5.com/ru/docs/standardlibrary/controls/cedit

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