오류, 버그, 질문 - 페이지 328

 
DenisR :
저도 처음에는 15 505 1009를 가지고 있었는데 터미널을 최신 버전(408)으로 업데이트해서 5 505 1009가 되었습니다. 하지만 어쨌든 파일 끝 기호는 파일 크기보다 클 수 없습니다 그 자체. 지금 그게 가장 걱정입니다.
응 이상해...
 

도움말에서 약간 수정된 표시기 예:

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2010, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot Line
#property indicator_label1   "Line"
#property indicator_type1   DRAW_LINE
#property indicator_color1  DarkBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1   1
//--- indicator buffers
double          LineBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,LineBuffer, INDICATOR_DATA );
//---
   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[])
  {
//--- получим количество доступных баров для текущих символа и периода на графике
   if (prev_calculated<= 0 ) 
     {
       int bars= Bars ( Symbol (), 0 );
       Print ( "Bars = " ,bars, ", rates_total = " ,rates_total, ", prev_calculated = " ,prev_calculated);
       Print ( "time[0] = " ,time[ 0 ], " time[rates_total-1] = " ,time[rates_total- 1 ]);
       //--- return value of prev_calculated for next call
     }
   return (rates_total);
  }

예를 들어 USDJPY(1h)에 던집니다. 그런 다음 예를 들어 #C(30m)에서 발사합니다. 우리는 미국 시장이 아직 열리지 않은 동안 이 모든 작업을 수행합니다. 그리고 우리는 그림을 관찰합니다. USDJPY의 틱의 출현으로 #C에 대한 OnCalculate가 트리거되고 prev_calculated=0이 됩니다. 그리고 USDJPY 자체에서 prev_calculated != 0 이전에 새 막대 . 나에 관해서는 이것은 명백한 버그이지만 내가 뭔가를 알지 못할 수도 있습니다. 빌드 408

 
notused :

예를 들어 USDJPY(1h)에 던집니다. 그런 다음 예를 들어 #C(30m)에서 발사합니다. 우리는 미국 시장이 아직 열리지 않은 동안 이 모든 작업을 수행합니다. 그리고 우리는 그림을 관찰합니다. USDJPY의 틱의 출현으로 #C에 대한 OnCalculate가 트리거되고 prev_calculated=0이 됩니다. 그리고 USDJPY 자체에서 prev_calculated != 0 이전에 새 막대 . 나에 관해서는 이것은 명백한 버그이지만 내가 뭔가를 알지 못할 수도 있습니다. 빌드 408

이것은 이미 논의되었습니다: https://www.mql5.com/ru/forum/3283/page2#comment_50176 (마지막 두 단락, 전체 주제를 볼 수 있음).
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin :
이것은 이미 논의되었습니다: https://www.mql5.com/ru/forum/3283/page2#comment_50176 (마지막 두 단락, 전체 주제를 볼 수 있음).
감사합니다, 우리는 알게 될 것입니다
 
문제. 표시기 버퍼 는 정수 또는 예를 들어 시간을 포함합니다. DataWindow에서 표시기 버퍼의 값을 정수 또는 예를 들어 시간으로 표시할 수 있습니까?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar :
문제. 표시기 버퍼 는 정수 또는 예를 들어 시간을 포함합니다. DataWindow에서 표시기 버퍼의 값을 정수 또는 예를 들어 시간으로 표시할 수 있습니까?

전체적으로 - INDICATOR_DIGITS 를 줄임으로써


 
sergeev :

전체적으로 - INDICATOR_DIGITS 를 줄임으로써

그러면 모든 double이 정수로 바뀝니다.
 
Lizar :
문제. 표시기 버퍼 는 정수 또는 예를 들어 시간을 포함합니다. DataWindow에서 표시기 버퍼의 값을 정수 또는 예를 들어 시간으로 표시할 수 있습니까?
현재 표시기 버퍼는 이중 유형의 배열로 배치됩니다. 따라서 버퍼 값은 Double 유형의 값으로 DataWindow에 반영됩니다. 분명히 개발자 없이는 작업을 자체적으로 해결할 수 없습니다.
 
예델킨 :
현재 индикаторные буферы 는 이중 유형의 배열로 배치됩니다. 따라서 버퍼 값은 Double 유형의 값으로 DataWindow에 반영됩니다. 분명히 개발자 없이는 작업을 자체적으로 해결할 수 없습니다.
우와...
 
Yedelkin :
현재 표시기 버퍼 는 이중 유형의 배열로 배치됩니다. 따라서 버퍼 값은 Double 유형의 값으로 DataWindow에 반영됩니다. 분명히 개발자 없이는 작업을 자체적으로 해결할 수 없습니다.
표시기 버퍼가 이중 유형의 배열로 배치되도록 하십시오. double에서 int와 datatime을 만드는 것이 가능합니다. 그러나 변환된 결과를 표시할 수 없습니다. 지표의 기능이 증가하고 DataWindow의 결과 표시가 동일하게 유지되었을 뿐입니다. 아마도 서비스 데스크에서 나는 소원을 쓸 것입니다.
사유: