오류, 버그, 질문 - 페이지 735 1...728729730731732733734735736737738739740741742...3184 새 코멘트 --- 2012.05.03 10:58 #7341 joo : "오해"를 찾았습니다. 컴파일러가 두 번째 변수 b 의 정의를 좋아하지 않는 이유는 무엇입니까? 그리고 일반적으로 그러한 상황을 해결하는 방법은 무엇입니까? 그는 정의를 좋아하지 않습니다. 그는 또한 또 다른 오류를 씁니다 . 배열의 차원에 대한 잘못된 유형의 변수입니다. 차원에는 상수만 지정할 수 있습니다. Andrey Dik 2012.05.03 11:02 #7342 sergeev : 그는 정의를 좋아하지 않습니다. 그는 또한 또 다른 오류를 씁니다 . 배열의 차원에 대한 잘못된 유형의 변수입니다. 차원에는 상수만 지정할 수 있습니다. 상수도 롤링되지 않으면 오류가 발생합니다. const int AA = 11 ; ArrWe m[AA]; 액세스 지정자 액세스 지정자는 컴파일러에게 변수, 구조체의 멤버 또는 클래스에 액세스하는 방법을 알려줍니다. const 지정 자는 변수를 상수로 선언하고 이 변수의 값이 프로그램 실행 중에 변경되는 것을 허용하지 않습니다. 변수가 선언되면 한 번만 초기화할 수 있습니다. --- 2012.05.03 11:05 #7343 나는 두 가지 옵션만을 의미했습니다 정수형[100] 또는 #정의 r 100 정수 [r] 나머지 ArrayResize 의 경우 Dmitriy Skub 2012.05.03 11:19 #7344 papaklass : 이해하지 못했습니다. 차트에 전문가를 걸고 이 메시지가 "전문가" 탭에 나타납니다. 전문가는 여전히 일을 계속하고 있습니다. 이것은 오류가 아니라 경고입니다. 무엇에 대한 경고? 이것은 런타임 오류입니다. 메모리 누수를 의미합니다. 문자열이 점유한 메모리가 해제되지 않는 곳이 있습니다. 대부분의 경우 구조나 클래스에서 new 이후에 삭제되지 않습니다. 더 정확하게는 코드를 살펴봐야 합니다. Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5 Valerii Mazurenko 2012.05.03 20:57 #7345 joo : 상수도 롤링되지 않으면 오류가 발생합니다. 액세스 지정자 액세스 지정자는 컴파일러에게 변수, 구조체의 멤버 또는 클래스에 액세스하는 방법을 알려줍니다. const 지정 자는 변수를 상수로 선언하고 이 변수의 값이 프로그램 실행 중에 변경되는 것을 허용하지 않습니다. 변수가 선언되면 한 번만 초기화할 수 있습니다. 상수 변수는 상수가 아닙니다! 일회성 초기화가 허용됩니다. 즉, 메모리가 할당되는 변수입니다. 상수의 작업은 런타임에 메모리를 차지하지 않고 계산되고 코드로 대체되는 것입니다. 상수는 const AA=11입니다. 따라서 컴파일러는 올바르게 맹세합니다. const AA=11이면 욕설이 없습니다. Виктор 2012.05.05 12:21 #7346 무슨일인지 말하지마? ChannelPeriod = 100의 마지막 간격에서; 모든 것이 정상적으로 표시되는 마지막 100개 막대를 넘어서는 표시기 판독값에 급격한 상향 이동이 있습니다. 누군가가 그것을 고칠 방법을 알고 있습니까? //+------------------------------------------------------------------+ 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[]) { //--- variables of indicator int i; CopyClose (Symbol1_Name, PERIOD_M30 , 0 ,rates_total,close_1); CopyClose (Symbol2_Name, PERIOD_M30 , 0 ,rates_total,close_2); //--- main cycle for (i=prev_calculated; i<rates_total; i++) { Last[i] = (Symbol1_Vol*Symbol1_K*close_1[i] - Symbol2_Vol*Symbol2_K*close_2[i]); } // Считаем положение эквити относительно канала удвоенного среднеквадратичного отклонения double StdDev; for (i=prev_calculated; i<rates_total; i++) { StdDev=MyStdDev(Last,ChannelPeriod,i); if (StdDev> 0.00001 ) // Защита от отсутствия данных ExtStdDevBuffer[i]=(Last[i]+ 2 *StdDev-iMAOnArrayMQL4(Last, 0 ,ChannelPeriod, 0 , MODE_SMA ,i))/( 4 *StdDev); } return (rates_total); } //----------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------- // Calculation StdDev -----------------------------------------------| // StdDev = SQRT (SUM [(S(i) - SMA(i))^2, N] / N) | double MyStdDev( double &array[], int BandsPeriod, int Index) { double ds, sum, center; sum = 0 ; center = iMAOnArrayMQL4(array, 0 ,BandsPeriod, 0 , MODE_SMA ,Index); for ( int i = 0 ; i < BandsPeriod; i++) { ds = array[Index+i] - center; sum += ds * ds; } sum = MathSqrt (sum / BandsPeriod); return (sum); } //----------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------- double iMAOnArrayMQL4( double &array[], int total, int period, int ma_shift, int ma_method, int shift) { double buf[],arr[]; if (total== 0 ) total= ArraySize (array); if (total> 0 && total<=period) return ( 0 ); if (shift>total-period-ma_shift) return ( 0 ); switch (ma_method) { case MODE_SMA : { total= ArrayCopy (arr,array, 0 ,shift+ma_shift,period); if ( ArrayResize (buf,total)< 0 ) return ( 0 ); double sum= 0 ; int i,pos=total- 1 ; for (i= 1 ;i<period;i++,pos--) sum+=arr[pos]; while (pos>= 0 ) { sum+=arr[pos]; buf[pos]=sum/period; sum-=arr[pos+period- 1 ]; pos--; } return (buf[ 0 ]); } case MODE_EMA : { if ( ArrayResize (buf,total)< 0 ) return ( 0 ); double pr= 2.0 /(period+ 1 ); int pos=total- 2 ; while (pos>= 0 ) { if (pos==total- 2 ) buf[pos+ 1 ]=array[pos+ 1 ]; buf[pos]=array[pos]*pr+buf[pos+ 1 ]*( 1 -pr); pos--; } return (buf[shift+ma_shift]); } case MODE_SMMA : { if ( ArrayResize (buf,total)< 0 ) return ( 0 ); double sum= 0 ; int i,k,pos; pos=total-period; while (pos>= 0 ) { if (pos==total-period) { for (i= 0 ,k=pos;i<period;i++,k++) { sum+=array[k]; buf[k]= 0 ; } } else sum=buf[pos+ 1 ]*(period- 1 )+array[pos]; buf[pos]=sum/period; pos--; } return (buf[shift+ma_shift]); } case MODE_LWMA : { if ( ArrayResize (buf,total)< 0 ) return ( 0 ); double sum= 0.0 ,lsum= 0.0 ; double price; int i,weight= 0 ,pos=total- 1 ; for (i= 1 ;i<=period;i++,pos--) { price=array[pos]; sum+=price*i; lsum+=price; weight+=i; } pos++; i=pos+period; while (pos>= 0 ) { buf[pos]=sum/weight; if (pos== 0 ) break ; pos--; i--; price=array[pos]; sum=sum-lsum+price*period; lsum-=array[i]; lsum+=price; } return (buf[shift+ma_shift]); } default : return ( 0 ); } return ( 0 ); } //----------------------------------------------------------------------------------------- Виктор 2012.05.05 12:23 #7347 지시자 파일: Spread_O.mq5 7 kb [삭제] 2012.05.06 07:21 #7348 왜 "시작" 버튼을 누르면 테스터가 초기 입금 수준이 아니라 마지막 테스트가 종료된 수준에서 테스트합니다. 4-ke에서는 그런 문제가 없습니다. 초기 보증금 수준에서 테스트를 시작 하는 방법은 무엇입니까? Aleksey Rodionov 2012.05.06 09:57 #7349 PDF로 된 교과서를 다운로드할 수 있는 직접 링크를 제공하십시오. 그렇지 않으면 전화의 브라우저가 사이트의 모든 것을 볼 수 없습니다 --- 2012.05.06 10:37 #7350 Zeleniy : PDF로 된 교과서를 다운로드할 수 있는 직접 링크를 제공하십시오. 그렇지 않으면 전화의 브라우저가 사이트의 모든 것을 볼 수 없습니다 교과서가 없습니다. 도움만. 1...728729730731732733734735736737738739740741742...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
"오해"를 찾았습니다.
컴파일러가 두 번째 변수 b 의 정의를 좋아하지 않는 이유는 무엇입니까?
그리고 일반적으로 그러한 상황을 해결하는 방법은 무엇입니까?
그는 정의를 좋아하지 않습니다.
그는 또한 또 다른 오류를 씁니다 . 배열의 차원에 대한 잘못된 유형의 변수입니다.
차원에는 상수만 지정할 수 있습니다.
그는 정의를 좋아하지 않습니다.
그는 또한 또 다른 오류를 씁니다 . 배열의 차원에 대한 잘못된 유형의 변수입니다.
차원에는 상수만 지정할 수 있습니다.
상수도 롤링되지 않으면 오류가 발생합니다.
액세스 지정자
액세스 지정자는 컴파일러에게 변수, 구조체의 멤버 또는 클래스에 액세스하는 방법을 알려줍니다.
const 지정 자는 변수를 상수로 선언하고 이 변수의 값이 프로그램 실행 중에 변경되는 것을 허용하지 않습니다. 변수가 선언되면 한 번만 초기화할 수 있습니다.
나는 두 가지 옵션만을 의미했습니다
정수형[100]
또는
#정의 r 100
정수 [r]
나머지 ArrayResize 의 경우
이해하지 못했습니다. 차트에 전문가를 걸고 이 메시지가 "전문가" 탭에 나타납니다. 전문가는 여전히 일을 계속하고 있습니다. 이것은 오류가 아니라 경고입니다. 무엇에 대한 경고?
상수도 롤링되지 않으면 오류가 발생합니다.
액세스 지정자
액세스 지정자는 컴파일러에게 변수, 구조체의 멤버 또는 클래스에 액세스하는 방법을 알려줍니다.
const 지정 자는 변수를 상수로 선언하고 이 변수의 값이 프로그램 실행 중에 변경되는 것을 허용하지 않습니다. 변수가 선언되면 한 번만 초기화할 수 있습니다.
상수 변수는 상수가 아닙니다! 일회성 초기화가 허용됩니다. 즉, 메모리가 할당되는 변수입니다.
상수의 작업은 런타임에 메모리를 차지하지 않고 계산되고 코드로 대체되는 것입니다.
상수는 const AA=11입니다.
따라서 컴파일러는 올바르게 맹세합니다. const AA=11이면 욕설이 없습니다.
무슨일인지 말하지마?
ChannelPeriod = 100의 마지막 간격에서; 모든 것이 정상적으로 표시되는 마지막 100개 막대를 넘어서는 표시기 판독값에 급격한 상향 이동이 있습니다.
누군가가 그것을 고칠 방법을 알고 있습니까?
PDF로 된 교과서를 다운로드할 수 있는 직접 링크를 제공하십시오. 그렇지 않으면 전화의 브라우저가 사이트의 모든 것을 볼 수 없습니다