MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 910

 

지정된 수량에 지정된 시간의 종가 를 잘못 복사한 이유는 무엇입니까? MQL5

copied = CopyClose ( _Symbol , PERIOD_H4 ,Time[ 59 ], 5 ,MPI); Alert (copied);
   for ( int i = 0 ; i < 100 ; i++)
    {
     Alert (MPI[i]);
    };
 
Alexandr Sokolov :

지정된 수량에 지정된 시간의 종가 를 잘못 복사한 이유는 무엇입니까? MQL5

mql5에서 Time[]을 어디에서 찾았습니까? 아니면 사용자 지정 배열입니까?

 
Alexey Viktorov :

mql5에서 Time[]을 어디에서 찾았습니까? 아니면 사용자 지정 배열입니까?

예, 이것은 지표가 위치한 시간대 의 막대가 열리는 시간을 복사한 사용자 지정 배열입니다. 또는 날짜를 표시하는 다른 방법은 무엇입니까(특히 미래에 여러 방식으로 결합되어야 한다는 점을 고려하면)?

 
Alexandr Sokolov :

예, 이것은 지표가 위치한 시간대 의 막대가 열리는 시간을 복사한 사용자 지정 배열입니다. 또는 날짜를 표시하는 다른 방법은 무엇입니까(특히 미래에 여러 방식으로 결합되어야 한다는 점을 고려하면)?

예, "외부" tf를 복사하는 데 문제가 있습니다. 여러 TF에서 하나의 표시기를 시작했는데 CopyRates()가 즉시 복사되지 않는다는 것을 알았습니다. 기간에 대한 준비되지 않은 데이터 때문인 것 같습니다. 다시 컴파일하면 상황이 해결됩니다. 먼저 마침표를 "가져오기"한 다음 복사해야 합니다. 그러나 그 전에는 손이 닿지 않았습니다. 내일 확인하겠습니다. 하지만 내가 옳기를 바랍니다.

그리고 간단한 질문: time[]을 대신 사용할 수 있다면 표시기가 있는 시간대의 막대가 열리는 시간을 복사하는 이유는 무엇입니까? 그리고 인덱싱 방향을 잊지 마세요.

 
Alexey Viktorov :

그리고 간단한 질문: time[]을 대신 사용할 수 있다면 표시기가 있는 시간대의 막대가 열리는 시간을 복사하는 이유는 무엇입니까? 그리고 인덱싱 방향을 잊지 마세요.

시간은 OnCalculate 외부에서 사용됩니다. 모든 버퍼의 인덱싱 방향 ArraySetAsSeries(...,true)


왜 이런거야? - 추세 표시기를 만들었습니다(CodeBase에 게시했습니다). "시끄러운"입니다. 나는 속도를 늦췄다 - 충분하지 않다. 이제 더 낮은 기간의 각 양초 값이 더 높은 기간의 막대에서 계산되었는지 확인하고 싶습니다.

"당기다"은(는) 무슨 뜻인가요?

 
Alexandr Sokolov :

시간은 OnCalculate 외부에서 사용됩니다. 모든 버퍼의 인덱싱 방향 ArraySetAsSeries(...,true)


왜 이런거야? - 추세 표시기를 만들었습니다(CodeBase에 게시했습니다). "시끄러운"입니다. 나는 속도를 늦췄다 - 충분하지 않다. 이제 더 낮은 기간의 각 양초 값이 더 높은 기간의 막대에서 계산되었는지 확인하고 싶습니다.

"당긴다"은(는) 무슨 뜻인가요?

"당기다"는 제 표현이 아닙니다. 그래서 나는이 포럼에서 원하는 기간의 데이터에 대한 주기적 호소를 읽었습니다.

나도 잘 안 돼서 화가 나서 '고양이처럼 마침표를 인과관계로 잡아당긴다'고 표현했지만 소용이 없었다. 문제에 대한 많은 토론 후에 나는 do while 루프로 사본을 래핑했습니다. 그것이 첫 번째 시도에서 복사되었다면, 하나님께 감사드립니다. 그렇지 않은 경우 200-500회 반복 동안 빈 for 루프를 통해 N번의 시도를 제공합니다. 이 정도면 충분합니다. 확대 가능...

