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

 
odyn :

안녕하세요 감정사님들!

다음 코드가 있습니다.

구조체 STRUCT_POSITION { \...\}

STRUCT_POSITION 위치[];

문제:

STRUCT_POSITION SPosition[]이란? ?? 구조체의 인스턴스를 만드는 것이라면 동적 배열 이 필요한 이유는 무엇입니까? 가능합니까? 무엇 때문에?


나는 대답에 대해 매우 감사 할 것입니다.

구조체 struct STRUCT_POSITION { \...\} 선언은 사용자 지정 데이터 형식의 생성입니다. STRUCT_POSITION 위치[]; 사용자 정의 유형 변수 선언 변수가 배열이라는 사실은 대괄호[]로 표시됩니다. 다른 유형과 마찬가지로 사용자 정의 유형의 여러 변수를 선언할 수 있습니다.

 double a , b[] ;

STRUCT_POSITION Pos , SPosition[] ;// при условии, что структура уже создана.
이 항목 유형 , 변수 , 배열
 
모두에게 좋은 하루.
MT5가 내 Android 기기 중 하나에서 작동을 멈췄습니다.
그냥 그렇게 멈췄습니다. 아무것도 바꾸지 않았고 조정하지 않았습니다.
화면처럼 보입니다.
인터넷이 있고 다른 모든 것이 작동합니다.
데모 계정 만 있습니다.
거기 없으면 미안
 

MT5를 다시 시작하는 유틸리티(예: WatchDog)가 있습니까?


일부 오류로 인해 MT5가 종료되었다고 가정해 보겠습니다. 원격으로 추적하고 MT5를 즉시 실행하는 방법.

MT4의 경우 MT4bar를 사용합니다. MT5에도 비슷한 것이 필요합니다.

 

안녕하세요.

항상 같은 클래스의 객체를 정의하고 호출하는 범용 기본 클래스를 만들려고 합니다.

그리고 저는 뉴스 테스트를 위해 두 가지 솔루션을 사용합니다. 기본 클래스 CNewsFilter와 두 개의 상속된 클래스 CNewsFilterLive 및 CNewsFilterTester가 있습니다. 내 코드에서 CNewsFilter 개체를 정의하고 싶습니다. 그리고 실행 중인 모드에 따라 이미 자동으로 클래스를 선택합니다. 하지만 작동하지 않습니다. 다음은 기본 클래스입니다. Init() 메서드만 예로 남겼습니다.

 //+------------------------------------------------------------------+
