OnDeinit에서는 객체를 삭제하기 전에 초기화 해제 사유 의 조건을 설정해야 합니다... 기간이 변경되지 않으면 객체를 삭제합니다. 그리고 모든 것...
예, TF를 변경할 때 일부 개체 또는 리소스를 삭제할 수 없습니다. 리소스 개체를 통해 일부 작은 배열을 저장할 수도 있고 TF가 변경된 리소스 정보를 쓸 수 있지만 문제는 Deunit을 시작할 수 있다는 것입니다. 단위가 새 시간 프레임에 완료된 후 실행하는 경우 시간 프레임 변경이 있었고 이전 데이터를 읽어야 하므로 탬버린으로 추적 기능을 만들고 더 이상 기다리지 않아야 함을 단위에 어떻게 알려야 한다고 생각하십니까? 단위이지만 OnTimer에서. 삐뚤삐뚤하거나 그런거 아님?
링크의 설명을 읽어보았지만 알려주신 정보와 같은 정보는 찾지 못했습니다. 그리고 이것이 사실이라면 지표 개발자에게 큰 문제입니다. 시간 프레임을 변경할 때 표시기를 다시 로드하는 이러한 논리가 허용되는 것은 매우 이상하고 매우 나쁩니다. 메모리에 동일한 표시기의 복사본이 두 개 존재하는 이유는 무엇입니까? 누가 편해? 그것은 무엇을 제공합니까? 결국 지표의 한 복사본 실행을 먼저 완료하고 언로드한 다음 다음 복사본을 로드하는 것이 더 논리적일 것입니다.
Nikolai Semko : 그리고 모든 것이 무엇입니까!? 이 이유 코드(REASON_CHARTCHANGE)를 최대한 실험하고 사용했습니다. 그리고 모든 변수가 다시 원래 상태로 재설정되고 새 TF의 OnInit 후에 OnDeinit를 실행할 수 있다면 요점은 무엇입니까?
초기화 해제 시 개체 삭제에 대해 읽었으며 이 문제에 대해서만 답변했습니다. 과거 계산을 저장하는 것이 더 어렵습니다. 그리고 분명히 이 문제는 결코 해결되지 않을 것입니다. Slava는 이 질문, 새로운 지표, 새로운 계산에 답했습니다. 그리고 이것은 공정합니다.
그리고 저는 개발 팀을 믿습니다. 그들은 훌륭한 사람들이며 엄청난 일을 해냈고 앞으로도 더 많이 할 것입니다. 아직 손을 대지 않았을 뿐입니다. 사실, 항상 탬버린으로 피드백을 받아야 합니다. :)) 나는 이것이 이루어져야 한다고 그들에게 확신시키는 것이 나의 임무라고 생각한다. 나는 그들이 이것을하지 않는 것이 더 낫다고 확신시킬 것이라고 배제하지는 않지만 아마도 나는 무언가를 따라 잡고 있지 않을 것입니다.
그리고 저는 개발 팀을 믿습니다. 그들은 훌륭한 사람들이며 엄청난 일을 해냈고 앞으로도 더 많이 할 것입니다. 아직 손을 대지 않았을 뿐입니다. 사실, 항상 탬버린으로 피드백을 받아야 합니다. :)) 나는 이것이 이루어져야 한다고 그들에게 확신시키는 것이 나의 임무라고 생각한다. 나는 그들이 이것을하지 않는 것이 더 낫다고 확신시킬 것이라고 배제하지는 않지만 아마도 나는 무언가를 따라 잡고 있지 않을 것입니다.
TF를 변경할 때 먼저 DeInit(색상 복원)을 의미한 다음 Init(다시 투명)을 의미합니다.
따라서 명령 실행은 TF를 변경할 때 주기적으로 순차적이지 않습니다.
내 지표에 기본 차트(복원된 색상)를 오버레이합니다.
다음은 "논리 손상"의 한 예입니다.
그래픽 개체에 이름 접두사의 구성 요소로 마침표 TF를 할당하려고 할 수 있습니다.
다음과 같이 적용하십시오.
// --- Переменная для хранения текущего ТФENUM_TIMEFRAMES currentTF;
//+---------------------------------------------------------------------------+voidOnInit ()
{
currentTF = ( ENUM_TIMEFRAMES ) Period ();
}
//+---------------------------------------------------------------------------+voidOnDeinit ( constint reason)
{
// --- на момент выгрузки индикатора уже сменился ТФif (currentTF != Period ())
{
// если нужно, удалим объекты имеющие префикс старого ТФ и выходим, не трогаем цвет основного графикаreturn ;
}
// раз дошли сюда, ТФ не сменился, восстанавливаем цвет основного графика// удалим объекты имеющие префикс старого ТФ
}
Nikolai Semko : 그리고 모든 것이 무엇입니까!? 이 이유 코드(REASON_CHARTCHANGE)를 최대한 실험하고 사용했습니다. 그리고 모든 변수가 다시 원래 상태로 재설정되고 새 TF의 OnInit 후에 OnDeinit를 실행할 수 있다면 요점은 무엇입니까?
터미널을 1065 버전으로 업데이트해 보세요. 이전 버전에서는 타임프레임 변경 시 재초기화 오류가 발생했습니다. 도움이 될 수 있습니다 :)
이 문제는 두 손가락으로 해결됩니다 ... 당신은 무엇을 알고 ...
OnDeinit에서는 객체를 삭제하기 전에 초기화 해제 사유 의 조건을 설정해야 합니다... 기간이 변경되지 않으면 객체를 삭제합니다. 그리고 모든 것...
예, TF를 변경할 때 일부 개체 또는 리소스를 삭제할 수 없습니다. 리소스 개체를 통해 일부 작은 배열을 저장할 수도 있고 TF가 변경된 리소스 정보를 쓸 수 있지만 문제는 Deunit을 시작할 수 있다는 것입니다. 단위가 새 시간 프레임에 완료된 후 실행하는 경우 시간 프레임 변경이 있었고 이전 데이터를 읽어야 하므로 탬버린으로 추적 기능을 만들고 더 이상 기다리지 않아야 함을 단위에 어떻게 알려야 한다고 생각하십니까? 단위이지만 OnTimer에서. 삐뚤삐뚤하거나 그런거 아님?
어떤 논리가 망쳐 놓았습니까?
기간을 변경할 때 표시기의 새 복사본이 생성되며 이전 복사본에 대해서는 전혀 알지 못합니다. 얼마 동안(매우 짧은 시간) 표시기의 두 복사본이 병렬로 존재합니다. 그런 다음 이전 복사본이 언로드됩니다.
문서 읽기 https://www.mql5.com/ru/docs/runtime/running
링크의 설명을 읽어보았지만 알려주신 정보와 같은 정보는 찾지 못했습니다. 그리고 이것이 사실이라면 지표 개발자에게 큰 문제입니다. 시간 프레임을 변경할 때 표시기를 다시 로드하는 이러한 논리가 허용되는 것은 매우 이상하고 매우 나쁩니다. 메모리에 동일한 표시기의 복사본이 두 개 존재하는 이유는 무엇입니까? 누가 편해? 그것은 무엇을 제공합니까? 결국 지표의 한 복사본 실행을 먼저 완료하고 언로드한 다음 다음 복사본을 로드하는 것이 더 논리적일 것입니다.
그리고 모든 것이 무엇입니까!?
이 이유 코드(REASON_CHARTCHANGE)를 최대한 실험하고 사용했습니다. 그리고 모든 변수가 다시 원래 상태로 재설정되고 새 TF의 OnInit 후에 OnDeinit를 실행할 수 있다면 요점은 무엇입니까?
Slava는 이 질문, 새로운 지표, 새로운 계산에 답했습니다. 그리고 이것은 공정합니다.
그리고 분명히 이 문제는 결코 해결되지 않을 것입니다.
그리고 저는 개발 팀을 믿습니다. 그들은 훌륭한 사람들이며 엄청난 일을 해냈고 앞으로도 더 많이 할 것입니다. 아직 손을 대지 않았을 뿐입니다. 사실, 항상 탬버린으로 피드백을 받아야 합니다. :))
나는 이것이 이루어져야 한다고 그들에게 확신시키는 것이 나의 임무라고 생각한다. 나는 그들이 이것을하지 않는 것이 더 낫다고 확신시킬 것이라고 배제하지는 않지만 아마도 나는 무언가를 따라 잡고 있지 않을 것입니다.
그리고 저는 개발 팀을 믿습니다. 그들은 훌륭한 사람들이며 엄청난 일을 해냈고 앞으로도 더 많이 할 것입니다. 아직 손을 대지 않았을 뿐입니다. 사실, 항상 탬버린으로 피드백을 받아야 합니다. :))
나는 이것이 이루어져야 한다고 그들에게 확신시키는 것이 나의 임무라고 생각한다. 나는 그들이 이것을하지 않는 것이 더 낫다고 확신시킬 것이라고 배제하지는 않지만 아마도 나는 무언가를 따라 잡고 있지 않을 것입니다.
슬라바, 문서에서 문구의 의미 " 라이브러리 이벤트를 처리하지 마십시오"?
매우 흐림
- Inita 를 사용하여 기본 차트의 색상을 투명하게 설정했습니다.
내 일정을 그립니다(내 매개변수에 따라)
내 지표를 제거한 후 메인 차트의 색상을 복원하고 싶기 때문에
- DeInit 에서 메인 차트의 색상을 복원합니다.
TF를 변경할 때 먼저 DeInit(색상 복원)을 의미한 다음 Init(다시 투명)을 의미합니다.
따라서 명령 실행은 TF를 변경할 때 주기적으로 순차적이지 않습니다.
내 지표에 기본 차트(복원된 색상)를 오버레이합니다.
다음은 "논리 손상"의 한 예입니다.
그래픽 개체에 이름 접두사의 구성 요소로 마침표 TF를 할당하려고 할 수 있습니다.
다음과 같이 적용하십시오.
- Inita 를 사용하여 기본 차트의 색상을 투명하게 설정했습니다.
내 일정을 그립니다(내 매개변수에 따라)
내 지표를 제거한 후 메인 차트의 색상을 복원하고 싶기 때문에
- DeInit 에서 메인 차트의 색상을 복원합니다.
TF를 변경할 때 먼저 DeInit(색상 복원)을 의미한 다음 Init(다시 투명)을 의미합니다.
따라서 명령 실행은 TF를 변경할 때 주기적으로 순차적이지 않습니다.
내 지표에 기본 차트(복원된 색상)를 오버레이합니다.
다음은 "논리 손상"의 한 예입니다.
그리고 모든 것이 무엇입니까!?
이 이유 코드(REASON_CHARTCHANGE)를 최대한 실험하고 사용했습니다. 그리고 모든 변수가 다시 원래 상태로 재설정되고 새 TF의 OnInit 후에 OnDeinit를 실행할 수 있다면 요점은 무엇입니까?
터미널을 1065 버전으로 업데이트해 보세요. 이전 버전에서는 타임프레임 변경 시 재초기화 오류가 발생했습니다. 도움이 될 수 있습니다 :)
https://www.mql5.com/ru/forum/187690
터미널을 1065 버전으로 업데이트해 보세요. 이전 버전에서는 타임프레임 변경 시 재초기화 오류가 발생했습니다. 도움이 될 수 있습니다 :)
https://www.mql5.com/ru/forum/187690