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

 
프로필의 "모든 메시지" 링크는 어디로 갔나요?
 
fxsaber :
프로필의 "모든 메시지" 링크는 어디로 갔나요?
.
 
Alexey Viktorov :

고맙습니다!

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MT4의 비정규화된 가격

fxsaber , 2021.04.30 10:42

PS 두 개의 다른 숫자가 같은 방식으로 문자열로 변환됩니다. 버그인가요?

 void OnStart ()
{
   const double Num = 1.07299 ;
   const double Norm = NormalizeDouble (Num, 5 );
   
   Print (Num);   // 1.07299
   Print (Norm); // 1.07299

   Print (Num - Norm); // 2.220446049250313e-16
}

상황은 이 스레드 와 유사합니다.

 

오실레이터와 유사한 하위 창의 사용자 지정 표시기.
일반 제로 라인을 숨기는 방법?
GUI에서 배경색 아래의 0 레벨 채우기가 작동하지 않습니다.

나

표시기의 속성 설정이 작동하지 않음

 #property indicator_level1    0.0
#property indicator_levelcolor C'35,35,35'
 
fxsaber :

숫자는 다르지만 소수점 17자리 차이가 있고 Print 는 소수점 15자리만 처리하므로 Print의 관점에서 보면 동일합니다.

 
A100 :

숫자는 다르지만 소수점 17자리 차이가 있고 Print 는 소수점 15자리만 처리하므로 Print의 관점에서 보면 동일합니다.

Print가 아니라 double을 string으로 변환합니다.

 

쌀 #1

이것을 알아차렸다. 포워드 테스트 중에 이러한 포워드가 반복되면(동일) 세 가지 옵션 모두에 대한 백테스트를 볼 때 첫 번째 옵션(10384.88)만 표시됩니다.

그림2

결과가 10435 또는 10843인 변형에 대한 데이터를 알 수 없습니다(보고서에서 모든 것이 보고서 변형 = 10384에 따름)???

 

포인터 아래에 있는 데이터를 복사하는 것이 올바른지 누가 알겠습니까?

한 개체에서 다른 개체로 데이터를 복사해야 합니다. 그런 다음 초기 개체 - 삭제합니다. 원본 개체를 삭제하면 복사 개체의 데이터에 액세스할 수 없게 됩니다.

 #include <Arrays\ArrayObj.mqh>

CArrayObj ArrCur;       // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev;   // массив с объектами, каждый объект содержит структуру с полями ордеров и его id

class CID : public CObject
{
   public :   int id;
};


void OnStart ()
{
   // -----------------------------------------------------------------
    CID* pCur = new CID;         // создаем объект для текущих параметров
    pCur.id = 25 ;               // вносим текущие данные
    ArrCur.Add(pCur);           // помещаем в массив объектов
    
     CID* pPrev = ArrCur.At( 0 );   // копируем данные??? Указатель???
    ArrPrev.Add(pPrev);         // помещаем в массив объектов
    
    ArrCur.Clear();             // чистим текущий массив
   // -----------------------------------------------------------------
  
   // --- для вывода в журнал
   int sizeCur = ArrCur.Total();       // размер = 0
   int sizePrev = ArrPrev.Total();     // размер = 1
  
   ENUM_POINTER_TYPE pTypeCur = CheckPointer (ArrCur.At( 0 ));     // POINTER_INVALID
   ENUM_POINTER_TYPE pTypePrev = CheckPointer (ArrPrev.At( 0 ));   // POINTER_INVALID
  
   Print ( __FUNCTION__ , " sizeCur=" , sizeCur, " pTypeCur=" , EnumToString (pTypeCur));
   Print ( __FUNCTION__ , " sizePrev=" , sizePrev, " pTypePrev=" , EnumToString (pTypePrev));

}
 
거기에 포인터가 복사합니다