//| News Filter Class                                                |
//+------------------------------------------------------------------+
class CNewsFilter
  {
protected :
   //---
public :
                     CNewsFilter( void );
                    ~CNewsFilter( void );
   virtual bool       Init( string , int );
   virtual void       Deinit( void );                    
   virtual bool       CheckNews(ENUM_NEWS_TYPE &type);
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CNewsFilter::Init( string symbol_name, int magic_number)
  {
   return true ;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#ifdef __MQL5__ //MQL_TESTER || MQL_VISUAL_MODE
#include <NewsFilterTester.mqh>
#else
#include <NewsFilterLive.mqh>
#endif

상속된 클래스:

 //+------------------------------------------------------------------+
//| News Filter Class                                                |
//+------------------------------------------------------------------+
class CNewsFilterTester : public CNewsFilter
  {
protected :
public :
                     CNewsFilterTester( void );
                    ~CNewsFilterTester( void );
   virtual bool       Init( string , int );
   virtual void       Deinit( void );                    
   virtual bool       CheckNews(ENUM_NEWS_TYPE &type);
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CNewsFilterTester::CNewsFilterTester() :  m_delimiter( '\t' )
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CNewsFilterTester::~CNewsFilterTester( void )
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CNewsFilterTester::Init( string symbol_name, int magic_number)
  {
   // some code
   return true ;
  }

그런 다음 코드에서 Expert Advisor를 호출합니다.

 #include <NewsFilter.mqh>
....
CNewsFilter    news_filter;

news_filter.Init( Symbol (),MagicNumber);

디버깅할 때 상속된 클래스 CNewsFilterTester에 들어가지 않습니다. 이 클래스는 기본 클래스 코드 끝에 추가한 기본 클래스 지시문에 따라 들어가야 합니다. __MQL5__는 여기에서 예시일 뿐입니다. 테스터를 사용하여 수행하는 방법은 또 다른 질문입니다. 아이디어 자체는 작동하지 않지만 상속된 클래스의 메서드는 호출되지 않습니다. Init()를 호출할 때 상속된 클래스의 Init()로 이동하지 않습니다(이 예제에서는 CNewsFilterTester). 도와주세요, 제발.

 #ifdef __MQL5__ //MQL_TESTER || MQL_VISUAL_MODE
#include <NewsFilterTester.mqh>
#else
#include <NewsFilterLive.mqh>
#endif
 
leonerd :

안녕하세요.

항상 같은 클래스의 객체를 정의하고 호출하는 범용 기본 클래스를 만들려고 합니다.

그리고 뉴스 테스트를 위해 두 가지 솔루션을 수행합니다. 기본 클래스 CNewsFilter와 두 개의 상속된 클래스 CNewsFilterLive 및 CNewsFilterTester가 있습니다. 내 코드에서 CNewsFilter 개체를 정의하고 싶습니다. 그리고 실행 중인 모드에 따라 이미 자동으로 클래스를 선택합니다. 하지만 작동하지 않습니다. 다음은 기본 클래스입니다. Init() 메서드만 예제로 남겼습니다.

상속된 클래스:

그런 다음 코드에서 Expert Advisor를 호출합니다.

디버깅할 때 상속된 클래스 CNewsFilterTester에 들어가지 않습니다. 이 클래스는 기본 클래스 코드 끝에 추가한 기본 클래스 지시문에 따라 들어가야 합니다. __MQL5__는 여기에서 예시일 뿐입니다. 테스터를 사용하여 수행하는 방법은 또 다른 질문입니다. 아이디어 자체는 작동하지 않지만 상속된 클래스의 메서드는 호출되지 않습니다. Init()를 호출할 때 상속된 클래스의 Init()로 이동하지 않습니다(이 예제에서는 CNewsFilterTester). 도와주세요, 제발.

여기

 #include <NewsFilter.mqh>
....
CNewsFilter    news_filter;

news_filter.Init( Symbol (),MagicNumber);

기본 클래스의 개체를 만듭니다. 따라서 기본 클래스는 어디에나 있습니다.

 

조건을 올바르게 작성하는 방법:

그래서

 if (((MASlowHandle - PBid) > 0.0002 ) && ((MASlowHandle - MAFastHandle) > 0.0002 ))

또는 다음과 같이:

 if ((MASlowHandle - PBid) > 0.0002 && (MASlowHandle - MAFastHandle) > 0.0002 )

??

 
odyn :

조건을 올바르게 작성하는 방법:

그래서

또는 다음과 같이:

??

필수는 아닙니다. 그것은 심지어 가능하다

 if (MASlowHandle - PBid > 0.0002 && MASlowHandle - MAFastHandle > 0.0002 )

산술 연산은 논리 연산보다 우선합니다.

그러나 조건에 &&와 ||가 모두 포함된 경우 스스로 이해하기 쉽도록 대괄호로 구분하는 것이 바람직하다.

 
Alexey Viktorov :

필수는 아닙니다. 그것은 심지어 가능하다

산술 연산은 논리 연산보다 우선합니다.

그러나 조건에 &&와 ||가 모두 포함된 경우 스스로 이해하기 쉽도록 대괄호로 구분하는 것이 바람직하다.

답변 해주셔서 감사합니다!

 

코드를 게시할 수 없는 이유는 무엇입니까?

항상 다음과 같은 메시지를 받습니다.

오류가 있는 코드 검토 완료:
코드 거래 통계 실시간 보고서를 확인하는 동안 오류가 발견되었습니다.
https://www.mql5.com/en/code/28074/230766

그러나 코드 게시 오류의 원인을 이해하지 못합니다.

이에 대해 답변해 주십시오.

문제가 무엇인지, 최소한 강조되어야 합니다.

 
jaffer wilson :

코드를 게시할 수 없는 이유는 무엇입니까?

항상 다음과 같은 메시지를 받습니다.

오류가 있는 코드 검토 완료:
코드 거래 통계 실시간 보고서를 확인하는 동안 오류가 발견되었습니다.
https://www.mql5.com/en/code/28074/230766

하지만 코드 게시 오류의 원인을 이해하지 못합니다.

이에 대해 답변해 주십시오.

문제가 무엇인지, 최소한 강조되어야 합니다.

질문이 어디에 있습니까? 오류는 정확히 무엇입니까? 죄송합니다. 모든 텔레파시가 휴가 중입니다.

딸깍 하는 소리

사유: