오류, 버그, 질문 - 페이지 54 1...474849505152535455565758596061...3184 새 코멘트 ddd06 2010.07.19 06:12 #531 예, 차트와 테스터에서 잘 작동하는 지표의 예를 모두에게 제공하는 것이 좋습니다. 내 버전을 다시 수정했는데 이제 차트의 지표 값이 기록과 수렴하지만 테스터에는 값이 없습니다. 내가 뭘 잘못했어? #property indicator_separate_window #property indicator_buffers 2 #property indicator_plots 2 //--- plot Label1 #property indicator_label1 "I1" #property indicator_type1 DRAW_LINE #property indicator_color1 Red #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- plot Label2 #property indicator_label2 "I2" #property indicator_type2 DRAW_LINE #property indicator_color2 Green #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //--- indicator buffers double I1Buffer[]; double I2Buffer[]; int OnInit () { SetIndexBuffer ( 0 ,I1Buffer, INDICATOR_DATA ); SetIndexBuffer ( 1 ,I2Buffer, INDICATOR_DATA ); return ( 0 ); } int OnCalculate ( const int rates_total, // размер входных таймсерий const int prev_calculated, // обработано баров на предыдущем вызове const datetime & time[], // Time const double & open[], // Open const double & high[], // High const double & low[], // Low const double & close[], // Close const long & tick_volume[], // Tick Volume const long & volume[], // Real Volume const int & spread[]) // Spread { string Symbol_1= "EURUSD" ,Symbol_2= "GBPUSD" ; if (rates_total< 1 ) return ( 0 ); double Arr1[],Arr2[]; int end,rez0,rez1,rez_0,rez_1; datetime ld1[],ld2[]; end= MathMin (( int ) SeriesInfoInteger (Symbol_1, 0 , SERIES_BARS_COUNT )- 1 ,( int ) SeriesInfoInteger (Symbol_2, 0 , SERIES_BARS_COUNT )- 1 ); end= MathMin (end,rates_total-prev_calculated+ 1 ); rez0= CopyClose (Symbol_1, PERIOD_CURRENT , 0 ,end, Arr1); rez_0= CopyTime (Symbol_1, PERIOD_CURRENT , 0 ,end, ld1); if (rez0==- 1 ){ Print ( "Ошибка копирования " ,Symbol_1, " " , GetLastError ()); return ( 0 );} if (rez0!=rez_0){ Print ( "Не сходятся цены с временем" ,Symbol_1, " " , GetLastError ()); return ( 0 );} rez1= CopyClose (Symbol_2, PERIOD_CURRENT , 0 ,end, Arr2); rez_1= CopyTime (Symbol_2, PERIOD_CURRENT , 0 ,end, ld2); if (rez1==- 1 ){ Print ( "Ошибка копирования " ,Symbol_2, " " , GetLastError ()); return ( 0 );} if (rez1!=rez_1){ Print ( "Не сходятся цены с временем" ,Symbol_2, " " , GetLastError ()); return ( 0 );} if (rez1!=rez0){ Print ( "Ошибка Синхронизации" ); return ( 0 );} ArraySetAsSeries (Arr1,true); ArraySetAsSeries (Arr2,true); ArraySetAsSeries (ld1,true); ArraySetAsSeries (ld2,true); int li=rates_total- 1 ; I1Buffer[li]=Arr1[ 0 ]+ 0.26 ; I2Buffer[li]=Arr2[ 0 ]; li--; int shift1= 0 ,shift2= 0 ; for ( int i= 1 ;i<end- MathMax (shift2,shift1);i++) { if (time[li]==ld1[i+shift1])I1Buffer[li]=Arr1[i+shift1]+ 0.26 ; else if (time[li]>ld1[i+shift1]&&i!= 0 ){shift1--;I1Buffer[li]=I1Buffer[li+ 1 ];} else if (time[li]<ld1[i+shift1]&&i!= 0 ){shift1++;I1Buffer[li]=I1Buffer[li+ 1 ];} if (time[li]==ld2[i+shift2])I2Buffer[li]=Arr2[i+shift2]; else if (time[li]>ld2[i+shift2]&&i!= 0 ){shift2--;I2Buffer[li]=I2Buffer[li+ 1 ];} else if (time[li]<ld2[i+shift2]&&i!= 0 ){shift2++;I2Buffer[li]=I2Buffer[li+ 1 ];} li--; } return (rates_total); } //+------------------------------------------------------------------+ 그리고 전문가 int Handle; int bars,i; void OnInit () { Handle= iCustom ( NULL , 0 , "proverka" ); } void OnTick () { double buf1[],buf2[]; datetime time[]; //--- if (bars== Bars ( _Symbol , _Period )) return ; bars= Bars ( _Symbol , _Period ); CopyTime ( _Symbol , _Period , 0 , 2 ,time); if ( CopyBuffer (Handle, 0 , 0 , 2 ,buf1)< 0 || CopyBuffer (Handle, 1 , 0 , 2 ,buf2)< 0 ) Print ( "Ошибка копирования значений индикаторных буферов " , GetLastError (), "!!" ); if (i> 100 ) return ; i++; Print ( "Время " + TimeToString (time[ 1 ],TIME_DATE|TIME_MINUTES), " буф1-" ,buf1[ 1 ], " буф2-" ,buf2[ 1 ]); return ; } 파일: proverka.mq5 4 kb prover__1.mq5 1 kb ddd06 2010.07.19 06:18 #532 다시 예전으로 돌아간다는 뜻) 테스터를 통해 지표 값을 받으면 지표 값 및 과거 데이터와 다릅니다. 확인하려면 EURUSD 기간 M1에 대해 2010년 7월 1일부터 prover.mq5 를 실행하고 로그를 보고 실제 가격을 확인하십시오. Кирилл Иванович 2010.07.19 06:29 #533 안녕하세요, SymbolInfoSessionTrade() 함수를 이해할 수 없습니다. 또는 세션 시작 및 세션 종료라는 마지막 두 매개변수를 이해할 수 없습니다. 내가 읽은 도움말에서: 지정된 기호 및 요일에 대해 지정된 거래 세션 의 시작 시간과 종료 시간을 얻을 수 있습니다. 거래 세션의 시작과 끝 시간을 알아내려면 거래 세션의 시작과 끝(초 단위)을 이미 알고 있어야 합니다. 이는 불일치로 판명되었습니다. Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote www.mql5.com Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5 ddd06 2010.07.19 07:37 #534 kirill190982 : 안녕하세요, SymbolInfoSessionTrade() 함수를 이해할 수 없습니다. 또는 세션 시작 및 세션 종료라는 마지막 두 매개변수를 이해할 수 없습니다. 내가 읽은 도움말에서: 변수는 시작 및 종료 시간이 기록될 SymbolInfoSessionTrade() 함수의 이러한 매개변수에 전달됩니다. void OnTick () { datetime ld_start, ld_end; SymbolInfoSessionTrade( _Symbol , // имя символа MONDAY , // день недели 0 , // Порядковый номер сессии ld_start, // время начала сессии ld_end // время окончания сессии ); Print (ld_start, " - " ,ld_end); } 그건 그렇고, 설명서에 오류가 있습니다. 단위 session_index , // 심볼 이름 Кирилл Иванович 2010.07.19 08:59 #535 ddd06 : 변수는 시작 및 종료 시간이 기록될 SymbolInfoSessionTrade() 함수의 이러한 매개변수에 전달됩니다. 덕분에 얻었습니다 ddd06 2010.07.19 09:48 #536 나는 오류를 얻는 것을 단순화했습니다. 다음은 CLOSE 가격 배열을 복사하는 EA입니다. int bars,i; void OnTick () { if (bars== Bars ( _Symbol , _Period )) return ; bars= Bars ( _Symbol , _Period ); if (i> 100 ) return ; i++; datetime time[]; double Arr1[],Arr2[]; CopyTime ( _Symbol , _Period , 0 , 2 ,time); CopyClose ( "EURUSD" , PERIOD_CURRENT , 0 , 2 , Arr1); CopyClose ( "GBPUSD" , PERIOD_CURRENT , 0 , 2 , Arr2); Print ( "Время " + TimeToString (time[ 1 ],TIME_DATE|TIME_MINUTES), " mas1(EURUSD)-" ,Arr1[ 1 ], " mas2(GBPUSD)-" ,Arr2[ 1 ]); return ; } EURUSD 기간 M1에 대해 2010년 7월 1일부터 Prover.mq5 를 시작하고 로그를 보고 실제 가격을 확인합니다. 그리고 때때로 잘못된 값이 있습니다. 또한 01.00 GBPUSD 가격이 1.49393에서 동결될 때까지 실행을 시작합니다. 나는 한 달 동안 고통을 겪었고 내 다중 통화 고문을 테스트 할 수 없습니다 Errors, bugs, questions Ichimoku - KS 전문가 MQL4 첫 번째 단계 Slava 2010.07.19 10:26 #537 ddd06 : 나는 오류를 얻는 것을 단순화했습니다. 다음은 CLOSE 가격 배열을 복사하는 EA입니다. EURUSD 기간 M1에 대해 2010년 7월 1일부터 Prover.mq5 를 시작하고 로그를 보고 실제 가격을 확인합니다. 그리고 때때로 잘못된 값이 있습니다. 또한 01.00 GBPUSD 가격이 1.49393에서 동결될 때까지 실행을 시작합니다. 나는 한 달 동안 고통을 겪었고 내 다중 통화 고문을 테스트 할 수 없습니다 불완전한 막대에서 현재 값으로 작업하고 있습니다. 이렇게 시도 Print ( "Время " + TimeToString (time[ 0 ],TIME_DATE|TIME_MINUTES), " mas1(EURUSD)-" ,Arr1[ 0 ], " mas2(GBPUSD)-" ,Arr2[ 0 ]); 또는 배열 시계열을 설정합니다. ddd06 2010.07.19 10:50 #538 stringo : 불완전한 막대에서 현재 값으로 작업하고 있습니다. 이렇게 시도 또는 배열 시계열을 설정합니다. 우리는 계속 int bars,i; void OnTick () { if (bars== Bars ( _Symbol , _Period )) return ; bars= Bars ( _Symbol , _Period ); if (i> 100 ) return ; i++; datetime time[]; double Arr1[],Arr2[]; CopyTime ( _Symbol , _Period , 0 , 2 ,time); CopyClose ( "EURUSD" , PERIOD_CURRENT , 0 , 2 , Arr1); CopyClose ( "GBPUSD" , PERIOD_CURRENT , 0 , 2 , Arr2); Print ( "Время " + TimeToString (time[ 0 ],TIME_DATE|TIME_MINUTES), " mas1(EURUSD)-" ,Arr1[ 0 ], " mas2(GBPUSD)-" ,Arr2[ 0 ]); return ; } 그리고 왜 따옴표가 처음에 있는지 완고하게 대답하지 않습니다. EURUSD의 경우 일치하는 것으로 보입니다) Slava 2010.07.19 11:31 #539 그것에 관해서라면 2 배열의 시간을 유지해야합니다. 어떤 때는 EURUSD에서, 다른 때는 GBPUSD에서 복사합니다. ddd06 2010.07.19 11:42 #540 stringo : 그것에 관해서라면 2 배열의 시간을 유지해야합니다. 어떤 때는 EURUSD에서, 다른 때는 GBPUSD에서 복사합니다. 잘 int bars,i; void OnTick () { if (bars== Bars ( _Symbol , _Period )) return ; bars= Bars ( _Symbol , _Period ); if (i> 100 ) return ; i++; datetime time1[],time2[]; double Arr1[],Arr2[]; CopyTime ( "EURUSD" , _Period , 0 , 2 ,time1); CopyTime ( "GBPUSD" , _Period , 0 , 2 ,time2); CopyClose ( "EURUSD" , PERIOD_CURRENT , 0 , 2 , Arr1); CopyClose ( "GBPUSD" , PERIOD_CURRENT , 0 , 2 , Arr2); Print ( "Время EURUSD" + TimeToString (time1[ 0 ],TIME_DATE|TIME_MINUTES), " Время GBPUSD" + TimeToString (time2[ 0 ],TIME_DATE|TIME_MINUTES), " mas1(EURUSD)-" ,Arr1[ 0 ], " mas2(GBPUSD)-" ,Arr2[ 0 ]); return ; } 이대로는 안 될 것 같은데요, 그쵸? 1...474849505152535455565758596061...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
예, 차트와 테스터에서 잘 작동하는 지표의 예를 모두에게 제공하는 것이 좋습니다.
내 버전을 다시 수정했는데 이제 차트의 지표 값이 기록과 수렴하지만 테스터에는 값이 없습니다.
내가 뭘 잘못했어?
그리고 전문가
다시 예전으로 돌아간다는 뜻)
테스터를 통해 지표 값을 받으면 지표 값 및 과거 데이터와 다릅니다.
확인하려면 EURUSD 기간 M1에 대해 2010년 7월 1일부터 prover.mq5 를 실행하고 로그를 보고 실제 가격을 확인하십시오.
안녕하세요, SymbolInfoSessionTrade() 함수를 이해할 수 없습니다. 또는 세션 시작 및 세션 종료라는 마지막 두 매개변수를 이해할 수 없습니다. 내가 읽은 도움말에서:
지정된 기호 및 요일에 대해 지정된 거래 세션 의 시작 시간과 종료 시간을 얻을 수 있습니다.
거래 세션의 시작과 끝 시간을 알아내려면 거래 세션의 시작과 끝(초 단위)을 이미 알고 있어야 합니다. 이는 불일치로 판명되었습니다.
안녕하세요, SymbolInfoSessionTrade() 함수를 이해할 수 없습니다. 또는 세션 시작 및 세션 종료라는 마지막 두 매개변수를 이해할 수 없습니다. 내가 읽은 도움말에서:
변수는 시작 및 종료 시간이 기록될 SymbolInfoSessionTrade() 함수의 이러한 매개변수에 전달됩니다.
그건 그렇고, 설명서에 오류가 있습니다.
단위 session_index , // 심볼 이름
변수는 시작 및 종료 시간이 기록될 SymbolInfoSessionTrade() 함수의 이러한 매개변수에 전달됩니다.
나는 오류를 얻는 것을 단순화했습니다.
다음은 CLOSE 가격 배열을 복사하는 EA입니다.
EURUSD 기간 M1에 대해 2010년 7월 1일부터 Prover.mq5 를 시작하고 로그를 보고 실제 가격을 확인합니다.
그리고 때때로 잘못된 값이 있습니다.
또한 01.00 GBPUSD 가격이 1.49393에서 동결될 때까지 실행을 시작합니다.
나는 한 달 동안 고통을 겪었고 내 다중 통화 고문을 테스트 할 수 없습니다
나는 오류를 얻는 것을 단순화했습니다.
다음은 CLOSE 가격 배열을 복사하는 EA입니다.
EURUSD 기간 M1에 대해 2010년 7월 1일부터 Prover.mq5 를 시작하고 로그를 보고 실제 가격을 확인합니다.
그리고 때때로 잘못된 값이 있습니다.
또한 01.00 GBPUSD 가격이 1.49393에서 동결될 때까지 실행을 시작합니다.
나는 한 달 동안 고통을 겪었고 내 다중 통화 고문을 테스트 할 수 없습니다
불완전한 막대에서 현재 값으로 작업하고 있습니다.
이렇게 시도
또는 배열 시계열을 설정합니다.
불완전한 막대에서 현재 값으로 작업하고 있습니다.
이렇게 시도
또는 배열 시계열을 설정합니다.
그리고 왜 따옴표가 처음에 있는지 완고하게 대답하지 않습니다.
EURUSD의 경우 일치하는 것으로 보입니다)
그것에 관해서라면 2 배열의 시간을 유지해야합니다. 어떤 때는 EURUSD에서, 다른 때는 GBPUSD에서 복사합니다.
그것에 관해서라면 2 배열의 시간을 유지해야합니다. 어떤 때는 EURUSD에서, 다른 때는 GBPUSD에서 복사합니다.
잘
이대로는 안 될 것 같은데요, 그쵸?