МQL5에서 Open,Low,High,Close 매개변수를 얻는 방법은 무엇입니까? - 페이지 3

 

스크립트 예:

 //+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   for ( int i= 0 ;i< 3 ;i++)
       Print ( "# " ,i, ": " , DoubleToString ( iOpen ( Symbol (), PERIOD_CURRENT , i ), Digits ()));
//---
  }
//+------------------------------------------------------------------+

결과:

 2019.07 . 29 20 : 36 : 41.215 1 (EURUSD,H1)   # 0 : 1.11399
2019.07 . 29 20 : 36 : 41.215 1 (EURUSD,H1)   # 1 : 1.11425
2019.07 . 29 20 : 36 : 41.215 1 (EURUSD,H1)   # 2 : 1.11319


수정됨.

파일:
1.mq5  2 kb
 

여기 있습니다, 자기들

4번과 5번 모두에서 작동합니다.

4번에서는 Period(), Symbol() 등을 사용합니다.

5-rk에서는 _Period, _Symbol 등을 사용합니다.

아이바

해당 기호 및 기간에 대한 기록의 막대 수를 반환합니다.

아이바시프트

지정된 시간이 속한 막대의 오프셋을 반환합니다.

나는 닫는다

해당 차트의 막대 종가 값을 반환합니다.

아이하이

해당 차트의 막대의 최고 가격 값을 반환합니다.

iHighest

해당 차트에서 발견된 가장 큰 값의 인덱스를 반환합니다.

아이로우

해당 차트의 막대의 최소 가격 값을 반환합니다.

가장 낮은

해당 차트에서 발견된 가장 작은 값의 인덱스를 반환합니다.

나는 연다

해당 차트의 막대 시가 값을 반환합니다.

아이타임

해당 차트의 막대 열림 시간 값을 반환합니다.

아이볼륨

해당 차트의 막대 눈금 볼륨 값을 반환합니다.

iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
iBars - Доступ к таймсериям и индикаторам - Справочник MQL4
 
CopyRates와 함께 작동했습니다. 공장.
 

여기에 CopyRates 옵션이 있습니다.

 //+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#property script_show_inputs
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   MqlRates rates[];
   ArraySetAsSeries (rates, true );
   int start_pos= 0 ,count= 3 ;
   if ( CopyRates ( Symbol (), Period (),start_pos,count,rates)!=count)
       return ;

   for ( int i= 0 ;i<count;i++)
       Print ( "Open # " ,i, ": " , DoubleToString (rates[i].open, Digits ()));
//---
  }
//+------------------------------------------------------------------+

그리고 결과

 2019.07 . 29 20 : 44 : 55.491 1 (EURUSD,H1)   Open # 0 : 1.11399
2019.07 . 29 20 : 44 : 55.491 1 (EURUSD,H1)   Open # 1 : 1.11425
2019.07 . 29 20 : 44 : 55.491 1 (EURUSD,H1)   Open # 2 : 1.11319
파일:
1.mq5  3 kb
 
Alexey Viktorov :

Alexey, 이것은 탱크에 있는 사람들을 위한 것입니다. 그리고 일반 것들의 경우 CopyRates()는 mql4에서도 사용할 수 있습니다. 따라서 모든 iOpen 및 기타 말도 안되는 소리를 잊어 버리십시오. 나는 그들이 이것을 mql5에 넣는 이유를 이해하지 못합니다 ...

영형! 과대 청소년 등장))

실제로 CopyRates()를 사용하여 얻을 것을 제안하는 많은 연속 OHLC 값을 갖는 이유는 무엇입니까? - 명상할 일인가? )))

실용적인 응용 프로그램이 거의 없습니다. 여기에 Fractals 표시기를 언로드(또는 사용)하는 진부한 작업이 있습니다. 다음 코드가 있습니다.

 #define Time(n)   iTime ( NULL , 0 ,n)
