MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1134

 
사람들은 쌍으로 돕습니다. MT의 일반 목록에 없으면 어떻게 추가합니까?
 
Valeriy Yastremskiy :

FILE_SHARE_READ

128

여러 프로그램에서 읽기 위한 공유 액세스. 플래그는 파일을 열 때 사용되지만( FileOpen() ), 파일을 열 때 FILE_WRITE 및/또는 FILE_READ 플래그를 지정할 필요를 대체하지 않습니다.

교체하지 않습니다. 일반적으로 매 틱마다 파일을 열고 닫지 않는 것이 좋습니다.

공유 읽기 권한이 아닌 공유 읽기 권한을 허용합니다.
고맙습니다. 벌었다! 컴퓨터가 매 틱마다 파일을 닫는 것이 아쉬워서 OnDeinit에 파일 닫기를 배치했습니다.
 
HeAic :
표시기에서 Sleep(500) 기능을 교체하는 방법은 무엇입니까?

정말 필요한 경우 프로세서 틱 시간을 밀리초 단위로 계산하여 일시 중지하십시오. 일시 중지되지만 전체 스트림이 대기합니다.

 
   int fileHandle= FileOpen ( "logg.txt" , FILE_READ | FILE_WRITE | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_TXT | FILE_ANSI );   
   datetime time= TimeLocal ();
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
void OnDeinit ( const int reason)
  {
   FileClose (fileHandle);
  }
void OnTick ()
  {
   FileWrite (fileHandle, "Время=" , TimeLocal ());
  }
" FileWrite "에서 사용되지 않는 경우 "시간" 변수를 선언하는 이유는 무엇입니까? 선언되지 않은 경우:
 int fileHandle= FileOpen ( "logg.txt" , FILE_READ | FILE_WRITE | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_TXT | FILE_ANSI );   
datetime TimeLocal ();
컴파일러는 맹세하지만 요점은 무엇입니까?
 
ascerdfg :
"FileWrite"에서 사용되지 않는 경우 "시간" 변수를 선언하는 이유는 무엇입니까? 선언하지 않으면 컴파일러가 맹세하지만 요점은 무엇입니까?
 datetime TimeLocal ();

이게 뭐야?????

이 줄을 완전히 제거하고 살펴볼까요?

 
Valeriy Yastremskiy :

이게 뭐야?????

이 줄을 완전히 제거하고 볼 수 있습니까?

도움말은 다음과 같이 말합니다. https://www.mql5.com/en/docs/dateandtime/timelocal

매개변수 없이 호출

날짜시간시간로컬 ( );

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

도움말: https://www.mql5.com/ru/docs/dateandtime/timelocal

매개변수 없이 호출

날짜시간시간로컬 ( );

파일 열기

이 함수는 지정된 이름과 지정된 플래그가 있는 파일을 엽니다.

int 파일열기 (
       file_name , // 파일 이름
    정수       open_flags , // 플래그 조합
    짧은     delimiter='\t' , // 구분자
    단위      코드 페이지=CP_ACP        // 코드 페이지
);

그리고 fileopen은 그렇게 작성됩니다. 이것은 프로그램에서 작성하는 방법의 예가 아니라 반환 값의 유형을 나타내는 것입니다.

 qqq.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                                  https:// |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
 int fileHandle= FileOpen ( "logg.txt" , FILE_READ | FILE_WRITE | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_TXT | FILE_ANSI );   
//  datetime time=TimeLocal();
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
void OnDeinit ( const int reason)
  {
   FileClose (fileHandle);
  }
void OnTick ()
  {
   FileWrite (fileHandle, "Время=" , TimeLocal ());
  }
'qqq.mq4'       qqq.mq4 1       1
0 errors, 0 warnings, 202 msec elapsed          1       1
onit에서 컴퓨터의 로컬 시간을 time 변수에 할당하는 것이 합리적이며 이것이 Expert Advisor의 시작 시간이 됩니다)))
 
고맙습니다!
 
double a= 20.43 ;
double b= 20.56 ;
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
void OnDeinit ( const int reason)
  {
  }
void OnTick ()
  {
   Print (a-b);
  }
결과는 -0.129999999999999입니다. 왜요?
 
ascerdfg :
결과는 -0.129999999999999입니다. 왜요?

컴퓨터 메모리에 실수를 저장하는 기능.

DoubleToString() 을 사용하여 필요한 정밀도로 출력

일반적으로 기본을 배우고 나서야 프로그램을 작성해 봅니다.

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Вещественные типы (или типы с плавающей точкой) представляют значения, имеющие дробную часть. В языке MQL5 есть два типа для чисел с плавающей точкой. Способ представления вещественных чисел в машинной памяти определен стандартом IEEE 754 и не зависит от платформ, операционных систем и языков программирования. Константы с плавающей точкой...