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

 

큰 파일을 한 줄로 읽는 방법은 무엇입니까?

FileReadString()

bin 파일에서 읽을 때. 읽을 문자열의 길이를 지정해야 합니다. txt 파일에서 읽을 때 문자열 길이는 필요하지 않으며 문자열은 현재 위치에서 줄 바꿈 문자 "\r\n"까지 읽힙니다. csv 파일에서 읽을 때 문자열 길이도 필요하지 않습니다. 문자열은 현재 위치에서 가장 가까운 구분 기호까지 또는 텍스트 문자열 끝 문자까지 읽습니다.

전체 파일에 대한 유일한 플래그는 FILE_BIN 이지만 MQL5에서는 MQL4와 달리 4095바이트로 제한됩니다. 다른 방법으로 한 줄에 있는 파일에서 큰 텍스트를 얻을 수 있습니까?
 
Сергей Таболин :

나는 그것에 대해 말하는 것이 아니다.

" 논리 NOT을 사용하여 결정 - 비트를 반전하지만 터미널이 없습니다. MQL에서 비트 NOT을 수행 하는 방법을 기억 하지 못하고 온라인 도움말을 읽고 싶지 않습니다. "

나는 증거를 가져 오거나 물을 더럽히지 않는 것에 대해 이야기하고 있습니다)))

"누구나 실수할 수 있다. 강한자만이 실수를 인정할 수 있다!". 아직 아무도 이것을 말하지 않았다면 이것이 내 지혜입니다))). 누군가가 이미 말했다면 - 나는 현명한 chela의 지혜를 반복했습니다)))

아직도 당신의 주장을 이해하지 못합니까? 나에게 뭔가를 증명해 달라는 건가? - 왜? ))))

NOT을 통해 재현하고 논의된 모든 옵션을 확인했습니다.

 void OnStart ()
  {
//---
   uint TForiginal= OBJ_PERIOD_M1 | OBJ_PERIOD_M2 | OBJ_PERIOD_M3 | OBJ_PERIOD_M4 | OBJ_PERIOD_M5 | OBJ_PERIOD_M6 | OBJ_PERIOD_M10 |
                   OBJ_PERIOD_M12 | OBJ_PERIOD_M15 | OBJ_PERIOD_M20 | OBJ_PERIOD_M30 | OBJ_PERIOD_H1 ;

   uint TFwithNOT=(~ OBJ_PERIOD_H1 & OBJ_PERIOD_H2 )- 1 ;
   uint TFwithShift= OBJ_ALL_PERIODS >> 9 ;
   Print ( "TForiginal = " ,TForiginal);
   Print ( "TFwithNOT = " ,TFwithNOT);
   Print ( "TFwithShift = " ,TFwithShift);
  }
//+------------------------------------------------------------------+

NOT이 있는 옵션은 모든 TF에서 작동하지만 원칙에 따라 작성합니다(~ TF_아래에 표시되고 TF_1은 필수 TF보다 오래됨) -1;

 

좋은 하루 되세요! 질문 하나 더...

MQL5 프로그램이 있으며 (많은) "입력 매개변수" 설정이 있습니다. 프로그램은 계산을 수행하고 필요에 따라 그래픽 개체를 생성/삭제 및 관리합니다.

설정 창에서 입력 파라미터 변경 후 이벤트 발생 Init는 프로그램의 초기화로 이어지며 원칙적으로 필요한 객체의 "재계산" 및 "다시 그리기"가 있지만 이벤트 예를 들어, Init는 차트 주기가 변경될 때(등) 생성 되며, 그 결과 매번 프로세스가 반복되고 필요하지 않은 경우에도 마찬가지입니다.

질문: 이벤트에서 프로그램 초기화를 제외 하는 방법 입력 매개변수가 변경되지 않은 경우 초기화하지만 프로그램(터미널)이 시작될 때 초기화를 그대로 유지합니까?

가능한 옵션: 설정된 값을 기억하고 이벤트 발생 시 비교 Init와 다르면 초기화를 허용하지만 입력 매개 변수가 많이 있습니다 ...

 
Anzhela Sityaeva :

좋은 하루 되세요! 질문 하나 더...

MQL5 프로그램이 있으며 (많은) "입력 매개변수" 설정이 있습니다. 프로그램은 계산을 수행하고 필요에 따라 그래픽 개체를 생성/삭제 및 관리합니다.

설정 창에서 입력 파라미터 변경 후 이벤트 발생 Init는 프로그램의 초기화로 이어지며 원칙적으로 필요한 객체의 "재계산" 및 "다시 그리기"가 있지만 이벤트 예를 들어, Init는 차트 주기가 변경될 때(등) 생성 되며, 그 결과 매번 프로세스가 반복되고 필요하지 않은 경우에도 마찬가지입니다.

질문: 이벤트에서 프로그램 초기화를 제외 하는 방법 입력 매개변수가 변경되지 않은 경우 초기화하지만 프로그램(터미널)이 시작될 때 초기화를 그대로 유지합니까?

가능한 옵션: 설정된 값을 기억하고 이벤트 발생 시 비교 Init와 다르면 초기화를 허용하지만 입력 매개 변수가 많이 있습니다 ...

다음은 유사한 다른 문제에 대한 몇 가지 팁입니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

EA에서는 작동하지만 표시기에서는 올바르게 작동하지 않으며 표시기 시작 부분의 음악

이호르 헤라스코 , 2019.06.17 14:12

