찻주전자의 질문 - 페이지 235 1...228229230231232233234235236237238239240241242...277 새 코멘트 --- 2013.01.31 14:18 #2341 lazarev-dm : 이렇게 변경됨 일하는 것 같다 귀하의 어레이는 직렬이 아닙니다. 그래서 여기 있습니다 - Buffer[i+ 1 ]=Buffer[i]+delta; 미래를 엿보다 0 bar는 다시 계산되지 않습니다 - 같은 이유로 - 당신은 시작했습니다 - 그것은 0에서 시작하지 않습니다 Denis Lazarev 2013.01.31 15:03 #2342 sergeev : 귀하의 어레이는 직렬이 아닙니다. 그래서 여기 있습니다 - 미래를 엿보다 0 bar는 다시 계산되지 않습니다 - 같은 이유로 - 당신은 시작했습니다 - 그것은 0에서 시작하지 않습니다 나는 0 바가 공식에 의해 계산되지 않습니다 Buffer[ 0 ]=price[ 0 ]; 그런 다음 가격 움직임을 기반으로 지표가 추세를 따라 잡을 것입니다. 예를 들어, 가격이 지표를 떠났고 움직이지 않을 경우 지표는 " 기간 " 양초의 가격을 따라잡을 것입니다. 이것은 저에게 일종의 MA 대안입니다. --- 2013.01.31 15:40 #2343 lazarev-d-m : 그것은 나를 위해 MA에 대한 일종의 대안입니다. 미래에 대한 1개의 막대를 보면 이 대안을 휴지통에 안전하게 버릴 수 있습니다. Konstantin Chernov 2013.01.31 16:19 #2344 나의 첫 번째 지표. 문자를 0에서 100으로 조정하고 싶습니다. 제대로 하고 있습니까? 그리고 현재 막대를 다시 계산하지 않도록 하는 방법(테스터에서는 트위치하지만 차트에서는 안됨) #property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 100 #property indicator_buffers 1 #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Main" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- indicator buffers double MainBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit () { //--- indicator buffers mapping SetIndexBuffer ( 0 ,MainBuffer, INDICATOR_DATA ); IndicatorSetString ( INDICATOR_SHORTNAME , "NormSymbol" ); IndicatorSetInteger ( INDICATOR_DIGITS , 2 ); ArrayInitialize (MainBuffer, EMPTY_VALUE ); //--- return ( 0 ); } //+------------------------------------------------------------------+ //| 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[]) { int first,bar,nLowBar= 0 ,nHighBar= 0 ; int nVizCount = ( int ) ChartGetInteger ( 0 , CHART_VISIBLE_BARS ); if (prev_calculated== 0 ) // проверка на первый старт расчёта индикатора { first= 0 ; // стартовый номер для расчёта всех баров } else { first=prev_calculated- 1 ; // стартовый номер для расчёта новых баров } //---- основной цикл расчёта индикатора for (bar=first; bar<rates_total; bar++) { nLowBar = ArrayMinimum (low, bar, nVizCount); nHighBar= ArrayMaximum (high, bar, nVizCount); if (nLowBar> 0 && nHighBar> 0 && high[nHighBar]-low[nLowBar]!= 0 ) { MainBuffer[bar]=((close[bar] -low[nLowBar])/(high[nHighBar]-low[nLowBar]))* 100 ; } else { MainBuffer[bar]= EMPTY_VALUE ; } } //--- return value of prev_calculated for next call return (rates_total); } Yedelkin 2013.01.31 16:37 #2345 Konstantin83 : 현재 막대가 다시 계산되지 않도록 하는 방법 현재 막대 의 여는 시간을 기억하고 들어오는 틱의 시간과 비교하십시오. 값이 일치하지 않는 경우에만 현재 막대의 값을 다시 계산합니다. 이것은 내가 초기화 블록에 넣을 것입니다: nVizCount = ( int ) ChartGetInteger ( 0 , CHART_VISIBLE_BARS ); 변수는 프로그램의 전역 수준에서 선언됩니다. int first,bar,nLowBar= 0 ,nHighBar= 0 , nVizCount; Konstantin Chernov 2013.01.31 16:47 #2346 Yedelkin : 현재 막대 의 여는 시간을 기억하고 들어오는 틱의 시간과 비교하십시오. 값이 일치하지 않는 경우에만 현재 막대의 값을 다시 계산합니다. 이것은 내가 초기화 블록에 넣을 것입니다: 고맙습니다. 일반적으로 모든 것이 정확합니까? Yedelkin 2013.01.31 17:08 #2347 Konstantin83 : 일반적으로 모든 것이 정확합니까? 예, 나는 다른 것을 눈치 채지 못했습니다. 기사는 유사한 구조를 제안합니다. 0으로 나누기 테스트가 있습니다. 예, 다시 계산하지 않으려면 내가 기억하는 한 여전히 prev_calculated와 Rates_total을 비교할 수 있습니다. Konstantin Chernov 2013.01.31 17:48 #2348 Yedelkin : 예, 나는 다른 것을 눈치 채지 못했습니다. 기사는 유사한 구조를 제안합니다. 0으로 나누기 테스트가 있습니다. 예, 다시 계산하지 않으려면 내가 기억하는 한 여전히 prev_calculated와 Rates_total을 비교할 수 있습니다. 표시기로 터미널을 닫고 터미널을 시작 했는데 표시기가 선을 그리지 않는 이유를 아십니까? 다른 시간대로 전환하면 그려집니다. Yedelkin 2013.02.01 06:18 #2349 Konstantin83 : 표시기로 터미널을 닫고 터미널을 시작 했는데 표시기가 선을 그리지 않는 이유를 아십니까? 다른 시간대로 전환하면 그려집니다. 시작 시 터미널은 "상승"하고 데이터베이스를 서버와 동기화하는 데 약간의 시간이 필요합니다. 표시기가 동시에 시작되면 표시기를 계산하기 위한 데이터가 아직 없을 수 있습니다. 가장 멍청한 솔루션을 시도하십시오. OnInit()에 몇 초의 지연을 삽입하십시오. 좋은 방법으로, 문제 영역을 검색할 때 모든 중요한 정보를 인쇄하는 것이 바람직합니다. 유형 if (nLowBar< 0 ) Print ( "Ошибка, nLowBar=" ,nLowBar, ", prev_calculated=" ,prev_calculated,", bar=",bar); Yedelkin 2013.02.02 07:38 #2350 Yedelkin : forward666 : 시각화 필요 현재 시간 모드에서 거래에 대한 도움을 아직 찾지 못했습니다. 데모 계정에서 포지션을 열고 닫으십시오. 여기에서 찾았습니다: https://www.mql5.com/ru/forum/6343/page96#comment_419028 1...228229230231232233234235236237238239240241242...277 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
이렇게 변경됨
일하는 것 같다귀하의 어레이는 직렬이 아닙니다.
그래서 여기 있습니다 -
Buffer[i+ 1 ]=Buffer[i]+delta;
미래를 엿보다
0 bar는 다시 계산되지 않습니다 - 같은 이유로 - 당신은 시작했습니다 - 그것은 0에서 시작하지 않습니다
귀하의 어레이는 직렬이 아닙니다.
그래서 여기 있습니다 -
미래를 엿보다
0 bar는 다시 계산되지 않습니다 - 같은 이유로 - 당신은 시작했습니다 - 그것은 0에서 시작하지 않습니다
나는 0 바가 공식에 의해 계산되지 않습니다
그런 다음 가격 움직임을 기반으로 지표가 추세를 따라 잡을 것입니다.
예를 들어, 가격이 지표를 떠났고 움직이지 않을 경우 지표는 " 기간 " 양초의 가격을 따라잡을 것입니다. 이것은 저에게 일종의 MA 대안입니다.
lazarev-d-m :
그것은 나를 위해 MA에 대한 일종의 대안입니다.
나의 첫 번째 지표. 문자를 0에서 100으로 조정하고 싶습니다. 제대로 하고 있습니까? 그리고 현재 막대를 다시 계산하지 않도록 하는 방법(테스터에서는 트위치하지만 차트에서는 안됨)
현재 막대 의 여는 시간을 기억하고 들어오는 틱의 시간과 비교하십시오. 값이 일치하지 않는 경우에만 현재 막대의 값을 다시 계산합니다.
이것은 내가 초기화 블록에 넣을 것입니다:
변수는 프로그램의 전역 수준에서 선언됩니다.
현재 막대 의 여는 시간을 기억하고 들어오는 틱의 시간과 비교하십시오. 값이 일치하지 않는 경우에만 현재 막대의 값을 다시 계산합니다.
이것은 내가 초기화 블록에 넣을 것입니다:
예, 나는 다른 것을 눈치 채지 못했습니다. 기사는 유사한 구조를 제안합니다. 0으로 나누기 테스트가 있습니다.
예, 다시 계산하지 않으려면 내가 기억하는 한 여전히 prev_calculated와 Rates_total을 비교할 수 있습니다.
예, 나는 다른 것을 눈치 채지 못했습니다. 기사는 유사한 구조를 제안합니다. 0으로 나누기 테스트가 있습니다.
예, 다시 계산하지 않으려면 내가 기억하는 한 여전히 prev_calculated와 Rates_total을 비교할 수 있습니다.
시작 시 터미널은 "상승"하고 데이터베이스를 서버와 동기화하는 데 약간의 시간이 필요합니다. 표시기가 동시에 시작되면 표시기를 계산하기 위한 데이터가 아직 없을 수 있습니다. 가장 멍청한 솔루션을 시도하십시오. OnInit()에 몇 초의 지연을 삽입하십시오.
좋은 방법으로, 문제 영역을 검색할 때 모든 중요한 정보를 인쇄하는 것이 바람직합니다. 유형
Yedelkin :
현재 시간 모드에서 거래에 대한 도움을 아직 찾지 못했습니다. 데모 계정에서 포지션을 열고 닫으십시오.
여기에서 찾았습니다: https://www.mql5.com/ru/forum/6343/page96#comment_419028