포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 935

 
모두 좋은 시간! 이러한 질문: 첫 번째 배열에서 정보를 복사한 다음 다시 동일한 배열과 요소를 생성하지 않고 배열 요소의 인덱싱을 1단위만큼 이동하는 것이 가능합니까? 결국, 시계열 배열의 MT4에서는 이것이 어떻게든 수행됩니다(새 막대가 형성되면 인덱스 0이 할당되고 배열의 모든 이전 요소 인덱스는 1 단위 이동됨).
 
FxRoller :
모두 좋은 시간! 그러한 질문: 동일한 배열의 다른 하나를 생성하고 첫 번째 배열에서 요소별로 정보 요소를 복사하지 않고 배열 요소의 인덱싱을 1 단위만큼 이동하는 것이 가능합니까? 결국, 시계열 배열의 MT4에서는 이것이 어떻게든 수행됩니다(새 막대가 형성되면 인덱스 0이 할당되고 배열의 모든 이전 요소 인덱스는 1 단위 이동됨).

나는 질문에 합류합니다. 내장 함수를 사용하여 배열의 N번째 차원을 M 요소만큼 오른쪽이나 왼쪽으로 이동하는 것이 편리할 것입니다.

내가 아는 한, 루프에서 이동해야 하는 동안 배열의 크기를 결정합니다. 동적(+ 데이터는 손실되지 않음)을 사용하는 것이 더 어렵습니다.

 
kosmos0975 :

나는 질문에 합류합니다. 내장 함수를 사용하여 배열의 N번째 차원을 M 요소만큼 오른쪽이나 왼쪽으로 이동하는 것이 편리할 것입니다.

내가 아는 한, 배열의 크기를 결정하면서 주기로 이동해야 합니다. 동적(+ 데이터는 손실되지 않음)을 사용하는 것이 더 어렵습니다.

SetIndexShift()가 도움이 되지 않습니까?

차트의 시작 부분을 기준으로 표시선의 오프셋을 설정합니다.

무효 SetIndexShift (
    정수       index , // 줄 번호
    정수       옮기다          // 오프셋
);

옵션

인덱스

【인】 줄의 서수. 0에서 7 사이여야 합니다.

옮기다

【인】 막대에서 값을 이동합니다.

반환 값

아니 _

메모

양수 값은 라인 이미지를 오른쪽으로 이동하고 음수 값은 라인 이미지를 왼쪽으로 이동합니다. 현재 막대에서 계산된 값은 현재 막대를 기준으로 지정된 오프셋으로 그려집니다.

예시:

 

시프트를 사용 하여 배열 자체를 복사 할 수도 있습니다.

 int    ArrayCopy (
   void &        dst_array[],         // куда копируем                           // сюда, понятно имя массива
   const void &  src_array[],         // откуда копируем                         // сюда тоже его
   int           dst_start= 0 ,         // с какого индекса пишем в приемник       // сюда 0
   int           src_start= 0 ,         // с какого индекса копируем из источника  // сюда, например с первого, значит 1
   int           count= WHOLE_ARRAY      // сколько элементов                       // сюда размерность массива минус 1
   );

따라서 배열은 1 요소 이동으로 자체적으로 복사됩니다. 0이 던져지고 마지막 것은 비어 있습니다. 반대로 마지막 요소는 버리려고 하지 않았지만, 함수의 마지막 3개의 매개변수를 올바르게 배열할 수 있다고 생각합니다.

 
AlexeyVik :

시프트를 사용하여 배열 자체를 복사할 수도 있습니다.

따라서 배열은 1 요소 이동으로 자체적으로 복사됩니다. 0이 던져지고 마지막 것은 비어 있습니다. 반대로 마지막 요소는 버리려고 하지 않았지만, 함수의 마지막 3개의 매개변수를 올바르게 배열할 수 있다고 생각합니다.


시도하지는 않았지만 인덱싱 방향을 변경하면 편리할 수 있습니다.

추신: 전략 테스터에 대한 질문이 있습니다. 도와줄래?

 
kosmos0975 :

시도하지는 않았지만 인덱싱 방향을 변경하는 것이 유용할 수 있습니다.

추신: 전략 테스터에 대한 질문이 있습니다. 도와줄래?

배열 자체를 복사한 후 인덱싱 방향을 바꾸라 는 말씀이신가요? 그리고 그것이 필요합니까? 나는 마지막 인덱스 없이 0 인덱스에서 복사하고 첫 번째 인덱스에서 삽입하는 데 문제가 없을 것이라고 생각하며 0 인덱스는 비어 있거나 이전 값으로 유지됩니다. 복사를 위해, 그러나 특히 배열 값 중 하나를 (0 또는 마지막 ) 새 값으로 대체합니다. 따라서 이러한 복사 후에 "해제된" 요소는 새 값으로 채워집니다. 그리고 내용은 중요하지 않습니다...

테스터에 따르면, 내가 할 수 있다면 내가 도울 것입니다. 그러나 제안할 수 있는 더 가치 있는 사람들이 있습니다.

 

제어 신호 및 열린 위치 제어는 표시기에 의해 생성됩니다. 위치를 열고 닫는 명령은 터미널의 전역 변수를 통해 EA로 전송됩니다.

표시기의 사용은 여러 논리 블록의 작업을 병렬로 볼 수 있고 많이 실행되기 때문에 편리합니다.

문제. 전략 테스터에서 지표는 OrderSelect() , OrdersTotal () 함수 등과 함께 작동할 수 있습니다.

  
 
AlexeyVik :

배열 자체를 복사한 후 인덱싱 방향을 바꾸라는 말씀이신가요? 그리고 그것이 필요합니까? 나는 마지막 인덱스 없이 0 인덱스에서 복사하고 첫 번째 인덱스에서 삽입하는 데 문제가 없을 것이라고 생각하며 0 인덱스는 비어 있거나 이전 값으로 유지됩니다. 복사를 위해, 그러나 특히 배열 값 중 하나를 (0 또는 마지막 ) 새 값으로 대체합니다. 따라서 이러한 복사 후에 "해제된" 요소는 새 값으로 채워집니다. 그리고 내용은 중요하지 않습니다...

테스터에 따르면, 내가 할 수 있다면 내가 도울 것입니다. 그러나 제안할 수 있는 더 가치 있는 사람들이 있습니다.

복사 전과 후.
 
나는 그것을 확인하지 않았지만 당신이 직접 확인하는 것을 방해하는 것은 무엇입니까? 모든 지표와 함께 어드바이저 이름으로 템플릿을 저장하면 테스터에서 어드바이저가 시작될 때 모든 지표가 로드되고 올바르게 작동 할 수 있습니다. 그러나 "Trade" 및 "Account History" 탭에서 값을 가져올 수도 있습니다.
 
kosmos0975 :
복사 전과 후.
왼손 손가락으로 오른쪽 귀를 긁는 이유는 무엇입니까? 또는 다리 ... 나는 두 번째 옵션이 필요하지 않기 때문에 확인하지 않았다고 말했습니다. 그리고 논리적으로 문제 없이 작동합니다.