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

 
ivandurak :

안녕히 주무세요. 열심히 공부를 시작했습니다. 명백한 버그인 것 같습니다. 표시기 코드는 아래와 같습니다. 한 줄(표시됨)에 주석을 달면 거기에 있습니다. 프로토콜이 이해하지 못한 부분에서 작동하기 시작하는 것 같습니다. 나는 이것에 대한 문서에서 아무 것도 찾지 못했고 정직하게 검색했습니다.

Raznica 어레이가 할당되지 않았습니다. 선언되었지만 메모리가 할당되지 않았으며 표시기 버퍼 가 아닙니다(메모리는 버퍼에 대해 자동으로 할당됨).

바로 여기에:

   SetIndexBuffer ( 0 ,BaseMaBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,MaForMaBuffer, INDICATOR_DATA );

BaseMaBuffer 및 MaForMaBuffer 배열이 표시기 버퍼임을 컴파일러에 알리는 것입니다. 나머지 어레이는 다음을 통해 배포해야 합니다.

 ArrayResize()
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
ivandurak :

안녕히 주무세요. 열심히 공부를 시작했습니다. 이것은 명백한 버그인 것 같습니다. 표시기 코드는 아래와 같습니다. 맨 아래에 한 줄이 있으면(표시됨) 주석이 표시됩니다. 프로토콜이 이해하지 못한 부분에서 작동하기 시작하는 것 같습니다. Raznica[] 배열에 명시적 크기를 지정하여 상황을 우회할 수 있습니다. 나는 이것에 대한 문서에서 아무 것도 찾지 못했고 정직하게 검색했습니다.

버그가 없습니다. 동적 배열의 경우 함수를 사용하여 크기를 설정해야 합니다.

 int    ArrayResize (
   void   array[],               // массив, переданный по ссылке
   int    new_size,             // новый размер массива
   int    reserve_size= 0          // резервное значение размера (избыточное)
   );

함수는 동적 배열 에만 적용할 수 있습니다. 동시에 SetIndexBuffer() 함수에 의해 표시기 버퍼로 할당된 동적 배열의 크기를 변경할 수 없음을 명심하십시오. 표시기 버퍼의 경우 모든 크기 조정 작업은 터미널의 실행 하위 시스템에서 수행됩니다.


 
유능한 슬랩 덕분에 모든 것을 이해했습니다. 또 다른 질문은 어레이의 크기가 조정되면 데이터는 어떻게 되는지였습니다. 또한 동적 배열 ?에 대해서만 시계열에서와 같이 인덱싱 방향을 변경할 수도 있습니다.
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
ivandurak :
유능한 슬랩 덕분에 모든 것을 이해했습니다. 또 다른 질문은 어레이의 크기가 조정되면 데이터는 어떻게 되는지였습니다. 또한 동적 배열 ?에 대해서만 시계열에서와 같이 인덱싱 방향을 변경할 수도 있습니다.

데이터를 줄였다가 복원하면 알 수 없는 상태로 유지됩니다(결과는 정의되지 않음).

그런데 인덱싱의 방향은 인덱스에 대한 매력만 바뀌고 배열은 같은 방향으로 분산됩니다.

즉, 어레이를 다시 분할하여 데이터를 이동할 수 없습니다.

 

이미 보고된 바 있으나 테스터는 지속적으로 사용자가 설정한 보증금의 초기 값을 $10,000씩 재설정합니다.

사용 가능한 초기 값 세트는 다소 곡선입니다. 거기에 적어도 $1000를 추가하십시오.

빌드 523

윈도우 XP

 
뭐 그런거였나.. 일반적으로 비후손은 보호된 메소드에 자유로이 접근이 허용됨
 #include <Arrays/List.mqh>
//---------------------------------------
class CBasket;

class CFruit: public CObject {
private :
         double _weight;
protected :
         double GetWeight(){ return _weight;}     
public :
        CFruit( double weight){_weight = weight;};
        ~CFruit(){};
};
//---------------------------------------
class CBasket {
private :
        CList _fruits;
protected :
public :
        CBasket(){};
        ~CBasket(){};
         double Weight() {
                 double weight = 0 ;
                 for (CFruit* f = _fruits.GetFirstNode(); f != NULL ; f = _fruits.GetNextNode()) {
                        weight += f.GetWeight(); //свободный вызов protected метода другого класса
                }
                 return weight;
        }
        
         void Attach(CFruit* f) {
                _fruits.Add(f);
        }
};
//---------------------------------------
int OnInit () {
        CBasket* b = new CBasket();
        
        CFruit* f1 = new CFruit( 3.5 );
        CFruit* f2 = new CFruit( 6.5 );
        b.Attach(f1);
        b.Attach(f2);
         Print (b.Weight());
      
   return ( 0 );
}
//---------------------------------------
 

최적화 후 결과가 있는 파일이 열리지 않으며 ,

빌드 527 + 오피스 2007

오류 로그에서 이러한 데이터


"테이블"의 XML 오류
이유: 잘못된 값
파일: C:\Users\Dragon\Desktop\ReportOptimizer-957640.xml
그룹: 세포
태그: 데이터
값 : 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

"테이블"의 XML 오류
이유: 잘못된 값
파일: C:\Users\Dragon\Desktop\ReportOptimizer-957640.xml
그룹: 세포
태그: 데이터
값 : 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

"테이블"의 XML 오류
이유: 잘못된 값
파일: C:\Users\Dragon\Desktop\ReportOptimizer-957640.xml
그룹: 세포
태그: 데이터
값 : 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

"테이블"의 XML 오류
이유: 잘못된 값
파일: C:\Users\Dragon\Desktop\ReportOptimizer-957640.xml
그룹: 세포
태그: 데이터
값 : 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

"테이블"의 XML 오류
이유: 잘못된 값
파일: C:\Users\Dragon\Desktop\ReportOptimizer-957640.xml
그룹: 세포
태그: 데이터
값 : 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

등.

 

나는 그것이 당신에게 빈 가치를 제공한다고 생각합니다.

당신은 읽을 수있다

https://www.mql5.com/ru/docs/constants/namedconstants/otherconstants

EMPTY_VALUE

표시기 버퍼의 빈 값

DBL_MAX

DBL_MAX

Double 타입으로 표현할 수 있는 최대값

1.7976931348623158e+308

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы - Документация по MQL5
 
Vigor :
뭐 그런거였나.. 일반적으로 비후손은 보호된 메소드에 자유로이 접근이 허용됨

메시지에 감사드립니다. 버그가 수정되었으며 수정 사항은 다음 빌드에 포함됩니다.
 
Karlson :

나는 그것이 당신에게 빈 가치를 제공한다고 생각합니다.

당신은 읽을 수있다

https://www.mql5.com/ru/docs/constants/namedconstants/otherconstants

EMPTY_VALUE

표시기 버퍼의 빈 값

DBL_MAX

DBL_MAX

Double 타입으로 표현할 수 있는 최대값

1.7976931348623158e+308

그리고 어떻게 빈 값이 파일에 들어갈 수 있습니까? 테스터 창에는 정상적인 최적화 결과가 있습니다.