이전 눈금 값 - 페이지 3

 
PreviousTick = CurrentTick;

CurrentTick =   Bid ;

if ( CurrentTick < PreviousTick )

       {

difference = PreviousTick - Bid ;

TotalDescent = TotalDescent + difference;

descentarray[ 0 ]=TotalDescent;

       }


이 코드는 mt4 차트를 충돌시킵니다. 뭐가 문제야?

차이, TotalDescent는 시작 값이 0인 double로 선언됩니다. descentarray는 최대 항목 수가 없는 1d 배열로 선언됩니다. beforeTick = 0 케이스를 걸러내는 if 문이 있고 TotalAscent가 제대로 작동합니다.

첫 번째 감소 틱이 올 때까지 실행된 다음 충돌합니다. 내가 놓친 것이 있습니까?

 

</> 버튼을 사용하여 코드를 삽입하십시오.


 
JPSatrio :


이 코드는 mt4 차트를 충돌시킵니다. 뭐가 문제야?

차이, TotalDescent는 시작 값이 0인 double로 선언됩니다. descentarray는 최대 항목 수가 없는 1d 배열로 선언됩니다. beforeTick = 0 케이스를 걸러내는 if 문이 있고 TotalAscent가 제대로 작동합니다.

첫 번째 감소 틱이 올 때까지 실행된 다음 충돌합니다. 내가 놓친 것이 있습니까?

어레이의 크기를 조정합니까?

 
Keith Watford :

어레이의 크기를 조정합니까?

아니요, 어떤 크기가 필요한지 확신할 수 없기 때문입니다. 내가 말했듯이 승천 쪽은 고정 크기 세트가 없는 배열에서 잘 작동합니다.
 
JPSatrio :
아니요, 어떤 크기가 필요한지 확신할 수 없기 때문입니다. 내가 말했듯이 승천 쪽은 고정 크기 세트가 없는 배열에서 잘 작동합니다.

배열의 크기를 조정해야 합니다. 필요한 크기가 확실하지 않은 경우 추가 요소를 제공할 때마다 크기를 하나씩 늘리십시오.

 
Keith Watford :

배열의 크기를 조정해야 합니다. 필요한 크기가 확실하지 않은 경우 추가 요소를 제공할 때마다 크기를 하나씩 늘리십시오.

일단 시도해보겠습니다. 감사합니다. 그러나 코더가 배열의 크기를 설정하지 않는 경우를 많이 보았습니다. 이 경우가 다른 이유는 여전히 확실하지 않습니다.
ID가 매 틱마다 배열을 늘리고 크기를 조정해야 할 필요성이 있는지 확인해야 하는 경우 훨씬 더 복잡해지기 때문에 데이터 양을 관리하기에 충분히 큰 크기를 설정할 것이라고 생각합니다. 어레이가 가득 차면 어떻게 됩니까? (나에게 일어난 적이 없음) 다시 충돌?
 
JPSatrio :
일단 시도해보겠습니다. 감사합니다. 그러나 코더가 배열의 크기를 설정하지 않는 경우를 많이 보았습니다. 이 경우가 다른 이유는 여전히 확실하지 않습니다.
ID가 매 틱마다 배열을 늘리고 크기를 조정해야 할 필요성이 있는지 확인해야 하는 경우 훨씬 더 복잡해지기 때문에 데이터 양을 관리하기에 충분히 큰 크기를 설정할 것이라고 생각합니다. 어레이가 가득 차면 어떻게 됩니까? (나에게 일어난 적이 없음) 다시 충돌?

배열의 크기가 조정되지 않는 경우는 없을 것입니다. 존재하지 않는 요소에 값을 입력하려고 하면 코드가 충돌합니다.

 
Keith Watford :

배열의 크기가 조정되지 않는 경우는 없을 것입니다. 존재하지 않는 요소에 값을 입력하려고 하면 코드가 충돌합니다.

그게 해냈다. 감사해요!
 

이 스레드는 이전 Ask와 현재 Ask의 차이점을 알려주는 코드를 개발하는 데 도움이 되었습니다. 차이가 0이면 0.0을 인쇄하지만 차이가 0이 아니면 1.000000000006551e-05와 같이 자릿수가 너무 많습니다. 내 코드에 문제가 있거나 이를 수정할 수 있는 방법이 있습니까? 중요한 경우 기호는 EURUSD입니다. 이것은 나의 첫 번째 mql 코드이므로 단점에 대해 미리 사과드립니다. 감사해요!

 /* Global Variables */
double ask_prev;
double ask_curr;
double ask_diff;
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---

   MqlTick tick_curr;
//---
   if ( SymbolInfoTick ( Symbol (),tick_curr))
     {
      ask_curr = tick_curr.ask;
      ask_diff = ask_curr - ask_prev;
       Print (ask_diff);
      ask_prev = tick_curr.ask;
     }
   else Print ( "SymbolInfoTick() failed, error = " , GetLastError ());
  }
//+------------------------------------------------------------------+
 
rdone :

이 스레드는 이전 Ask와 현재 Ask의 차이점을 알려주는 코드를 개발하는 데 도움이 되었습니다. 차이가 0이면 0.0을 인쇄하지만 차이가 0이 아니면 1.000000000006551e-05와 같이 자릿수가 너무 많습니다. 내 코드에 문제가 있거나 이를 수정할 수 있는 방법이 있습니까? 중요한 경우 기호는 EURUSD입니다. 이것은 나의 첫 번째 mql 코드이므로 단점에 대해 미리 사과드립니다. 감사해요!

왜 그냥...

 MqlTick tick_curr, tick_last;

void OnTick ()
{
   tick_last = tick_curr;
   SymbolInfoTick ( Symbol (),tick_curr);
}