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

 
Aliaksandr Hryshyn :
거기에 포인터가 복사합니다
데이터를 어떻게 복사할 수 있습니까? 글쎄, 요소별로?
 
Vasiliy Pushkaryov :
데이터를 어떻게 복사할 수 있습니까? 글쎄, 요소별로?

이게 얼마나 정확한지는 모르겠지만 추가 생성자를 통해 작업을 해결했습니다. 누군가가 도움이 될 것입니다.

 #include <Arrays\ArrayObj.mqh>

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

class CID : public CObject
{
   public :   int id;
           CID() {}
           CID(CID* pt) { this = pt;}
           
};


void OnStart ()
{
   // -----------------------------------------------------------------
    CID* pCur = new CID;           // создаем объект для текущих параметров
    pCur.id = 25 ;                 // вносим текущие данные
    ArrCur.Add(pCur);             // помещаем в массив объектов
    
    CID* pTemp = ArrCur.At( 0 );     // вытягиваем объект по указателю
    CID* pPrev = new CID(pTemp);   // в дин.объект копируем в конструкторе данные с предыд.указателя
    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_DINAMYC
  
   Print ( __FUNCTION__ , " sizeCur=" , sizeCur, " pTypeCur=" , EnumToString (pTypeCur));
   Print ( __FUNCTION__ , " sizePrev=" , sizePrev, " pTypePrev=" , EnumToString (pTypePrev));

  ArrPrev.Clear();             // чистим массив
}
 
fxsaber :

테스터의 비주얼 모드 에서 ChartScreenShot 이 제대로 작동하지 않습니다.

 void OnTick ()
{
   Print ( ChartScreenShot ( 0 , "Test.png" , 100 , 100 )); // true, но файл нулевой длины
  
   ExpertRemove ();
}

안녕하세요 uv입니다. 개발자. ChartScreenShot()이 테스터에서 언제 작동하는지 알 수 있습니까?

 

그런 Expert Advisor에서 입력 매개변수(F7)를 변경하거나 전역 변수 값 (F3)을 변경하는 방법을 알려주십시오.

 input int i = 0 ;

const bool Init = EventSetTimer ( 1 );

void OnTimer ()
{
   Alert ( "" );
}

차트에서 제거하는 것조차 문제가 됩니다.

 
좋은 저녁, 질문이 있습니까? 에이전트 관리자가 판매용으로 설치했지만 클라우드 열에는 비활성화되어 있고 6개의 프로세서에서 하루 종일 움직임이 없었습니다. 프로세서는 계정에 표시됩니다. 이건 괜찮아?
 

이전에는 디버그 를 완전히 사용할 수 없었지만 F5 키를 통해 스크립트를 실행 하는 것이 편리한 경우 있었습니다.

그리고 실수로 로그에서 다음 항목을 찾았습니다.

이 경우 스크립트 자체가 실행됩니다. 코드에 다음 줄을 삽입하려고 했습니다.

{ DebugBreak (); Print ( " DebugBreak " ); }

"DebugBreak" 행이 인쇄되지만 중단이 없습니다.

 
A100 :

(비록 출시가 현재 차트가 아닌 새 차트에 있는 이유는 분명하지 않지만).

편집기 도구->설정->디버그/프로파일링에서
거기에서 어떤 기호 디버깅이 시작될 것인지 설정 되지만 모두 동일하게 별도의 차트에서 시작됩니다.
기호가 지정되지 않은 경우 Market Watch의 맨 처음(상단) 기호에서 시작됩니다.

나에게 일반적으로 시간 작업을 통한 중단점 . 빌드 2875
포인트를 설정하고 실제 데이터에서 디버깅 시작을 누르면 디버깅이 완료된 후 날고, 쉬지 않고 날아갑니다.
편집기로 터미널을 다시 시작하면 다음 번 디버깅 시작/중지 때까지 breakpoints 가 표시되기 시작하고 다시 건너뛰기 시작합니다.
기록 데이터에서 디버깅을 시작하면 일반적으로 테스터 창을 호출하고 중단 점도 건너뛰어 디버깅을 완료합니다.
과거 데이터에서 나는 한 지점에서 멈추지 않고 항상 건너 뛰고 디버깅을 완료합니다.
그러나 테스터의 경우 기록 데이터 에서 호출되고 저장된 매개변수는 h.z에서 가져옵니다. 그것은 무엇입니까, 그렇게 생각되거나 곡률입니다.

 
Roman :

편집기 도구->설정->디버그/프로파일링에서
거기에서 어떤 심볼 디버깅이 시작될 것인지 설정되지만, 모두 동일 하게 별도의 차트에서 시작될 것입니다 .
기호가 지정되지 않은 경우 Market Watch의 맨 처음(상단) 기호에서 시작됩니다.

제 생각에는 이것은 매우 불편합니다. 현재 차트에는 표시기, 프로그램이 상호 작용해야 하는 그래픽 개체, 설정 등이 포함됩니다. 새로운 "빈" 차트가 시작됩니다. 또한 일반 모드(디버깅 아님)의 프로그램은 새 차트가 아닌 현재 의 네비게이터에서 시작됩니다 . 명백한 불일치가 있습니다.

 
시각화에는 몇 가지 오해가 있습니다.
https://www.mql5.com/ru/forum/368597
Ошибка моделирования визуализация\без
Ошибка моделирования визуализация\без
  • 2021.05.04
  • www.mql5.com
Кто нибудь может объяснить как это происходит , или протестировать у себя...
 
런타임 오류(잘못된 대체 순서)
 #define MACRO( X )
void OnStart ()
{
        MACRO( __COUNTER__ )
        MACRO( __COUNTER__ )
         Print ( __COUNTER__ );
}

결과: 2

예상: 0