그리고 조금 앞서 말씀드린 지표는 아직 초기 단계입니다. 그렇기 때문에 제대로 이루어지지 않고 있습니다. 방금 현재 기간의 사용 가능한 막대에 대해 이전 TF의 막대가 몇 개 필요한지 확인했습니다. 5000 M5 바에는 17 일일 바가 있음이 밝혀졌습니다. 그리고 이것이 고려되지 않으면 현재 M5 기간의 5000, 4시간의 5000 및 하루의 5000이 복사됩니다. 중복이 너무 많다...

또 다른 중요한 참고 사항: 얼마 전에는배열 인덱싱 을 한 번 되돌릴 수 있었지만 이제는 재채기할 때마다 방향을 다시 지정해야 합니다. 어딘가에 나는 이미 그것에 대해 썼습니다. 그래서 저는 기본 모드에서 작업하는 것을 선호합니다. 익숙해지는 것은 어렵지 않습니다.

 

GlobalVariable은 기본적으로 두 배만 될 수 있습니다.

 double close = GlobalVariableGet ( "close" );


소수 부분 없이 가까운 값이 필요한 경우 다음과 같이 작성하는 것이 맞을까요?

 int close = GlobalVariableGet ( "close" );
 
Alexey Viktorov :

"당기다"는 제 표현이 아닙니다. 그래서 나는이 포럼에서 원하는 기간의 데이터에 대한 주기적 호소를 읽었습니다.

나도 잘 안 돼서 화가 나서 '고양이처럼 마침표를 인과관계로 잡아당긴다'고 표현했지만 소용이 없었다. 문제에 대한 많은 토론 후에 나는 do while 루프로 사본을 래핑했습니다. 그것이 첫 번째 시도에서 복사되었다면, 하나님께 감사드립니다. 그렇지 않은 경우 200-500회 반복 동안 빈 for 루프를 통해 N번의 시도를 제공합니다. 이 정도면 충분합니다. 확대 가능...

그리고 조금 앞서 말씀드린 지표는 아직 초기 단계입니다. 그렇기 때문에 제대로 이루어지지 않고 있습니다. 방금 현재 기간의 사용 가능한 막대에 대해 이전 TF의 막대가 몇 개 필요한지 확인했습니다. 5000 M5 바에는 17 일일 바가 있음이 밝혀졌습니다. 그리고 이것이 고려되지 않으면 현재 M5 기간의 5000, 4시간의 5000 및 하루의 5000이 복사됩니다. 중복이 너무 많다...

또 다른 중요한 참고 사항: 얼마 전에는 배열 인덱싱 을 한 번 되돌릴 수 있었지만 이제는 재채기할 때마다 방향을 다시 지정해야 합니다. 어딘가에 나는 이미 그것에 대해 썼습니다. 그래서 저는 기본 모드에서 작업하는 것을 선호합니다. 익숙해지는 것은 어렵지 않습니다.

잠깐, 우리는 뭔가를 놓쳤거나 서로 오해했기 때문에

 Alert (copied);

... 5를 반환합니다. 맞는 말이지만 버퍼의 값은 모두 저에게 동일합니다.

 
Alexandr Sokolov :

잠깐, 우리는 뭔가를 놓쳤거나 서로 오해했기 때문에

... 5를 반환합니다. 맞는 말이지만 버퍼의 값은 모두 저에게 동일합니다.

그런 다음 MPI 배열의 차원 과 해당 인덱싱 방향을 처리해야 합니다. 5개의 요소를 복사하는 경우 주기가 최대 100인 이유는 무엇입니까?

이러한 경우 디버거를 사용하는 것을 선호합니다. 어레이를 가져 와서 어레이의 모든 필드를 어리 석음 지점까지 다시 시작하지 않고 확인하십시오 ...

 
Alexey Viktorov :

그런 다음 MPI 배열의 차원 과 해당 인덱싱 방향을 처리해야 합니다. 5개의 요소를 복사하는 경우 주기가 최대 100인 이유는 무엇입니까?

이러한 경우 디버거를 사용하는 것을 선호합니다. 어레이를 가져 와서 어레이의 모든 필드를 어리 석음 지점까지 다시 시작하지 않고 확인하십시오 ...

나는 내가 필요한 것이 59로 시작할 것이라고 생각했기 때문에 100을 설정했지만 6은 동일합니다.