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

 
kPVT
조언 해주셔서 감사합니다.
경험을 공유해 주세요. 즉:
1. 고유한 이름을 생성하는 메커니즘. 자동 증분에 의한 기존 이름의 직접 열거?
2. 객체의 진위 여부를 확인하는 메커니즘. 저것들. 동일한 이름을 가진 개체가 있는지 확인하는 것이 아니라 크기, 유형, 텍스트 등과 같은 모든 매개변수를 확인합니다. 자원 절약을 고려합니다. 각 틱 에서 각 개체의 각 속성에 대해 수많은 검사를 수행하는 것은 매우 힘든 일입니다. 물론 외부로부터의 변경으로부터 객체의 차단(생성자의 조언자 제외)이 있거나 FAST(하나의 "if"에서)를 위해 객체의 해시 계산이 객체에 대해 확인하는 경우 확실성.
 

차트 다시 그리기가 부족한 상황의 재현을 확인하십시오.

간단한 전문가를 첨부합니다. 정황:

1. 2013.01.07~2013.02.11. 대부분 영향을 미치지 않습니다.

2. 비주얼 모드에서 테스트.

3. 처음 실행할 때 속도를 최소로 낮추십시오.

4. 초기화 후 다음 실행에서 F12 키를 누릅니다(하나의 틱 생성).

또 다른 매우 중요한 조건은 터미널이 오프라인으로 작동해야 한다는 것입니다. 실험의 순도를 위해 네트워크에서 컴퓨터 연결을 끊습니다(모든 네트워크 어댑터 연결 끊기).

우리는 보고 있다.

1. 차트에 스프레드 값 표시를 지연합니다.

ChartRedraw 기능의 잘못된 작동 또는 내가 무엇을 잘못했습니까? 차트를 마우스로 이동(가로(시간) 이동)하면 다시 그리기가 올바르게 수행됩니다.

파일:
1.mq5  4 kb
 
voix_kas :
kPVT
조언 해주셔서 감사합니다.
경험을 공유해 주세요. 즉:
1. 고유한 이름을 생성하는 메커니즘. 자동 증분에 의한 기존 이름의 직접 열거?
2. 객체의 진위 여부를 확인하는 메커니즘. 저것들. 동일한 이름을 가진 개체가 있는지 확인하는 것이 아니라 크기, 유형, 텍스트 등과 같은 모든 매개변수를 확인합니다. 자원 절약을 고려합니다. 각 틱에서 각 개체의 각 속성에 대해 수많은 검사를 수행하는 것은 매우 힘든 일입니다. 물론 외부로부터의 변경으로부터 객체를 차단하는 경우(생성자의 어드바이저 제외) 또는 FAST(하나의 "if"에서)를 위해 객체의 해시 계산이 객체에 대해 확실성.

사실이고 최적이라고 주장하지 않습니다.

1. 개체 이름에 난수 + 이름이 사용되는 표준 라이브러리를 사용할 수 있습니다(예: 18467RadioGroupItem0Button, 06334ClientBack). 또한 개체를 직접 삭제할 필요가 없습니다.  

저는 아직 표준성경과 친해지지 않았고 그렇게 하고 있는데 문제는 없었습니다.

 int nOBJ= 0 ; //счетчик однотипных объектов
int OnInit ()
  {
   //уникальное имя на основе текущего времени в момент инициализации (в 36 системе для краткости, пример: MI7E9G)
   basedName=ULongTo36Base( TimeLocal ());
   leftName= "LeftBorder " +basedName; //имя для единичного объекта
   ObjectCreate ( 0 ,leftName, OBJ_VLINE , 0 ,time, 0 );
   for (nOBJ= 1 ;nOBJ<= 100 ;nOBJ++) //создание 100 однотипных объектов
     ObjectCreate ( 0 ,( string )nOBJ+basedName, OBJ_TREND , 0 ,time,price);
   return ( 0 );
  }
void OnDeinit ( const int reason)
  {
   for ( int del= 1 ; del<=nOBJ; del++)
       ObjectDelete ( 0 ,( string )del+basedName);
   ObjectDelete ( 0 ,leftName);
   return ;
  }

여기서 이산성 basedName은 1초가 됩니다. 템플릿에서 동일한 표시기를 여러 개 추가하면 충돌이 발생합니다. 이 경우 표시기 매개변수를 basedName에 추가하거나 밀리초를 TimeLocal(), 임의의 숫자 등에 추가할 수 있습니다. 일반적으로 옵션이 있습니다.

2. 객체의 신뢰성 - 고유한 이름. 같은 이름을 가진 서로 다른 유형의 두 개체는 동일한 차트 창에 있을 수 없습니다. 개체의 모든 속성을 확인하는 이유는 무엇입니까? 설명하다.

개체 속성의 수동 변경 을 확인하시겠습니까? CHARTEVENT_OBJECT_CHANGE 이벤트가 있습니다.

우발적인 삭제를 통제하기 위해서는 객체에 접근할 때 객체의 존재를 확인하고 필요한 경우 복원해야 합니다(그런데 객체 삭제 이벤트가 있습니다. 저는 사용하지 않습니다).


주석을 사용하여 형식이 지정된 정보를 표시하려는 경우, 예를 들어 필요한 문자열 길이를 설정하고 이 길이를 알고 있는 경우 올바른 위치에 설명 및 매개변수 값(길이 결정)을 삽입할 수 있습니다.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
voix_kas :
kPVT
조언 해주셔서 감사합니다.
경험을 공유해 주세요. 즉:
1. 고유한 이름을 생성하는 메커니즘. 자동 증분에 의한 기존 이름의 직접 열거?
2. 객체의 진위 여부를 확인하는 메커니즘. 저것들. 동일한 이름을 가진 개체가 있는지 확인하는 것이 아니라 크기, 유형, 텍스트 등과 같은 모든 매개변수를 확인합니다. 자원 절약을 고려합니다. 각 틱에서 각 개체의 각 속성에 대해 수많은 검사를 수행하는 것은 매우 힘든 일입니다. 물론 외부로부터의 변경으로부터 객체를 차단하는 경우(생성자의 어드바이저 제외) 또는 FAST(하나의 "if"에서)를 위해 객체의 해시 계산이 객체에 대해 확실성.
아마도 이것이 도움이 될 것입니다: 기성 수업을 통해 시장 살펴보기
 

kPVT

조언 해주셔서 감사합니다. CHARTEVENT_OBJECT_CHANGE를 통해 제어하려고 합니다.

디마_에스

고맙습니다. 그러나 표준 클래스를 사용할 필요는 없습니다.

이전 메시지에서 미리 만들어진 간단한 Expert Advisor를 사용하여 ChartRedraw 기능을 테스트하십시오. 불행히도 어떤 이유로 이 함수는 한 틱의 지연을 제공합니다. 저것들. 예에서 처리 및 인출은 현재 틱에서 발생하지만 스프레드 값이 이전 틱에 대해 표시됨을 보여줍니다.

 
voix_kas :

kPVT

조언 해주셔서 감사합니다. CHARTEVENT_OBJECT_CHANGE를 통해 제어하려고 합니다.

디마_에스

고맙습니다. 그러나 표준 클래스를 사용할 필요는 없습니다.

이전 메시지에서 미리 만들어진 간단한 Expert Advisor를 사용하여 ChartRedraw 기능을 테스트하십시오. 불행히도 어떤 이유로 이 함수는 한 틱의 지연을 제공합니다. 저것들. 예에서 처리 및 인출은 현재 틱에서 발생하지만 스프레드 값이 이전 틱에 대해 표시됨을 보여줍니다.

예, 아무것도 아닙니다. 기사를 읽으면 제기 된 두 가지 질문에 대한 답변을 찾을 수 있습니다))
 

마켓에서 대용량 프로그램을 다운로드 및 설치하는 것은 불가능합니다. 조심하세요. 이유는 알 수 없습니다.

아마도 몇 가지 제한 사항이 있습니다. 그들에 대한 공식적인 정보는 없습니다.

 

알려주세요:

1. 리소스에서 호출된 표시기가 입력 매개변수를 수신할 수 없습니까?
2. 그렇지 않은 경우(목발로) 우회할 수 있는 가능성과 방법이 있습니까?
 

모든 것이 iCustom()과 동일합니다.

handle= iCustom ( _Symbol , _Period , "::Indicators\\Examples\\ZigZag.EX5" , 12 , 5 , 3 );
 
Karlson :

모든 것이 iCustom()과 동일합니다.

정확히, 아마도. 코드에서 실수를 했습니다.

고맙습니다.