오류, 버그, 질문 - 페이지 2614 1...260726082609261026112612261326142615261626172618261926202621...3184 새 코멘트 fxsaber 2019.12.08 08:42 #26131 Andrei Kossarev : 표시기에서 이진 파일을 읽어도 작동하지 않습니다. 조언자의 유사한 코드는 문제 없이 작동합니다! 대부분 지표의 ChartScreenShot 은 비동기식으로 작동합니다. Andrei Kossarev 2019.12.08 09:14 #26132 fxsaber : 대부분 지표의 ChartScreenShot은 비동기식으로 작동합니다. 확인했기 때문에 주기를 설정했습니다. fxsaber 2019.12.08 09:18 #26133 Andrei Kossarev : 확인해보니 주기를 넣은 이유 루프의 끝은 파일의 존재를 보장하지 않습니다. Alexey Viktorov 2019.12.08 09:32 #26134 Andrei Kossarev : Не работает чтение бинарного файла из индикатора, аналогичный код из советника работает без проблем! void TestPhoto() { string name; MqlDateTime dtLocal; TimeToStruct ( TimeLocal (), dtLocal); string date = IntegerToString (dtLocal.year) + IntegerToString (dtLocal.mon, 2 , '0' ) + IntegerToString (dtLocal.day, 2 , '0' ); string time = IntegerToString (dtLocal.hour, 2 , '0' ) + "." + IntegerToString (dtLocal.min, 2 , '0' ) + "." + IntegerToString (dtLocal.sec, 2 , '0' ); name = "ScreenShots/" + date + "/" + _Symbol + "_" +date + "_" + time + ".png" ; if (! ChartScreenShot ( 0 , name, 1920 , 1200 , ALIGN_RIGHT )) return ; ResetLastError (); for ( int i= 0 ; i < 100000 ; i++){ if ( FileIsExist (name, false ) && FileSize (name) > 0 ) break ; } //--- int flags= FILE_READ | FILE_BIN | FILE_SHARE_READ ; //--- int file= FileOpen (name,flags); if (file< 0 ) { Print ( "Операция FileOpen неудачна, ошибка " , GetLastError ()); return ; } uchar photo[]; FileReadArray (file,photo); FileClose (file); Print ( ArraySize (photo)); } 코드에 오류가 있는 것이 귀찮지 않습니까? ulong FileSize ( int file_handle // handle файла ); FileSize 함수 는 int 변수를 예상하고 거기에 문자열을 넣습니다... Andrei Kossarev 2019.12.08 20:38 #26135 //+------------------------------------------------------------------+ //| Test.mq5 | //| Copyright 2019, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2019, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window #property indicator_plots 1 #property indicator_buffers 1 #include <Trident\TCoreMain.mqh> //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit () { :: EventSetMillisecondTimer ( 500 ); return ( INIT_SUCCEEDED ); } void OnDeinit ( const int reason) { :: EventKillTimer (); } void OnTimer () { :: EventKillTimer (); TestPhoto(); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- return value of prev_calculated for next call return (rates_total); } //+------------------------------------------------------------------+ void TestPhoto() { string name; MqlDateTime dtLocal; TimeToStruct ( TimeLocal (), dtLocal); string date = IntegerToString (dtLocal.year) + IntegerToString (dtLocal.mon, 2 , '0' ) + IntegerToString (dtLocal.day, 2 , '0' ); string time = IntegerToString (dtLocal.hour, 2 , '0' ) + "." + IntegerToString (dtLocal.min, 2 , '0' ) + "." + IntegerToString (dtLocal.sec, 2 , '0' ); name = "ScreenShots/" + date + "/" + _Symbol + "_" +date + "_" + time + ".png" ; if (! ChartScreenShot ( 0 , name, 1920 , 1200 , ALIGN_RIGHT )) return ; ResetLastError (); //--- int flags= FILE_READ | FILE_BIN | FILE_SHARE_READ ; //--- int file= FileOpen (name,flags); if (file< 0 ) { Print ( "Операция FileOpen неудачна, ошибка " , GetLastError ()); return ; } for ( int i= 0 ; i < 100000 ; i++){ if ( FileSize (file) > 0 ) break ; } uchar photo[]; FileReadArray (file,photo); FileClose (file); Print ( ArraySize (photo)); } 수정된 코드, 여전히 작동하지 않음 Alexey Viktorov 2019.12.08 21:09 #26136 Andrei Kossarev : 수정된 코드, 여전히 작동하지 않음 코드를 두 개의 개별 기능으로 분할해 보십시오. 1. 파일 읽기 및 다음 작업. 2. 스크린샷. 결과가 0이면 플래그를 설정해 보십시오. 그리고 함수 호출 순서, 먼저 읽기를 시도하지만 플래그에 의해 읽기를 건너뛴 다음 화면이 캡처되고 플래그가 실행되고 플래그가 플래그로 전환됩니다. 그 후 다음 틱에서 파일을 읽습니다. Михаил 2019.12.09 09:07 #26137 제안은 사용자 정보를 저장하기 위한 필드를 하나 더 추가하는 것입니다. 이 필드는 브로커가 변경할 수 없으며 롤오버 동안 보존해야 합니다. 한마디로 사용자만이 변경할 수 있는 파괴 불가능한 필드. Vladislav Andruschenko 2019.12.09 10:07 #26138 Михаил : 제안은 사용자 정보를 저장하기 위한 필드를 하나 더 추가하는 것입니다. 이 필드는 브로커가 변경할 수 없으며 롤오버 동안 보존해야 합니다. 간단히 말해 사용자만 수정할 수 있는 파괴 불가능한 필드입니다. 플러스 100600 Igor Makanu 2019.12.09 10:14 #26139 Vladislav Andruschenko : 플러스 100600 그렇지 않습니다. 다시 작성해야 하는 MT의 서버 부분입니다. 그들은 10년 이상 동안 그것을 하지 않았으므로 가까운 장래에 그렇게 될 것입니다. 그들이 준 것을 사용하십시오 - 파일, 전역 터미널 변수 , 데이터베이스 주문 상태를 파일에 씁니다. 여기 내 범용 데이터베이스 템플릿이 있습니다. https://www.mql5.com/en/forum/85652/page17#comment_12370424 다음은 개발자의 최신 제안입니다. - SQLite DB https://www.mql5.com/ru/forum/327940 Vladislav Andruschenko 2019.12.09 10:31 #26140 Igor Makanu : 그렇지 않습니다. 다시 작성해야 하는 MT의 서버 부분입니다. 그들은 10년 이상 동안 이를 수행하지 않았으므로 가까운 장래에 그렇게 될 것입니다. 그들이 준 파일, 전역 터미널 변수를 사용하십시오 , 데이터베이스 주문 상태를 파일에 씁니다. 여기 내 범용 데이터베이스 템플릿이 있습니다. https://www.mql5.com/en/forum/85652/page17#comment_12370424 다음은 개발자의 마지막 제안입니다. - SQLite DB https://www.mql5.com/en/forum/327940 예, 또한 데이터베이스에 정보를 저장합니다. 하지만 하지만.. 1...260726082609261026112612261326142615261626172618261926202621...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
표시기에서 이진 파일을 읽어도 작동하지 않습니다. 조언자의 유사한 코드는 문제 없이 작동합니다!
대부분 지표의 ChartScreenShot 은 비동기식으로 작동합니다.
대부분 지표의 ChartScreenShot은 비동기식으로 작동합니다.
확인했기 때문에 주기를 설정했습니다.
확인해보니 주기를 넣은 이유
루프의 끝은 파일의 존재를 보장하지 않습니다.
Andrei Kossarev :
Не работает чтение бинарного файла из индикатора, аналогичный код из советника работает без проблем!
코드에 오류가 있는 것이 귀찮지 않습니까?
FileSize 함수 는 int 변수를 예상하고 거기에 문자열을 넣습니다...
수정된 코드, 여전히 작동하지 않음
수정된 코드, 여전히 작동하지 않음
코드를 두 개의 개별 기능으로 분할해 보십시오.
1. 파일 읽기 및 다음 작업.
2. 스크린샷.
결과가 0이면 플래그를 설정해 보십시오. 그리고 함수 호출 순서, 먼저 읽기를 시도하지만 플래그에 의해 읽기를 건너뛴 다음 화면이 캡처되고 플래그가 실행되고 플래그가 플래그로 전환됩니다. 그 후 다음 틱에서 파일을 읽습니다.
제안은 사용자 정보를 저장하기 위한 필드를 하나 더 추가하는 것입니다. 이 필드는 브로커가 변경할 수 없으며 롤오버 동안 보존해야 합니다.
한마디로 사용자만이 변경할 수 있는 파괴 불가능한 필드.
제안은 사용자 정보를 저장하기 위한 필드를 하나 더 추가하는 것입니다. 이 필드는 브로커가 변경할 수 없으며 롤오버 동안 보존해야 합니다.
간단히 말해 사용자만 수정할 수 있는 파괴 불가능한 필드입니다.
플러스 100600
그렇지 않습니다. 다시 작성해야 하는 MT의 서버 부분입니다. 그들은 10년 이상 동안 그것을 하지 않았으므로 가까운 장래에 그렇게 될 것입니다. 그들이 준 것을 사용하십시오 - 파일, 전역 터미널 변수 , 데이터베이스
주문 상태를 파일에 씁니다. 여기 내 범용 데이터베이스 템플릿이 있습니다. https://www.mql5.com/en/forum/85652/page17#comment_12370424
다음은 개발자의 최신 제안입니다. - SQLite DB https://www.mql5.com/ru/forum/327940
그렇지 않습니다. 다시 작성해야 하는 MT의 서버 부분입니다. 그들은 10년 이상 동안 이를 수행하지 않았으므로 가까운 장래에 그렇게 될 것입니다. 그들이 준 파일, 전역 터미널 변수를 사용하십시오 , 데이터베이스
주문 상태를 파일에 씁니다. 여기 내 범용 데이터베이스 템플릿이 있습니다. https://www.mql5.com/en/forum/85652/page17#comment_12370424
다음은 개발자의 마지막 제안입니다. - SQLite DB https://www.mql5.com/en/forum/327940