//+------------------------------------------------------------------+
void OnStart ()
  {
   int handle= iFractals ( NULL , 0 );
   if (handle== INVALID_HANDLE )
     {
       Print ( "Error№," ,:: GetLastError (), " create handle indicator" );
       return ;
     }
   int count= 0 ,i= 0 ;
   double buffup[ 1 ],buffdn[ 1 ];
   while (i< Bars ( _Symbol , _Period ) && count< 10 )
     {
       if ( CopyBuffer ( handle, 0 ,i, 1 , buffup)< 1 ) Print ( "buffup , error № " ,:: GetLastError ());
       if ( CopyBuffer ( handle, 1 ,i, 1 , buffdn)< 1 ) Print ( "buffup , error № " ,:: GetLastError ());
       if (buffup[ 0 ]< EMPTY_VALUE && ++count> 0 )   Print ( "Bar № " ,i, " : " ,Time(i), " , Fractals Up = " ,buffup[ 0 ]);
       if (buffdn[ 0 ]< EMPTY_VALUE && ++count> 0 )   Print ( "Bar № " ,i, " : " ,Time(i), " , Fractals Dn = " ,buffdn[ 0 ]);
     i++;
     }
  }
//+------------------------------------------------------------------+


CopyRates()를 사용 하여 코드 표시 ...

 
Vladimir Karputov :

여기에 CopyRates 옵션이 있습니다.

그리고 결과

그러나 새 막대의 데이터를 지속적으로 추적해야 하는 경우 모든 틱에서 CopyRates를 사용하고 모든 틱 에서 시계열을 만들어야 한다는 의미입니까?

CopyRates를 어디에 두는 것이 더 좋은지 알아내려고 합니다.

 
Реter Konow :

그러나 새로운 막대의 데이터를 지속적으로 추적해야 하는 경우 모든 틱에서 CopyRates를 사용하고 모든 틱 에서 시계열을 만들어야 한다는 의미입니까?

CopyRates를 어디에 두는 것이 더 좋은지 알아내려고 합니다.

나는 이미 물었습니다: 왜? 0 막대(차트에서 가장 오른쪽 막대)의 값을 고려해야 합니까?

 
Vladimir Karputov :

나는 이미 물었습니다: 왜? 0 막대(차트에서 가장 오른쪽 막대)의 값을 고려해야 합니까?

테이블용. 이 테이블에는 Open, Close, High, Low, 현재를 포함하지 않는 마지막 10개 막대의 4가지 매개변수 값이 포함되어 있습니다.

후자는 현재(0)에서 뒤로 이동하는 경우입니다.

 
Igor Makanu :

영형! 과대 청소년 등장))

실제로 CopyRates()를 사용하여 얻을 것을 제안하는 많은 연속 OHLC 값을 갖는 이유는 무엇입니까? - 명상할 일인가? )))

실용적인 응용 프로그램이 거의 없습니다. 여기에 Fractals 표시기를 언로드(또는 사용)하는 진부한 작업이 있습니다. 다음 코드가 있습니다.


CopyRates()를 사용 하여 코드 표시 ...

이고르, 당신은 일등석에 가야합니다. 그들은 편지를 가르치고 공부한 후에 CopyRates와 CopyBuffer의 차이점을 이해하게 될 것입니다.

CopyRates 없이 이 문제에 대한 더 나은 솔루션이 있습니다.

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

МQL5에서 Open,Low,High,Close 매개변수를 얻는 방법은 무엇입니까?

피터 코노우 , 2019.07.29 19:58

테이블용. 이 테이블에는 Open, Close, High, Low, 현재를 포함하지 않는 마지막 10개 막대 의 4가지 매개변수 값이 포함되어 있습니다.

후자는 현재(0)에서 뒤로 이동하는 경우입니다.


 
Реter Konow :

테이블의 경우 . 이 테이블에는 Open, Close, High, Low, 현재를 포함하지 않는 마지막 10개 막대의 4가지 매개변수 값이 포함되어 있습니다.

후자는 현재(0)에서 뒤로 이동하는 경우입니다.

이 경우 첫 번째 막대에서 확실히 10 CopyRates가 있습니다. 그리고 모든 틱 을 호출하는 것이 아니라 새 막대가 나타날 때 충분합니다.