초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 515

 
-Aleks- :

옵션으로

if (StatTime==1)

 Time=iTime(NULL,1440,0);

 StatTime=0;

 }

       if(Time!=iTime(NULL,1440,0))

           {

  StatTime=1;

           } 

그래서 더 재미있을 것 같아요

옵션 1

 bool NevDay()
  {
   static datetime StatTime;

   if (StatTime!=iTime( NULL , PERIOD_D1 , 0 ))
     {
      StatTime=iTime( NULL , PERIOD_D1 , 0 );
       return ( true );
     }
   return ( false );
  }

옵션 2

 bool NevDay()
  {
   static int den;

   if (den!=Day())
     {
      den=Day();
       return ( true );
     }
   return ( false );
  }
 

안녕하세요!

특정 알고리즘을 해결하는 "newt" 및 "dlt" 함수 코드가 있습니다. 알고리즘이 무엇인지 알려주실 수 있습니까? 이러한 기능은 어떤 문제를 해결합니까?

 int     period= 150 ;
int     shift_1= 10 ;
double shift_2= 3.0 ;
int     history= 300 ;
double hpf[];
double HPF[];
//+------------------------------------------------------------------+
init()
  {
   SetIndexBuffer ( 0 ,HPF);
   ArrayResize (hpf,period);
   return ( 0 );
  }
//+------------------------------------------------------------------+
start()
  {
   for ( int bar=history; bar>= 0 ; bar--)
     {
       for ( int i=period- 1 ;i>= 0 ;i--)
         hpf[i]=Close[i];

      HPF[bar]=newt(hpf,shift_1,shift_2);
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double newt( double x[], int pos, double n)
  {
   double r=x[pos],k= 1 ;
   int l= MathCeil (n),i;
   if (pos+l>= ArraySize (x)) l= ArraySize (x)-pos- 1 ;
   if (n== 0 ) return (r);
   if (n< 0 ) return ( EMPTY_VALUE );
   for (i= 1 ; i<=l; i++)
     {
      k*=n/i;
      r+=k*dlt(x,pos,i);
     }
   return (r);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double dlt( double x[], int pos, int d)
  {
   double r= 0 ;
   int i, k= 1 , pod=pos+d, l=d>> 1 ;
   if (pos>= ArraySize (x)) return ( EMPTY_VALUE );
   if (pos+d>= ArraySize (x)) return ( 0 );
   if (d% 2 > 0 )
       for (i= 0 ; i<=l; i++,pos++,pod--)
        {
         r+=k*(x[pos]-x[pod]);
         k*=i-d;
         k/=i+ 1 ;
        }
   else
     {
       for (i= 0 ; i<l; i++,pos++,pod--)
        {
         r+=k*(x[pos]+x[pod]);
         k*=i-d;
         k/=i+ 1 ;
        }
      r+=k*x[pos];
     }
   return (r);
  }
 

커뮤니티에 도움을 요청하세요.

 // MQL4
// Последняя известная цена продажи (запрашиваемая цена) текущего инструмента. Для обновления необходимо использовать функцию RefreshRates().
Ask 

// MQL5
// 1
Ask = SymbolInfoDouble ( _Symbol , SYMBOL_ASK )       // Возвращает лучшее предложение на покупку (Так в справочнике MQL5)
// 2
SymbolInfoTick ( _Symbol ,last_tick))               // Возвращает текущие цены  для указанного символа в переменной типа MqlTick
Ask = last_tick.ask								

MQL5 함수 에서 얻은 Ask 값의 차이점은 무엇입니까?
다음 중 MQL4에서 질문과 유사한 값을 반환하는 함수는 무엇입니까?

 
MikeZv :

커뮤니티에 도움을 요청하세요.

MQL5 함수 에서 얻은 Ask 값의 차이점은 무엇입니까?
다음 중 MQL4에서 질문과 유사한 값을 반환하는 함수는 무엇입니까?

두 예제 모두 작동합니다.

 
MikeZv :

커뮤니티에 도움을 요청하세요.

MQL5 함수 에서 얻은 Ask 값의 차이점은 무엇입니까?
다음 중 MQL4에서 질문과 유사한 값을 반환하는 함수는 무엇입니까?

(코드 측면에서) 무언가를 작성하기 전에 리소스 측면에서 어떻게 더 경제적이고 이 작업의 조건에서 더 정확할 것인지 생각하십시오. 첫 번째 경우에는 현재 매도호가만 요청하고 두 번째 경우에는 전체 틱 구조를 요청합니다. 대부분의 경우(측정이 필요함) 두 번째 경우는 훨씬 더 느리게 작동하며, 매도호가만 필요한 경우 구조를 얻는 데 의미가 없습니다.
 
Alexey Kozitsyn :
(코드 측면에서) 무언가를 작성하기 전에 리소스 측면에서 어떻게 더 경제적이고 이 작업의 조건에서 더 정확할 것인지 생각하십시오. 첫 번째 경우에는 현재 매도호가만 요청하고 두 번째 경우에는 전체 틱 구조를 요청합니다. 대부분의 경우(측정이 필요함) 두 번째 경우는 훨씬 더 느리게 작동하며, 매도호가만 필요한 경우 구조를 얻는 데 의미가 없습니다.
Alexey, 답변 감사합니다. 저는 이제 MT4에서 MT5 로 Expert Advisor를 다시 작성하고 있습니다. 우선 MQL4에서 Ask라는 것을 얻는 방법을 정확히 알아야 합니다. 그리고 성능 문제는 나중에 생각해볼께요.. :)
 
MikeZv :
Alexey, 답변 감사합니다. 저는 이제 MT4에서 MT5 로 Expert Advisor를 다시 작성하고 있습니다. 우선 MQL4에서 Ask라는 것을 얻는 방법을 정확히 알아야 합니다. 그리고 성능 문제는 나중에 생각해볼께요.. :)
아 죄송합니다. 귀하의 질문을 바로 이해하지 못했습니다. 이 두 옵션 모두 MT4에서 작동하며 MT5에서는 Ask 및 MarketInfo(_Symbol, SYMBOL_ASK )와 유사합니다. 오래된 MT4에서
 
Sergey Gritsay :
아 죄송합니다. 귀하의 질문을 바로 이해하지 못했습니다. 이 두 옵션 모두 MT4에서 작동하며 MT5에서는 Ask 및 MarketInfo(_Symbol, SYMBOL_ASK )와 유사합니다. 오래된 MT4에서

MQL5에는 두 가지 옵션도 있었습니다...
그리고 그것들은 "구식 MT4의 묻고 MarketInfo(_Symbol, SYMBOL_ASK )"와 유사합니다. 제가 당신을 올바르게 이해했습니까?

 
MikeZv :

MQL5에는 두 가지 옵션도 있었습니다...
그리고 그것들은 "구식 MT4의 묻고 MarketInfo(_Symbol, SYMBOL_ASK )"와 유사합니다. 제가 당신을 올바르게 이해했습니까?

네, 그러죠.

 
Sergey Gritsay :
아 죄송합니다. 귀하의 질문을 바로 이해하지 못했습니다. 이 두 옵션 모두 MT4에서 작동하며 MT5에서는 Ask 및 MarketInfo(_Symbol, SYMBOL_ASK )와 유사합니다. 오래된 MT4에서
SymbolInfoDouble(Symbol(),SYMBOL_ASK);

사유: