오류, 버그, 질문 - 페이지 2234

 
Stanislav Korotky :

여기 이 간단한 스크립트에서 처음에는 write = true로 시작한 다음 write = false로 다른 차트에서 오류가 발생합니다.

분명히 버그이기 때문에 유사한 플래그를 사용하면 타사 응용 프로그램이 문제 없이 파일을 읽습니다.

 
Stanislav Korotky :

추신. 누군가가 이미 SD에 글을 썼을까요? 답은 무엇입니까?

나는 2 년 전에 썼습니다 - 움직임이없는 응용 프로그램. 다시 써주세요
 
A100 :
나는 2 년 전에 썼습니다 - 움직임이없는 응용 프로그램. 다시 써주세요

신청번호가 어떻게 되나요?

 
스팸
Result.retcode = 10026
Result.comment = AutoTrading disabled by server 0.035 ms
이 경우 OrderCheck 는 true를 반환합니다.
 
Alexander :

신청번호가 어떻게 되나요?

개통 , 개통일 : 2016.08.04 02:13 , #1530548


그건 그렇고... 링크가 작동을 멈춘 이유는 무엇입니까?

문제에 대한 설명

여기 https://www.mql5.com/ru/forum/1111/page1648#comment_2702870 사진과 함께

이제 링크는 다음과 같습니다.

https://www.mql5.com/ru/forum/1111/page1628#comment_2702870

이제 나는 확인하기 시작했습니다. 응용 프로그램의 모든 링크는 아무데도 연결되지 않았습니다. 그 전에는 모든 것이 정상이었습니다. 링크는 절대적이었습니다. 이제 링크가 이 응용 프로그램을 참조한다는 것을 깨달았을 때까지만

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2016.08.24
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
A100 :

그건 그렇고... 링크가 작동을 멈춘 이유는 무엇입니까?

문제에 대한 설명

여기 https://www.mql5.com/ru/forum/1111/page1648#comment_2702870 사진과 함께

이제 링크는 다음과 같습니다.

https://www.mql5.com/ru/forum/1111/page1628#comment_2702870

이제 나는 확인하기 시작했습니다. 응용 프로그램의 모든 링크는 아무데도 연결되지 않았습니다. 그 전에는 모든 것이 정상이었습니다. 링크는 절대적이었습니다. 이제 링크가 이 응용 프로그램을 참조한다는 것을 깨달았을 때까지만

오랫동안 이 스레드에서 모든 것이 20페이지 아래로 이동했습니다.

 
fxsaber :

오랫동안 이 스레드에서 모든 것이 20페이지 아래로 이동했습니다.

예전에도 나왔는데 링크가 잘 통함(끝은 변함이 없음) ... 적어도 1년 전에는 쉽게 메시지를 찾았고, 지금은 3월 링크가 끊어졌습니다.
 
Stanislav Korotky :

여기 이 간단한 스크립트에서 처음에는 write = true로 시작한 다음 write = false로 다른 차트에서 오류가 발생합니다.

스크립트 실행 결과:

 2018.07 . 23 19 : 44 : 15.224 ! 00 (EURUSD,M1) handle= 1
2018.07 . 23 19 : 44 : 17.824 ! 00 (EURUSD,M1) Closing
2018.07 . 23 19 : 44 : 34.874 ! 00 (EURUSD,M1) handle= 1
2018.07 . 23 19 : 44 : 40.874 ! 00 (EURUSD,M1) Closing
2018.07 . 23 19 : 45 : 12.844 ! 00 (GBPJPY,H4) handle= 1
2018.07 . 23 19 : 45 : 16.354 ! 00 (GBPJPY,H4) Closing

1. 쓰기 = true

2. 같은 차트에서 쓰기 = false

3. 다른 차트에서 쓰기 = false

유일한 변화

 void OnStart ()
그래야 하듯이...

따라서 대신

     return INIT_FAILED ;

왼쪽

     return ;

그리고 제거

   return 0 ;

무익을 위해.


어디가 잘못인가요???

 

내가 실험을 잘못했다는 것을 깨달았다.

다음은 반복 결과입니다.

 2018.07 . 23 20 : 07 : 52.316 ! 00 (EURUSD,M1) handle= 1
2018.07 . 23 20 : 07 : 52.316 ! 00 (EURUSD,M1) writing= true
2018.07 . 23 20 : 08 : 13.216 ! 00 (GBPJPY,H4) handle= 1
2018.07 . 23 20 : 08 : 13.216 ! 00 (GBPJPY,H4) writing= false
2018.07 . 23 20 : 08 : 20.316 ! 00 (EURUSD,M1) Closing
2018.07 . 23 20 : 08 : 25.416 ! 00 (GBPJPY,H4) Closing

당신의 실수는 파일에 쓴 후 FileClose 이후 또는 FileFlush에 의해 강제로 데이터를 디스크로 플러시한 후에만 데이터가 디스크에 도착한다는 것입니다.

그렇지 않으면 존재하지 않는 파일을 어떻게 읽을 수 있습니까 ???

그래도 플래그를 추가했습니다

 void OnStart ()
{
   int handle = FileOpen ( "xyz.foo" , FILE_READ | FILE_SHARE_WRITE | FILE_BIN | FILE_SHARE_READ |(writing? FILE_WRITE : 0 ));
   if (handle == INVALID_HANDLE )
  {
     Print ( "FileOpen failed: " , GetLastError ());
     return ;
  }
  
   if (writing)
   {
     FileWriteInteger (handle, 0 );
     FileFlush (handle);
   }
  
   Print ( "handle=" , handle);
   Print ( "writing=" , writing);
  
   while (! IsStopped ())
  {
     Sleep ( 1000 );
  }

   Print ( "Closing" );
   FileClose (handle);

} /*******************************************************************/
Документация по MQL5: Файловые операции / FileFlush
Документация по MQL5: Файловые операции / FileFlush
  • www.mql5.com
При выполнении операции записи в файл физически данные могут оказаться в нем только через некоторое время. Для того чтобы данные сразу же сохранились в файле, нужно использовать функцию FileFlush(). Если не использовать функцию, то часть данных, еще не попавших на диск, принудительно записывается туда только при закрытии файла функцией...
 

마지막 가격이 TickSize의 배수가 아닐 수 있습니까?

 SymbolInfoDouble (Symb, SYMBOL_TRADE_TICK_SIZE ) = 0.05
Tick.last = 14.16