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

 
JRandomTrader # :

데이터 전송에서 이것은 태곳적부터 사용되었습니다.

편리하게. 이에 동의하지 않을 수 없습니다. 그러나 내가 말했듯이 롤백할 수 있는 데이터의 양을 항상 고려해야 합니다.

 
Vitaly Muzichenko # :

예를 들어주세요. 주제가 될 것입니다.

업그레이드 코드 사용 가능

이 코드에서는 작동하지 않습니다. 표시기 버퍼는 우리와 독립적으로 존재하며 그 안에 링 버퍼를 구성하지 않습니다. 이를 MT에 설명할 방법이 없습니다.

 
Mihail Matkovskij # :

ArrayCopy를 사용하면 다른 어레이의 데이터만 전송할 수 있습니다. 그러나 당신은 그들을 이동할 수 없습니다.

누가 그런 말도 안되는 소리를 했습니까?

그것이 어떻게 이루어졌는지 주의 깊게 읽으십시오.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

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

알렉세이 빅토 로프 , 2022.02.13 18:21

이 코드에서는 하나의 배열을 지정해야 합니다.

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

쓸 인덱스와 복사할 인덱스는 배열 오프셋의 방향에 따라 다릅니다. 즉, 인덱스 0에 항상 새로운 데이터가 있어야 하는 경우 0에서 복사하고 1에서 작성해야 합니다. 따라서 인덱스 0과 1의 값은 같을 것이고 그런 다음 새로운 값을 0으로 씁니다.

그리고 ArrayCopy()가 내부적으로 사용자 루프와 동일한 루프를 가지고 있는지 매우 의심스럽습니다. 따라서 특정 크기의 특정 배열이 있으면 각 틱마다 하나씩 이동한 다음 표시기 버퍼에 복사하여 선으로 표시됩니다...


 
JRandomTrader # :

이 코드에서는 작동하지 않습니다. 표시기 버퍼는 우리와 독립적으로 존재하며 그 안에 링 버퍼를 구성하지 않습니다. 이를 MT에 설명할 방법이 없습니다.

알았습니다.

글쎄, 그것은 작동합니다. 지금은 작동하게 하십시오. 아직 결과가 없습니다. 우리는 시장이 열릴 때까지 Pindos의 "친구"를 기다려야 하며 이것은 곧 되지 않을 것입니다.

중재할 수 있는 사항을 살펴보겠습니다.

 
JRandomTrader # :

또는

그리고 아무도 버그를 눈치채지 못했습니다!

 static int head= 0 ;
for (i=head,count= 0 ;count< ArraySize (A);count++)
  {
   - if (++i>= ArraySize (A))i= 0 ;
   DoSomething(A[i]);
   + if (++i>= ArraySize (A))i= 0 ;
  }
 
JRandomTrader # :

그리고 아무도 버그를 눈치채지 못했습니다!

나는 아직도 보지 않는다

 
Vitaly Muzichenko # :

나는 아직도 보지 않는다

i는 사용 후 루프의 끝에서 증가해야 합니다.

그러나 주기가 끝날 때와 다음 주기가 시작될 때 어레이의 출발을 확인할 수 있습니다.

 
Alexey Viktorov # :

누가 그런 말도 안되는 소리를 했습니까?

그것이 어떻게 이루어 졌는지주의 깊게 읽으십시오.


이 기능이 이렇게 다재다능한 줄 몰랐습니다. 하지만 그렇다고 해도 무슨 차이가 있겠습니까? ArrayCopy는 일반 루프보다 빠르게 데이터를 이동합니까?

 
Vitaly Muzichenko # :

이제 코드가 작동하지만 주기 때문에 속도에 대한 의구심이 있습니다.

그것은 무엇입니까?

차익 거래 가능성에 대해 여러 주방을 확인하고 싶습니다. 표시기는 값의 차이를 표시하고 100ms마다 타이머에서 작동합니다. 이 상황에서는 코드 실행 지연이 중요합니다.

그럼 모르겠어. ArrayCopy를 시도하십시오. 같은 기능은 데이터를 이동할 수 있습니다. 그러나 그녀가 정상적인 주기보다 더 빨리 할 것 같지는 않습니다. 누가 알겠습니까... 시도해야 합니다.

 
Mihail Matkovskij # :

그럼 모르겠어. ArrayCopy를 시도하십시오. 같은 기능은 데이터를 이동할 수 있습니다. 그러나 그녀가 정상적인 주기보다 더 빨리 할 것 같지는 않습니다. 누가 알겠습니까... 시도해야 합니다.

어디서부터 시작해야할지 모르겠어