네.

  1. 시작되면 표시기가 전역 터미널 변수 를 생성합니다. 좋아요 - 로드했습니다.
  2. 인사말이 재생됩니다.
  3. 언로드 시(OnDeinit에서 확인) 터미널의 전역 변수가 삭제됩니다.
  4. 작동 중에 TF가 전환되거나 매개변수가 변경되면 OnInit으로 나갈 때 터미널의 전역 변수가 있는지 확인합니다. 그렇다면 인사말이 재생되지 않습니다. 그렇지 않다면 그렇게 들립니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

EA에서는 작동하지만 표시기에서는 올바르게 작동하지 않으며 표시기 시작 부분의 음악

타라스 슬로보디아닉 , 2019.06.17 16:25

5. 차트에 일부 개체를 남겨두고 시작 시 개체의 존재 상태를 확인할 수도 있습니다.

 
Alexey Viktorov :

다음은 유사한 다른 문제에 대한 몇 가지 팁입니다.



답변 감사합니다. 우리의 경우 변경 사항 을 모니터링하거나 불필요한 초기화를 참기 위해 그래프의 "더미"를 통해 설명하여 통신에서 수십 가지 변경 사항의 상태를 추적해야 할 것 같습니다. 개체가 많지는 않지만...
 
Anzhela Sityaeva :
답변 감사합니다. 우리의 경우 변경 사항 을 모니터링하거나 불필요한 초기화를 참기 위해 그래프의 "더미"를 통해 설명하여 통신에서 수십 가지 변경 사항의 상태를 추적해야 할 것 같습니다. 개체가 많지는 않지만...

하지만 당신의 질문은

안젤라 시티에바 :

좋은 하루 되세요! 질문 하나 더...

MQL5 프로그램이 있으며 (많은) "입력 매개변수" 설정이 있습니다. 프로그램은 계산을 수행하고 필요에 따라 그래픽 개체를 생성/삭제 및 관리합니다.

설정 창에서 입력 파라미터 변경 후 이벤트 발생 Init는 프로그램의 초기화로 이어지며 원칙적으로 필요한 객체의 "재계산" 및 "다시 그리기"가 있지만 이벤트 예를 들어, Init 는 차트 주기가 변경될 때 (등) 생성 되며, 그 결과 매번 프로세스가 반복되고 필요하지 않은 경우에도 마찬가지입니다.

질문: 이벤트에서 프로그램 초기화를 제외 하는 방법 입력 매개변수가 변경되지 않은 경우 초기화하지만 프로그램(터미널)이 시작될 때 초기화를 그대로 유지합니까?

가능한 옵션: 설정된 값을 기억하고 이벤트 발생 시 비교 Init와 다르면 초기화를 허용하지만 입력 매개 변수가 많이 있습니다 ...

그리고 귀하의 상황에서 이러한 팁 중 하나는 이러한 불필요한 개체 다시 그리기를 방지합니다. 그리고 이러한 객체가 OnDeinit()에서 삭제되면 차트를 전환할 때 삭제가 금지되어야 합니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

차트가 닫힐 때 터미널 전역 변수를 제거하는 방법은 무엇입니까?

알렉세이 빅토 로프 , 2019.06.29 08:40

이 표를 보세요.

REASON_PROGRAM

0

전문가는 ExpertRemove() 함수를 호출하여 작업을 중지했습니다.

REASON_REMOVE

하나

프로그램이 차트에서 제거되었습니다.

REASON_RECOMPILE

2

프로그램 재컴파일

REASON_CHARTCHANGE

차트 기호 또는 기간이 변경되었습니다.

REASON_CHARTCLOSE

4

차트 닫힘

REASON_PARAMETERS

5

입력 매개변수가 사용자에 의해 변경되었습니다.

REASON_ACCOUNT

6

다른 계정이 활성화되었거나 계정 설정 변경으로 인해 거래 서버에 재접속이 발생했습니다.

REASON_TEMPLATE

7

다른 차트 템플릿이 적용됨

REASON_INITFAILED

여덟

OnInit() 처리기가 null이 아닌 값을 반환했습니다.

REASON_CLOSE

아홉

터미널 폐쇄


그리고 이 코드 줄에서

   if (reason== 1 ) GlobalVariableDel ( "val" );

그러나 문제의 시작을 정확하게 기억한다면 다음과 같이 조건을 두는 것이 좋습니다.

   if (reason != REASON_CHARTCHANGE ) GlobalVariableDel ( "val" );

 
Alexey Viktorov :

하지만 당신의 질문은

그리고 귀하의 상황에서 이러한 팁 중 하나는 이러한 불필요한 개체 다시 그리기를 방지합니다. 그리고 이러한 객체가 OnDeinit()에서 삭제되면 차트를 전환할 때 삭제가 금지되어야 합니다.


방향은 분명하니 해보자... 답변 감사합니다.
 
Codebase에서는 표준 SL/TP 뿐만 아니라 포지션 청산 조건을 지정할 수 있는 Expert Advisor의 예를 찾지 못했습니다. 아마도 누군가가 말할 것입니까?
 
Sprut112 :
Codebase에서는 표준 SL/TP 뿐만 아니라 포지션 청산 조건을 지정할 수 있는 Expert Advisor의 예를 찾지 못했습니다. 아마도 누군가가 말할 것입니까?

열린 상태와 닫는 상태의 차이점은 무엇입니까?

 
Sprut112 :
Codebase에서는 표준 SL/TP 뿐만 아니라 포지션 청산 조건을 지정할 수 있는 Expert Advisor의 예를 찾지 못했습니다. 아마도 누군가가 말할 것입니까?

Vladimir Karputov는 코드에 그러한 조건이 있었지만 그의 코드를 읽으려면 스스로 배워야 합니다)

사유: