초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 330

 
ramis866 :
어드바이저 사용법을 알려주실 분 계신가요?
도움말 보기: Expert Advisors 설정 및 실행 .
 
얘들아! 기간이 변경되면 EA가 다시 시작됩니다. 결과적으로 그는 자신이 그린 모든 그래픽을 기본 보기로 되돌립니다. 기간을 변경할 때 다시 시작을 비활성화하는 방법은 무엇입니까?
 
net :
얘들아! 기간이 변경되면 EA가 다시 시작됩니다. 결과적으로 그는 자신이 그린 모든 그래픽을 기본 보기로 되돌립니다. 기간을 변경할 때 다시 시작을 비활성화하는 방법은 무엇입니까?

어드바이저가 그린 그래픽이 타임프레임을 변경한 후 올바르게 표시되도록 어드바이저의 뉘앙스를 수정하는 것이 좋지 않을까요?

 
net :
얘들아! 기간이 변경되면 EA가 다시 시작됩니다. 결과적으로 그는 그린 모든 그래픽을 기본 보기로 되돌립니다. 기간을 변경할 때 다시 시작을 비활성화하는 방법은 무엇입니까?

금지할 수 없습니다. 그리고 그래픽을 유지해야 하나요? 실제로 차트의 각 기간에 대해 모든 구성이 크게 변경될 수 있습니다. 예를 들어 차트의 여러 기간에 대한 MACD 표시기를 사용합니다. 그리고 그래픽 구성이 매우 필요한 경우 고문의 논리를 변경해야 합니다.

차트 기간을 변경한 후 EA와 표시기를 다시 시작해야 합니다. 이것은 OnInit() 함수의 논리입니다. Init 이벤트 처리기:

초기화

클라이언트 터미널이 프로그램(EA 또는 사용자 지정 표시기)을 로드하고 전역 변수 초기화 프로세스를 시작한 직후 Init 이벤트가 전송되고 OnInit() 함수가 존재하는 경우 이를 처리합니다. 이 이벤트는 또한 금융 상품 및/또는 차트 기간을 변경한 후, MetaEditor에서 프로그램을 다시 컴파일한 후, Expert Advisor 또는 사용자 지정 지표 설정 창에서 입력 매개변수를 변경한 후 생성됩니다. EA도 계정 변경 후 초기화 됩니다. 스크립트의 경우 Init 이벤트가 발생하지 않습니다.

 
barabashkakvn :

금지할 수 없습니다. 그리고 그래픽을 유지해야 하나요? 실제로 차트의 각 기간에 대해 모든 구성이 크게 변경될 수 있습니다. 예를 들어, 차트의 여러 기간에 대한 MACD 표시기를 사용합니다. 그리고 그래픽 구성이 매우 필요한 경우 고문의 논리를 변경해야 합니다.

차트 기간을 변경한 후 EA와 표시기를 다시 시작해야 합니다. 이것은 OnInit() 함수의 논리입니다. Init 이벤트 처리기:

동의하지 않습니다. 물론 다시 시작은 필수이지만! 리소스를 절약하기 위해 많은 수의 그래픽 개체 가 있는 다중 기간 표시기/전문가의 경우 초기화의 일부 부분, 특히 이미 구축된 항목의 재계산을 건너뛸 수 있습니다. 저것들. 논리적으로(개인적으로 맞다고 생각하는) 초기화 해제 후 그래픽 구성이 삭제되면 TF를 변경하는 이유를 처리해야 합니다(구성을 삭제하지 않고). 원하는 경우 개체 자체를 다시 작성하지 않고 TF로 개체의 가시성을 조정하는 것이 좋습니다.
 
Tapochun :
동의하지 않습니다. 물론 다시 시작은 필수이지만! 리소스를 절약하기 위해 많은 수의 그래픽 개체 가 있는 다중 기간 표시기/전문가의 경우 초기화의 일부 부분, 특히 이미 구축된 항목의 재계산을 건너뛸 수 있습니다. 저것들. 논리적으로(개인적으로 맞다고 생각하는) 초기화 해제 후 그래픽 구성이 삭제되면 TF를 변경하는 이유를 처리해야 합니다(구성을 삭제하지 않고). 원하는 경우 개체 자체를 다시 작성하지 않고 TF로 개체의 가시성을 조정하는 것이 좋습니다.
모든 것은 프로그래머의 손에 있습니다.
 

iCustom 버퍼에서 유형이 double 인 변수의 최소값을 찾는 방법을 알려주지 마십시오. 8개가 있습니다.

배열로 해결한 것 같은데 어떻게 적어야 할지 모르겠습니다.

도와주세요!

 

안녕하세요, 프리로더와 프로 모두, 포럼의 모든 회고록을 다시 읽을 시간이 없습니다. 천천히 파쿠르의 원리에 따라 MQ를 배웁니다.............

일반적으로 현재 문제: 예제에서 패널을 다운로드하고 조언자에서 조정했습니다. 이제 작업은 설정에서 이 패널을 활성화 및 비활성화하는 것입니다.

그래서 코드에서

나는 변수에 씁니다.

입력 bool vkl =false; // 패널 제거

추가 설명

만약 //

 //+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- Вывести в журнал причину деинициализации
   Print (GetDeinitReasonText(reason));
//--- При удалении с графика
   if (reason== REASON_REMOVE )
       //--- Удалить все объекты с графика, которые относятся к информационной панели   
      DeleteInfoPanel();
      
     
  }

삭제정보패널();

if(vcl =거짓);

----------------

그런 다음 실수, 그가 나를 이해하지 못한다는 사실을 깨닫는 다른 것))

일반적으로 예를 들어 어떻게 올바르게 수행하는지 알려주거나 예가 있는 파일이 어디에 있는지 보여주고

 
alhoya :

iCustom 버퍼에서 유형이 double 인 변수의 최소값을 찾는 방법을 알려주지 마십시오. 8개가 있습니다.

배열로 해결한 것 같은데 어떻게 적어야 할지 모르겠습니다.

도와주세요!

iCustom을 사용하여 사용자 지정 표시기의 핸들을 수신한 후 OnCalculate()에서 CopyBuffer를 사용하여 연구된 사용자 지정 표시기 버퍼에서 버퍼로 값을 복사해야 합니다. ArrayMinimum을 사용하여 최소값을 찾기 위해 버퍼에 남아 있습니다.
 
aleks557 :

...

무언가를 삭제 하려면 먼저 생성해야 합니다 .

 void DeleteInfoPanel()
  {
   DeleteObjectByName( " InfoPanelBackground " );   // Удалить фон панели
   DeleteObjectByName( " InfoPanelHeader " );       // Удалить заголовок панели
//--- Удалить свойства позиции и их значения

그리고 한 가지 더: 전문가의 속성을 변경할 때(입력 매개변수에서 조건을 true로 설정한 경우 - 전문가를 삭제하려는 경우) 이 조건은 패널을 삭제할 수 없도록 합니다.

 void OnDeinit ( const int reason)
  {
//--- Вывести в журнал причину деинициализации
   Print (GetDeinitReasonText(reason));
//--- При удалении с графика
   if (reason== REASON_REMOVE )
       //--- Удалить все объекты с графика, которые относятся к информационной панели   
      DeleteInfoPanel();

  }

이 조건은 Expert Advisor가 차트에서 제거된 경우에만 작동합니다.

사유: