Vasiliy Pushkaryov : 데이터를 어떻게 복사할 수 있습니까? 글쎄, 요소별로?
이게 얼마나 정확한지는 모르겠지만 추가 생성자를 통해 작업을 해결했습니다. 누군가가 도움이 될 것입니다.
#include <Arrays\ArrayObj.mqh>
CArrayObj ArrCur; // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev; // массив с объектами, каждый объект содержит структуру с полями ордеров и его idclass CID : public CObject
{
public : int id;
CID() {}
CID(CID* pt) { this = pt;}
};
voidOnStart ()
{
// -----------------------------------------------------------------
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(); // размер = 0int sizePrev = ArrPrev.Total(); // размер = 1ENUM_POINTER_TYPE pTypeCur = CheckPointer (ArrCur.At( 0 )); // POINTER_INVALIDENUM_POINTER_TYPE pTypePrev = CheckPointer (ArrPrev.At( 0 )); // POINTER_DINAMYCPrint ( __FUNCTION__ , " sizeCur=" , sizeCur, " pTypeCur=" , EnumToString (pTypeCur));
Print ( __FUNCTION__ , " sizePrev=" , sizePrev, " pTypePrev=" , EnumToString (pTypePrev));
ArrPrev.Clear(); // чистим массив
}
편집기 도구->설정->디버그/프로파일링에서 거기에서 어떤 기호 디버깅이 시작될 것인지 설정 되지만 모두 동일하게 별도의 차트에서 시작됩니다. 기호가 지정되지 않은 경우 Market Watch의 맨 처음(상단) 기호에서 시작됩니다.
나에게 일반적으로 시간 작업을 통한 중단점 . 빌드 2875 포인트를 설정하고 실제 데이터에서 디버깅 시작을 누르면 디버깅이 완료된 후 날고, 쉬지 않고 날아갑니다. 편집기로 터미널을 다시 시작하면 다음 번 디버깅 시작/중지 때까지 breakpoints 가 표시되기 시작하고 다시 건너뛰기 시작합니다. 기록 데이터에서 디버깅을 시작하면 일반적으로 테스터 창을 호출하고 중단 점도 건너뛰어 디버깅을 완료합니다. 과거 데이터에서 나는 한 지점에서 멈추지 않고 항상 건너 뛰고 디버깅을 완료합니다. 그러나 테스터의 경우 기록 데이터 에서 호출되고 저장된 매개변수는 h.z에서 가져옵니다. 그것은 무엇입니까, 그렇게 생각되거나 곡률입니다.
편집기 도구->설정->디버그/프로파일링에서 거기에서 어떤 심볼 디버깅이 시작될 것인지 설정되지만, 모두 동일 하게 별도의 차트에서 시작될 것입니다 . 기호가 지정되지 않은 경우 Market Watch의 맨 처음(상단) 기호에서 시작됩니다.
제 생각에는 이것은 매우 불편합니다. 현재 차트에는 표시기, 프로그램이 상호 작용해야 하는 그래픽 개체, 설정 등이 포함됩니다. 새로운 "빈" 차트가 시작됩니다. 또한 일반 모드(디버깅 아님)의 프로그램은 새 차트가 아닌 현재 의 네비게이터에서 시작됩니다 . 명백한 불일치가 있습니다.
거기에 포인터가 복사합니다
데이터를 어떻게 복사할 수 있습니까? 글쎄, 요소별로?
이게 얼마나 정확한지는 모르겠지만 추가 생성자를 통해 작업을 해결했습니다. 누군가가 도움이 될 것입니다.
테스터의 비주얼 모드 에서 ChartScreenShot 이 제대로 작동하지 않습니다.
안녕하세요 uv입니다. 개발자. ChartScreenShot()이 테스터에서 언제 작동하는지 알 수 있습니까?
그런 Expert Advisor에서 입력 매개변수(F7)를 변경하거나 전역 변수 값 (F3)을 변경하는 방법을 알려주십시오.
차트에서 제거하는 것조차 문제가 됩니다.
이전에는 디버그 를 완전히 사용할 수 없었지만 F5 키를 통해 스크립트를 실행 하는 것이 편리한 경우 가 있었습니다.
그리고 실수로 로그에서 다음 항목을 찾았습니다.![](https://c.mql5.com/3/354/debug__1.png)
이 경우 스크립트 자체가 실행됩니다. 코드에 다음 줄을 삽입하려고 했습니다.
"DebugBreak" 행이 인쇄되지만 중단이 없습니다.
(비록 출시가 현재 차트가 아닌 새 차트에 있는 이유는 분명하지 않지만).
편집기 도구->설정->디버그/프로파일링에서
거기에서 어떤 기호 디버깅이 시작될 것인지 설정 되지만 모두 동일하게 별도의 차트에서 시작됩니다.
기호가 지정되지 않은 경우 Market Watch의 맨 처음(상단) 기호에서 시작됩니다.
나에게 일반적으로 시간 작업을 통한 중단점 . 빌드 2875
포인트를 설정하고 실제 데이터에서 디버깅 시작을 누르면 디버깅이 완료된 후 날고, 쉬지 않고 날아갑니다.
편집기로 터미널을 다시 시작하면 다음 번 디버깅 시작/중지 때까지 breakpoints 가 표시되기 시작하고 다시 건너뛰기 시작합니다.
기록 데이터에서 디버깅을 시작하면 일반적으로 테스터 창을 호출하고 중단 점도 건너뛰어 디버깅을 완료합니다.
과거 데이터에서 나는 한 지점에서 멈추지 않고 항상 건너 뛰고 디버깅을 완료합니다.
그러나 테스터의 경우 기록 데이터 에서 호출되고 저장된 매개변수는 h.z에서 가져옵니다. 그것은 무엇입니까, 그렇게 생각되거나 곡률입니다.
편집기 도구->설정->디버그/프로파일링에서
거기에서 어떤 심볼 디버깅이 시작될 것인지 설정되지만, 모두 동일 하게 별도의 차트에서 시작될 것입니다 .
기호가 지정되지 않은 경우 Market Watch의 맨 처음(상단) 기호에서 시작됩니다.
제 생각에는 이것은 매우 불편합니다. 현재 차트에는 표시기, 프로그램이 상호 작용해야 하는 그래픽 개체, 설정 등이 포함됩니다. 새로운 "빈" 차트가 시작됩니다. 또한 일반 모드(디버깅 아님)의 프로그램은 새 차트가 아닌 현재 의 네비게이터에서 시작됩니다 . 명백한 불일치가 있습니다.
https://www.mql5.com/ru/forum/368597
결과: 2
예상: 0