작년에 확인했는데 EA iCustom()의 호출이 캐시 가능합니다. 다른 버퍼 또는 인덱스에 대해 한 틱에서 EA에서 iCustom()을 여러 번 호출하면 표시기 자체가 이 틱에 대해 한 번 다시 계산됩니다. 성능은 괜찮습니다
추신: 왜 MT4 - MT5가 이미 "물린" 경우 더 많은 성능이 있고 테스터가 더 정확합니다 ... 일반적으로 연구를 위한 정상적인 것, IMHO
아이디어는 MT4에서 실행하기 더 쉽습니다. 껍질이 더 가볍습니다))) 아니요, 아니요. 우리는 사이클에서 구식 방식으로 어레이에 쓸 것입니다)))) MT5에서는 MT4가 대처를 멈출 때 확장하는 것이 합리적입니다.)) 이것은 느리거나 너무 많은 데이터입니다. 이 단계에 도달할 때까지.
요청된 데이터 간격이 서버에서 사용 가능한 데이터를 완전히 벗어나면 함수는 -1을 반환합니다. 외부에서 데이터를 요청하는 경우 TERMINAL_MAXBARS (차트의 최대 막대 수), 함수는 -1도 반환합니다.
표시기에서 데이터를 요청할 때 요청된 시계열이 아직 빌드되지 않았거나 서버에서 다운로드해야 하는 경우 함수는 즉시 -1을 반환하지만 로드/빌드 프로세스 자체는 시작됩니다.
Expert Advisor 또는 스크립트에서 데이터를 요청할 때 터미널에 이 데이터가 로컬에 없으면 서버에서 다운로드 가 시작되고 로컬 히스토리에서 데이터를 빌드할 수 있는 경우 필요한 시계열 구성이 시작되지만 아직 준비되지 않았습니다. 함수는 시간 초과가 만료되는 순간까지 준비될 데이터의 양을 반환하지만 기록 로드는 계속되고 다음 유사한 요청은 더 많은 데이터를 반환합니다.
시작 날짜 및 필요한 항목 수로 데이터를 쿼리할 때 날짜가 지정된 날짜(이전) 이하인 데이터만 반환됩니다. 이 경우 간격이 설정되고 최대 1초의 정확도로 고려됩니다. 즉, 값(볼륨, 스프레드, 표시기 버퍼의 값, 시가, 고가, 저가, 종가 또는 시간)이 반환되는 막대의 시가 날짜는 항상 지정된 날짜보다 작거나 같습니다.
지정된 날짜 범위의 데이터를 요청하면 요청한 간격에 해당하는 데이터만 반환되며 간격은 최대 1초의 정확도로 설정 및 고려됩니다. 즉, 값(볼륨, 스프레드, 지표 버퍼의 값, 시가, 고가, 저가, 종가 또는 시간)이 반환되는 모든 막대의 개장 시간은 항상 요청된 간격 내에 있습니다.
따라서 현재 요일이 토요일인 경우start_time= Last_Tuesday 및stop_time=Last_Friday인 주간 시간대의 데이터를 복사하려고 하면 주간 시간대의 시작 시간이 항상 일요일이기 때문에 함수는 0을 반환합니다. 그러나 단일 주간 막대가 지정된 범위에 속하지 않습니다.
현재 불완전한 막대에 해당하는 값을 가져와야 하는 경우 start_pos=0 및count=1인 호출의 첫 번째 형식을 사용할 수 있습니다 .
CopyBuffer는 MT4에는 없고 MT5에만 있습니다. MT4에는 없나요? 버퍼 배열의 수로 MT4에서 데이터를 가져오는 간단한 방법이 있습니까?
아니요
MT4에서는 iCustom() https://docs.mql4.com/en/indicators/icustom 입니다.
작년에 확인했는데 EA iCustom()의 호출이 캐시 가능합니다. 다른 버퍼 또는 인덱스에 대해 한 틱에 대해 EA에서 iCustom()을 여러 번 호출하면 표시기 자체가 이 틱에 대해 한 번 다시 계산됩니다. 성능은 괜찮습니다
추신: 왜 MT4 - MT5가 이미 "물린" 경우 더 많은 성능이 있고 테스터가 더 정확합니다 ... 일반적으로 연구를 위한 정상적인 것, IMHO
아니요
MT4에서는 iCustom() https://docs.mql4.com/en/indicators/icustom 입니다.
작년에 확인했는데 EA iCustom()의 호출이 캐시 가능합니다. 다른 버퍼 또는 인덱스에 대해 한 틱에서 EA에서 iCustom()을 여러 번 호출하면 표시기 자체가 이 틱에 대해 한 번 다시 계산됩니다. 성능은 괜찮습니다
추신: 왜 MT4 - MT5가 이미 "물린" 경우 더 많은 성능이 있고 테스터가 더 정확합니다 ... 일반적으로 연구를 위한 정상적인 것, IMHO
아이디어는 MT4에서 실행하기 더 쉽습니다. 껍질이 더 가볍습니다))) 아니요, 아니요. 우리는 사이클에서 구식 방식으로 어레이에 쓸 것입니다)))) MT5에서는 MT4가 대처를 멈출 때 확장하는 것이 합리적입니다.)) 이것은 느리거나 너무 많은 데이터입니다. 이 단계에 도달할 때까지.
추가했습니다. 그리고 아이디어가 수용 가능한 오류로 해결되었을 때.좋은 오후에요 여러분. Grail 머신은 조각을 거의 완료했지만 약 50-60개의 경고를 컴파일할 때 ' OrderSend '의 반환 값을 확인해야 합니다. 트렌드+ _V_1,1.mq4 1626 열하나
제가 알기로는 아무런 확인도 없이 주문서 작성을 이렇게 해서
좋은 오후에요 여러분. Grail 머신은 조각을 거의 완료했지만 약 50-60개의 경고를 컴파일할 때 'OrderSend'의 반환 값을 확인해야 합니다. 트렌드+ _V_1,1.mq4 1626 열하나
제가 알기로는 아무런 확인도 없이 주문서 작성을 이렇게 해서
이렇게 쓰다
이렇게 쓰다
이 코드 줄은 소란을 피우지 않습니다 :( 즉시 다음과 같은 2개의 오류가 발생합니다.
'구매' - 선언되지 않은 식별자 TREND+_1,1.mq4 860 98
'열기' - 일부 연산자 예상 TREND+_V_1,1.mq4 860 102
그리고 코드는 이렇습니다
나는 조언에 따라 모든 것을 썼습니다. 유일한 차이점은 시장 주석과 보류 중인 주문 을 구분하기 위해 주석 변수의 이름을 변경했다는 것뿐입니다. 내가 무엇을 잘못하고 있지?Print("Buy Open");
이 코드 줄은 소란을 피우지 않습니다 :( 즉시 다음과 같은 2개의 오류가 발생합니다.
'구매' - 선언되지 않은 식별자 TREND+_1,1.mq4 860 98
'열림' - 일부 연산자 예상 TREND+_V_1,1.mq4 860 102
그리고 코드는 이렇습니다
나는 조언에 따라 모든 것을 썼습니다. 유일한 차이점은 시장 주석과 보류 중인 주문 을 구분하기 위해 주석 변수의 이름을 변경했다는 것뿐입니다. 내가 무엇을 잘못하고 있지?""를 놓쳤습니다.
블라디슬라프 안드루셴코 :
Print ("Buy Open");
틱이 오면 인쇄물에서 볼 수 있지만 터미널에 표시기가없는 것처럼 복사되지 않고 표시기로 기간 만 변경하면 도움이되며 첫 번째 시작 후 표시기가 제대로 작동합니다.
CopyRates는 OnCalculate 메서드에서 표시기의 첫 번째 시작과 함께 작동하지 않습니다.
틱이 오면 인쇄물에서 볼 수 있지만 터미널에 표시기가없는 것처럼 복사되지 않고 표시기로 기간 만 변경하면 도움이되며 첫 번째 시작 후 표시기가 제대로 작동합니다.
도움말: CopyRates
메모