Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
표시기를 다시 컴파일한 후 동적 배열 로 작업할 때 "배열이 범위를 벗어남" 오류가 나타나기 시작했습니다.
이전에는 없었습니다. 무엇을 할까요?
파일 시작 부분에 유사한 줄이 있는 경우
#include <File.mqh> , 이러한 포함 파일은 이전 컴파일 이후 귀하 또는 다른 사람에 의해 변경되었을 가능성이 큽니다.
파일 시작 부분에 유사한 줄이 있는 경우
#include <File.mqh> , 이러한 포함 파일은 이전 컴파일 이후 귀하 또는 다른 사람에 의해 변경되었을 가능성이 큽니다.
포함된 파일이 없습니다.
포함된 파일이 없습니다.
동적 배열 에 무언가를 추가하려고 할 때 "array out of range" 오류가 발생하는 이유는 무엇입니까? 그는 또한 역동적입니다.
배열 B1[] 표시기 버퍼에 해당하는 것으로 지정됨
SetIndexBuffer(0,B1,INDICATOR_DATA); ArraySetAsSeries(B1,true);
여기서 어레이의 크기는 분명히 사용자가 제어하지 않습니다.
동적 배열 에 무언가를 추가하려고 할 때 "array out of range" 오류가 발생하는 이유는 무엇입니까? 그는 또한 역동적입니다.
동적 배열 에 무언가를 추가하려고 할 때 "array out of range" 오류가 발생하는 이유는 무엇입니까? 그는 또한 역동적입니다.
(fcplm)
누가 그를 심을 것인가? 그는 기념비입니다!
플랫폼 오류입니다.
지시자 버퍼 의 배열 B1을 채우면서 SetIndexBuffer(0,B1,INDICATOR_DATA) 프로시저를 다시 호출하면,
예를 들어 표시기를 초기화할 때 배열 B1에 무언가를 쓰려고 하면 "배열이 범위를 벗어남" 오류가 발생합니다.
SetIndexBuffer(0,B1,INDICATOR_DATA) 프로시저를 한 번만 호출하면 모든 것이 제대로 작동합니다.
이전에는 그렇지 않았습니다.
플랫폼 오류입니다.
지시자 버퍼 의 배열 B1을 채우면서 SetIndexBuffer(0,B1,INDICATOR_DATA) 프로시저를 다시 호출하면,
예를 들어 표시기를 초기화할 때 배열 B1에 무언가를 쓰려고 하면 "배열이 범위를 벗어남" 오류가 발생합니다.
SetIndexBuffer(0,B1,INDICATOR_DATA) 프로시저를 한 번만 호출하면 모든 것이 제대로 작동합니다.
이전에는 그렇지 않았습니다.
왜 자꾸 이러는거야?
버퍼를 바인딩한다는 것은 버퍼를 정리 하고 후속 계산을 위해 동적 바인딩을 준비하는 것을 의미합니다. 두 번째로 호출되면 이전 버퍼가 지워지고 표시기를 다시 계산하기 위해 다음 호출에서만 채워집니다.
왜 자꾸 이러는거야?
버퍼를 바인딩한다는 것은 버퍼를 정리 하고 후속 계산을 위해 동적 바인딩을 준비하는 것을 의미합니다. 두 번째로 호출되면 이전 버퍼가 지워지고 표시기를 다시 계산하기 위해 다음 호출에서만 채워집니다.
이것은 표시기의 표준 전체 초기화로, 처음 실행될 때 발생하며 Oninit()를 통해 수행됩니다.
가끔 히스토리 업데이트 등을 할 때 또한 수행해야 합니다.
아무도 Oninit()를 통한 표시기의 재초기화로 인해 일부 배열이 응답하지 않을 것이라고 생각하지 않았습니다.