MQL5의 OOP에 대한 질문 - 페이지 78 1...717273747576777879808182838485...96 새 코멘트 fxsaber 2020.06.11 07:14 #771 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 MQL5의 OOP에 대한 질문 블라디미르 시마코프 , 2020.06.10 19:06 #define LOG(dText) CLog::Ptr().Log(( string ) __LINE__ , __FUNCSIG__ ,dText) class CLog{ int cHndl; CLog():cHndl( FileOpen ( MQLInfoString ( MQL_PROGRAM_NAME )+ _Symbol +( string )( int ) TimeCurrent ()+ ".log" , FILE_TXT | FILE_WRITE )){} ~CLog() { FileClose (cHndl);} public : static CLog* Ptr() { static CLog _log; return &_log;} void Log( string line, string sig, string text){ string _text= StringFormat ( "Line: %s. Signature: %s. %s" ,line,sig,text); PrintFormat (_text); FileWrite (cHndl,_text);} }; 선택된 객체 대신에 아래와 같이 하여 객체에 직접 접근할 수 없도록 하시겠습니까? #define LOG(dText) CLog::_log.Log(( string ) __LINE__ , __FUNCSIG__ ,dText) class CLog{ int cHndl; CLog():cHndl( FileOpen ( MQLInfoString ( MQL_PROGRAM_NAME )+ _Symbol +( string )( int ) TimeCurrent ()+ ".log" , FILE_TXT | FILE_WRITE )){} ~CLog() { FileClose (cHndl);} public : static CLog _log; void Log( string line, string sig, string text){ string _text= StringFormat ( "Line: %s. Signature: %s. %s" ,line,sig,text); PrintFormat (_text); FileWrite (cHndl,_text);} }; static CLog CLog::_log; 이 디자인은 그다지 편리하지 않습니다. 널리 적용할 수 없습니다. int f() { return ( 1 ); } if (LOG(LOG(f()) - 1 ) || LOG(LOG(f()) + 1 )) LOG(f()); 비슷한 방식으로 필요한 호출을 프로파일링합니다. Dmitry Fedoseev 2020.06.11 08:47 #772 Vladimir Simakov : 잘하셨어요! 바르게! 하지만 이것은? 이미 더 어렵다는 데 동의합니다))) 사용자가 알 수 없는 편집기에서 파일을 열고 새 테스트를 시작하면 어떻게 될까요? 코드에서 오류를 찾고 수정하고 로그를 보지만 로그는 변경되지 않습니다 ... 그리고 큰 문제가 발생하여 터미널이 비상 정지되면 어떻게 될까요? 로그에서 가장 흥미로운 것은 저장되지 않습니다. Vladimir Simakov 2020.06.11 08:58 #773 Dmitry Fedoseev : 사용자가 알 수 없는 편집기에서 파일을 열고 새 테스트를 시작하면 어떻게 될까요? 코드에서 오류를 찾고 수정하고 로그를 보지만 로그는 변경되지 않습니다 ... 그리고 큰 문제가 발생하여 터미널이 비상 정지되면 어떻게 될까요? 로그에서 가장 흥미로운 것은 저장되지 않습니다. 누가 당신이 FileFlush를 하지 못하도록 막나요? 이것은 예의 프로토 타입이며 모든 사람은 자신의 행복의 대장장이이며 완성 된 솔루션의 경우 일반적으로 돈을 요구합니다)))) 그래서 무엇이든 여십시오))) 이 구현에서 각 실행에는 자체 파일이 있습니다) )) UPD: OOP가 삶을 더 쉽게 만드는 예를 보여 줬고 원하는대로 쓰십시오. 아무도 자위에 대한 말을 취소하지 않았습니다)))). Dmitry Fedoseev 2020.06.11 09:51 #774 Vladimir Simakov : 누가 당신이 FileFlush를 하지 못하도록 막나요? 이것은 예의 프로토 타입이며 모든 사람은 자신의 행복의 대장장이이며 완성 된 솔루션의 경우 일반적으로 돈을 요구합니다)))) 그래서 무엇이든 여십시오))) 이 구현에서 각 실행에는 자체 파일이 있습니다) )) UPD: OOP가 삶을 더 쉽게 만드는 예를 보여 줬고 원하는대로 쓰십시오. 아무도 자위에 대한 말을 취소하지 않았습니다)))). 아, 파일 이름이 매번 새롭다는 것을 눈치채지 못했습니다. 그런 다음 FileFlush() 를 추가하고 맥주와 함께 당깁니다. Alexey Navoykov 2020.06.11 10:26 #775 Dmitry Fedoseev : 아, 파일 이름이 매번 새롭다는 것을 눈치채지 못했습니다. 그런 다음 FileFlush()를 추가하고 맥주와 함께 당깁니다. 내가 기억하는 한 MQL의 FileFlush 는 오랫동안 더미였습니다. 그녀를 불러도 소용없다. Vladimir Simakov 2020.06.11 10:27 #776 Alexey Navoykov : 내가 기억하는 한 MQL의 FileFlush는 오랫동안 더미였습니다. 그녀를 불러도 소용없다. HZ. 테스트 없이는 말할 수 없습니다. Dmitry Fedoseev 2020.06.11 11:21 #777 FileFlush가 없고 FileClose가 없으면 디스크가 플러시됩니다. 작업 관리자를 통해 터미널을 닫았습니다 . Igor Makanu 2020.06.11 11:44 #778 Alexey Navoykov : 내가 기억하는 한 MQL의 FileFlush는 오랫동안 더미였습니다. 그녀를 불러도 소용없다. 더미가 아니라 MQL4에서 FileFlush 없이는 온라인으로 오프라인 차트를 작성할 수 없다는 것을 확실히 알고 있습니다(offline..online... 러시아어는 훌륭하고 강력합니다! )))) 새 데이터를 기록으로 재설정할 때까지 오프라인 차트에는 새로운 것이 없습니다. 또 다른 질문은 단말이 자동으로 파일을 리셋하고 사용자가 하지 않으면 파일을 닫는다는 것입니다.... 테스터에서 연초에 파일을 닫은 후에도 열 수 있습니다.... 나중에 확인 MQL5의 경우를 대비하여 확인 - 3초마다 한 줄씩 작성하고, 로그에 카운터를 표시하고, 설정이 false이면 메모장으로 엽니다. - 빈 파일이 있고, true이면 파일 내용이 언제든지 읽을 수 있습니다 저것들. FileFlush는 광고된 대로 작동합니다. #property script_show_inputs #include <Files\FileTxt.mqh> input bool UseFileFlush = true ; //+------------------------------------------------------------------+ void OnStart () { CFileTxt f; f.Open( "tstFileFlush.txt" , FILE_WRITE | FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_COMMON ); int cnt = 0 ; while (! IsStopped ()) { f.WriteString( string (++cnt) + " : QWERTY\n" ); if (UseFileFlush) f.Flush(); printf ( "cnt = %i" , cnt); Sleep ( 3000 ); } } //+------------------------------------------------------------------+ Igor Makanu 2020.06.11 11:48 #779 주제별 그리고 부모 유형에 대한 클래스 포인터의 캐스팅은 어떻게 발생합니까? 또는 오히려, 방법이 아니라 유형 캐스팅이 얼마나 비용이 많이 듭니까? 또는 컴파일 시간에 생성되고 함수 호출(메소드) 테이블이 비교됩니다. Vladimir Simakov 2020.06.11 11:55 #780 Igor Makanu : 주제별 그리고 부모 유형에 대한 클래스 포인터의 캐스팅은 어떻게 발생합니까? 또는 오히려, 방법이 아니라 유형 캐스팅이 얼마나 비용이 많이 듭니까? 또는 컴파일 시간에 생성되고 함수 호출(메소드) 테이블이 비교됩니다. 이 경우 전혀 비싸지 않습니다. 가상 메서드에 대한 비용이 많이 듭니다(액세스할 때 한 번의 역참조). 1...717273747576777879808182838485...96 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MQL5의 OOP에 대한 질문
블라디미르 시마코프 , 2020.06.10 19:06
선택된 객체 대신에 아래와 같이 하여 객체에 직접 접근할 수 없도록 하시겠습니까?
이 디자인은 그다지 편리하지 않습니다. 널리 적용할 수 없습니다.
비슷한 방식으로 필요한 호출을 프로파일링합니다.
잘하셨어요! 바르게! 하지만 이것은?
이미 더 어렵다는 데 동의합니다)))
사용자가 알 수 없는 편집기에서 파일을 열고 새 테스트를 시작하면 어떻게 될까요? 코드에서 오류를 찾고 수정하고 로그를 보지만 로그는 변경되지 않습니다 ...
그리고 큰 문제가 발생하여 터미널이 비상 정지되면 어떻게 될까요? 로그에서 가장 흥미로운 것은 저장되지 않습니다.
사용자가 알 수 없는 편집기에서 파일을 열고 새 테스트를 시작하면 어떻게 될까요? 코드에서 오류를 찾고 수정하고 로그를 보지만 로그는 변경되지 않습니다 ...
그리고 큰 문제가 발생하여 터미널이 비상 정지되면 어떻게 될까요? 로그에서 가장 흥미로운 것은 저장되지 않습니다.
누가 당신이 FileFlush를 하지 못하도록 막나요? 이것은 예의 프로토 타입이며 모든 사람은 자신의 행복의 대장장이이며 완성 된 솔루션의 경우 일반적으로 돈을 요구합니다)))) 그래서 무엇이든 여십시오))) 이 구현에서 각 실행에는 자체 파일이 있습니다) ))
UPD: OOP가 삶을 더 쉽게 만드는 예를 보여 줬고 원하는대로 쓰십시오. 아무도 자위에 대한 말을 취소하지 않았습니다)))).누가 당신이 FileFlush를 하지 못하도록 막나요? 이것은 예의 프로토 타입이며 모든 사람은 자신의 행복의 대장장이이며 완성 된 솔루션의 경우 일반적으로 돈을 요구합니다)))) 그래서 무엇이든 여십시오))) 이 구현에서 각 실행에는 자체 파일이 있습니다) ))
UPD: OOP가 삶을 더 쉽게 만드는 예를 보여 줬고 원하는대로 쓰십시오. 아무도 자위에 대한 말을 취소하지 않았습니다)))).아, 파일 이름이 매번 새롭다는 것을 눈치채지 못했습니다. 그런 다음 FileFlush() 를 추가하고 맥주와 함께 당깁니다.
아, 파일 이름이 매번 새롭다는 것을 눈치채지 못했습니다. 그런 다음 FileFlush()를 추가하고 맥주와 함께 당깁니다.
내가 기억하는 한 MQL의 FileFlush는 오랫동안 더미였습니다. 그녀를 불러도 소용없다.
HZ. 테스트 없이는 말할 수 없습니다.
내가 기억하는 한 MQL의 FileFlush는 오랫동안 더미였습니다. 그녀를 불러도 소용없다.
더미가 아니라 MQL4에서 FileFlush 없이는 온라인으로 오프라인 차트를 작성할 수 없다는 것을 확실히 알고 있습니다(offline..online... 러시아어는 훌륭하고 강력합니다! ))))
새 데이터를 기록으로 재설정할 때까지 오프라인 차트에는 새로운 것이 없습니다.
또 다른 질문은 단말이 자동으로 파일을 리셋하고 사용자가 하지 않으면 파일을 닫는다는 것입니다.... 테스터에서 연초에 파일을 닫은 후에도 열 수 있습니다.... 나중에 확인
MQL5의 경우를 대비하여 확인 - 3초마다 한 줄씩 작성하고, 로그에 카운터를 표시하고, 설정이 false이면 메모장으로 엽니다. - 빈 파일이 있고, true이면 파일 내용이 언제든지 읽을 수 있습니다
저것들. FileFlush는 광고된 대로 작동합니다.
주제별
그리고 부모 유형에 대한 클래스 포인터의 캐스팅은 어떻게 발생합니까?
또는 오히려, 방법이 아니라 유형 캐스팅이 얼마나 비용이 많이 듭니까? 또는 컴파일 시간에 생성되고 함수 호출(메소드) 테이블이 비교됩니다.
주제별
그리고 부모 유형에 대한 클래스 포인터의 캐스팅은 어떻게 발생합니까?
또는 오히려, 방법이 아니라 유형 캐스팅이 얼마나 비용이 많이 듭니까? 또는 컴파일 시간에 생성되고 함수 호출(메소드) 테이블이 비교됩니다.
이 경우 전혀 비싸지 않습니다. 가상 메서드에 대한 비용이 많이 듭니다(액세스할 때 한 번의 역참조).