[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 436

 
스마일이 웃는데 상담원이 켜지지 않는지 알려주세요...정확하게 설정하는 방법은?...감사합니다!
 
zorber :

모두에게 좋은 하루,

보류 주문을 넣었습니다(생성 시간, 예: 11:31)
예를 들어 12:01에 이 주문이 트리거됩니다.

질문: 주문이 이미 시장에 진입했고 OrderOpenTime() 함수가 시장 진입 시간을 반환하는 경우 보류 중인 주문이 생성된 날짜와 시간을 어떻게 알 수 있습니까?

누군가이 문제를 해결하는 방법을 알고 있습니까?

미리 감사드립니다


어떤 식 으로든 주문 목록에서 MT4.

한 가지 방법은 노출 시간을 기억하는 것입니다.

 
Roger :
텍스트 파일은 오래 전에 분류되어 어떻게 배열되고 무엇으로 구성되었을 것입니다. 다음을 사용하여 읽은 각 행 후에 커서 위치를 인쇄하십시오.
int 파일텔 ( int 핸들)
모든 것이 즉시 명확해질 것입니다.

상황의 아이러니는 위에서 내가 질문한 질문이 당신의 조언에 거의 일치하는 상황에서 촉발되었다는 것입니다 ...

FileIsEnding 및 FileIsLineEnding 함수가 작동하는 방식을 이해하기 위해 다음 스크립트를 작성했습니다.

 //+------------------------------------------------------------------------------------------+
//|                                                                   Конец_Строки_Файла.mq4 |
//+------------------------------------------------------------------------------------------+
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
#property show_inputs                                                     //выводим перед запуском скрипта окно свойств
extern int   position= 0 ;                                                   //внешняя переменная: смещение файлового указателя ОТ НАЧАЛА ФАЙЛА (в БАЙТАХ)
//---------------------------------------------------------------------------------------- 1 -
int start()                                                               //функция start
  {                                                                       //начало start
   double Timestart= GetTickCount ();                                       //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   string name= "Копия Запись чисел в файл.csv" ;                           //имя создаваемого файла
   bool h;                                                               //переменная: значение функции FileIsEnding
   bool h_l;                                                             //переменная: значение функции FileIsLineEnding
   int error;                                                             //переменная: ошибка
   int handle= FileOpen (name, FILE_CSV | FILE_WRITE , ';' );                     //открываем заданный файл n записываем туда данные
   int запись= FileWrite (handle, DoubleToStr ( 1.3584 , 4 ));                   //записываем число в файл csv (в преобразованном виде, т.е в виде текста)
   FileClose (handle);                                                     //закрываем файл
//---------------------------------------------------------------------------------------- 2 -
   handle= FileOpen (name, FILE_CSV | FILE_READ , ';' );                         //открываем заданный файл
   bool pos= FileSeek (handle,position, SEEK_SET );                           //смещаем от начала вправо указатель файла
   double чтение= FileReadNumber (handle);                                 //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
   int size= FileSize (handle);                                             //вычисляем размер заданного файла
   h= FileIsEnding (handle);                                               //устанавливаем текущее значение переменной h
   h_l= FileIsLineEnding (handle);                                         //устанавливаем текущее значение переменной h_l
   error= GetLastError ();                                                 //значение ошибки, производимой функцией FileIsEnding
   if (error!= 0 ) Alert ( "Текущая ошибка " ,error);                           //если код текущей ошибки не равен 0, то получаем номер текущей ошибки
   FileClose (handle);                                                     //закрываем файл
//----------------------------------------------------------------------------------------- 3 -
   Comment ( "Размер файла " ,name, " составил " ,size, " байт" ,
           "\nФункция FileSeek вернула: " ,pos,
           "\nФункция FileReadNumber(handle) вернула: " ,чтение,
           "\nФункция FileIsLineEnding(handle) вернула: " ,h_l,
           "\nФункция FileIsEnding(handle) вернула: " ,h,
           "\nСкрипт выполнялся всего " , GetTickCount ()-Timestart, " миллисекунд, из них: " , MathFloor (( GetTickCount ()-Timestart)/ 1000 ), " секунд " ,(( GetTickCount ()-Timestart)/ 1000 - MathFloor (( GetTickCount ()-Timestart)/ 1000 ))* 1000 , " миллисекунд" ); //печать сообщения на экран
//----------------------------------------------------------------------------------------- 4 -
   return ( 0 );                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -

블록 1-2에서 숫자 1.3584를 열어 파일(DoubleToStr 함수가 텍스트로 변환)에 썼습니다.

블록 3-4 나는 파일을 열고 거기에 적힌 숫자를 읽었다.

외부 변수 extern int position은 FileIsEnding 및 FileIsLineEnding 함수의 작동 방식과 FileTell 함수를 사용하여 파일 포인터를 이동하여 파일 포인터가 무엇인지 이해 하기 위한 것입니다.

MQL4에 있는 MQL 4 책에서. 커뮤니티 에서는 파일 포인터가 텍스트 커서와 유사하다고 말합니다.

그러나 이 스크립트를 여러 번 실행하고 매번 외부 변수 postiton을 1씩 증가시키면(즉, 파일 포인터를 파일 시작에서 오른쪽으로 1바이트 이동) Comment 함수는 일련의 메시지를 표시했습니다. 예시:

postiton=7이면 메시지는 다음과 같습니다.

postiton=7이면 메시지는 다음과 같습니다.


나는 그것을 이해하기 때문에 PC 메모리에서 문자열 상수는 8바이트를 사용하고 텍스트로 변환된 1개의 숫자만 파일에 기록된 다음 파일 포인터를 오른쪽으로 8바이트 이동하면 오류 4099가 발생합니다(파일 끝에 도달했음을 의미 ). 나는 또한 같은 이유로(파일 끝에 도달함) FileIsEnding 함수가 1(true)을 반환했음을 이해합니다. 그러나 FileIsLineEnding 함수가 0(거짓, 파일 포인터가 줄 끝에 도달하지 않았음을 의미)을 반환한 이유를 이해하지 못합니다. 결국 MQL(파일 포인터는 텍스트 커서와 거의 동일함)에 대한 책에 나와 있는 비유에 따라 파일의 끝이 줄의 끝이기도 하다고 추론했습니다. 그러나 파일 포인터가 파일의 끝에 도달했을 때 FileIsEnding과 FileIsLineEnding 함수의 값 사이의 불일치를 감안할 때, 나는 파일 포인트가 무엇인가? 그러나 질문을 하기 위해서는 무엇인가부터 시작해야 했기 때문에 433페이지에 나와 있는 형식으로 질문했습니다.

따라서 과열된 두뇌를 비우고 다음 질문에 답해 달라는 요청이 많습니다(또는 나머지 질문을 이해하는 데 도움이 되는 질문).

1. 파일 포인터에 대한 이해가 잘못된 점(질문은 433페이지 내 게시물에 나와 있음)

2. 구문의 의미 " 지정된 검사(블록 5-6의 마지막 2줄)가 삭제되면 프로그램 실행 중에 추가 개체가 생성됩니다. 그리고 그 후에만 while 루프 종료 조건이 작업 및 제어는 블록 8-9로 이전됩니다. "(질문은 433페이지 내 게시물에 나와 있음)

3. FileIsLineEnding이 파일 끝에 도달했을 때 1 대신 0을 반환하는 이유는 무엇입니까?

PS 포럼을 어지럽히지 않기 위해 미리 답변 주셔서 감사합니다.

 

좋은 시간 주식

수평선 그리는 방법을 알려주세요 ((Bid+Ask)/2+0.00333):)

 

안녕하세요!

주님 어떻게 하시겠습니까?

터미널에 "NO CONNECTION" 네트워크가 표시되지 않습니다.

 
Ragen :

안녕하세요!

주님 어떻게 하시겠습니까?

터미널에 "NO CONNECTION" 네트워크가 표시되지 않습니다.


자신에게 새로운 데모를 만드십시오. 오래된 것은 삭제 된 것 같습니다
 
sergeev :

자신에게 새로운 데모를 만드십시오. 오래된 것은 삭제 된 것 같습니다

저는 데모를 하고 있지 않습니다. 실제 계정 은 3개입니다.

그러나 하나의 DC에서 모든 것이 영향을 미칠 수 있습니까?

 
Ragen :

저는 데모가 아니라 실제 계정 3개를 사용 중입니다.

그러나 하나의 DC에서 모든 것이 영향을 미칠 수 있습니까?


:) 글쎄, DC에 전화하십시오. MQL 프로그래밍 포럼은 그것과 어떤 관련이 있습니까?
 
sergeev :

:) 글쎄, DC에 전화하십시오. MQL 프로그래밍 포럼은 그것과 어떤 관련이 있습니까?

어떤 이유로 터미널에 즉시 "롤링"했습니다. :)

우리가 알아낼거야!

 

프로, 말해주세요. 보류 중인 스탑 주문 이 있지만 가격이 스탑 로스를 초과하는 확장 스프레드와 함께 입력된 경우.... 어떻게 됩니까?

주문이 스프레드에 먹혀들거나... 아님 오류가 뜨면서 주문이 안될까요?

사유: