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

 

MQL5 아이바시프트

mql5 문서에 따르면 iBarShift 함수는 int 값을 반환합니다.

정수 #

정수형 int의 크기는 4바이트(32비트)입니다. 최소값은 -2 147 483 648이고 최대값은 2 147 483 647입니다.


iBarShift는 99999보다 큰 값을 제공하고 싶지 않습니다.

차트에 추세선을 그리면 다음 스크립트는 선의 시작 시간을 받아 이 시간 막대의 일련 번호를 표시합니다.

라인이 히스토리의 어느 시점에서 뒤로 이동하면 출력 값은 99999에서 멈춥니다.

부울                  정확한=거짓       // 모드

true로 변경하면 GetLastError = 0이라는 사실에도 불구하고 -1을 출력합니다.

 void OnStart ()
  {
int total = ObjectsTotal ( 0 , 0 , - 1 );   // Общее кол-во объектов на: /текущий график/главное окно/все типы объектов
datetime time0 = 0 ; // Время соответствующее началу трендовой линии
string objname = "" ; // Имя объекта (трендовой линии)
int shift = 0 ; // Номер бара, соответствующего времени начала трендовой линии time0

for ( int i = total - 1 ; i >= 0 ; i--)
     {
     objname = ( string ) ObjectName ( 0 , i, 0 , OBJ_TREND );
     time0 = ObjectGetInteger ( 0 , objname, OBJPROP_TIME , 0 );
     shift = iBarShift ( NULL , PERIOD_M1 , time0, false );
     Comment ( "shift: " , shift, " Error: " , GetLastError ());
     Sleep ( 2000 );
     }
  }

뭐가 문제 야?

다른 브로커의 다른 차트를 시도했지만 시간이 라인에서 올바르게 제거되었습니다. 예를 들어 PERIOD_M1을 M5로 변경한 다음 99999에 도달하려면 기록을 통해 더 멀리 이동해야 합니다.

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как положительные, так и отрицательные значения. Диапазон изменения значений составляет от -128 до 127. uchar # Целый тип uchar также занимает в памяти 1 байт, как и тип char, но в отличие от него, uchar...
파일:
sc1.mq5  3 kb
 
Sunriser :

MQL5 아이바시프트

mql5 문서에 따르면 iBarShift 함수는 int 값을 반환합니다.

정수 #

정수형 int의 크기는 4바이트(32비트)입니다. 최소값은 -2 147 483 648이고 최대값은 2 147 483 647입니다.


iBarShift는 99999보다 큰 값을 제공하고 싶지 않습니다.

차트에 추세선을 그리면 다음 스크립트는 선의 시작 시간을 받아 이 시간 막대의 일련 번호를 표시합니다.

라인이 히스토리의 어느 시점에서 뒤로 이동하면 출력 값은 99999에서 멈춥니다.

부울                  정확한=거짓       // 모드

true로 변경하면 GetLastError = 0이라는 사실에도 불구하고 -1을 출력합니다.

뭐가 문제 야?

다른 브로커의 다른 차트를 시도했지만 시간이 라인에서 올바르게 제거되었습니다. 예를 들어 PERIOD_M1을 M5로 변경한 다음 99999에 도달하려면 기록을 통해 더 멀리 이동해야 합니다.

먼저 터미널 설정에서 최대 바 수를 확인하세요.

 
Uladzimir Izerski :

먼저 터미널 설정에서 최대 바 수를 확인하세요.

고맙습니다!

10,000이었고 무제한으로 변경되었습니다. 작동했습니다.

허나 뻔하지..

 

핸들 생성 에 대해 알려주세요.

그런게 있다

 int OnInit ()
  {
//-создадим хэндл индикатора
       handle = iAO (name,period);
//-если не удалось создать хэндл
   if ( handle == INVALID_HANDLE )
     {
      ...
       return ( INIT_FAILED );
     }

질문: 핸들의 번호(숫자)는 어떤 매개변수에서 할당됩니까?
터미널을 다시 시작한 후 달라질 수 있습니까?
차트 재초기화 후 달라질 수 있나요?
어떤 상황에서 변경될 수 있습니까?

 
Vitaly Muzichenko :

핸들 생성 에 대해 알려주세요.

그런게 있다

질문: 핸들의 번호(숫자)는 어떤 매개변수에서 할당됩니까?
터미널을 다시 시작한 후 달라질 수 있습니까?
차트 재초기화 후 달라질 수 있나요?
어떤 상황에서 변경될 수 있습니까?

표시기가 하나만 있는 경우 항상 핸들이 10입니다. 다음 각 표시기는 이전 표시기 + 1과 같으며 모든 것은 핸들이 생성된 순서에 따라 다릅니다. 이전 항목 중 하나에 오류가 발생한 경우에만 변경할 수 있습니다.

 
Alexey Viktorov :

표시기가 하나만 있는 경우 항상 핸들이 10입니다. 다음 각 표시기는 이전 표시기+1과 같으며 모든 것은 핸들이 생성된 순서에 따라 다릅니다. 이전 항목 중 하나에 오류가 발생한 경우에만 변경할 수 있습니다.

좋아, 꽤 명확해. 고맙습니다!

 
Vitaly Muzichenko :

핸들 생성 에 대해 알려주세요.

그런게 있다

질문: 핸들의 번호(숫자)는 어떤 매개변수에서 할당됩니까?
터미널을 다시 시작한 후 달라질 수 있습니까?
차트 재초기화 후 달라질 수 있나요?
어떤 상황에서 변경될 수 있습니까?

답을 찾았습니다

Сравниваем скорость самокэширующихся индикаторов
Сравниваем скорость самокэширующихся индикаторов
  • www.mql5.com
Предположим, что нам вдруг наскучил классический MQL5-доступ к индикаторам и захотелось сравнить скорость доступа в сравнении с альтернативными вариантами. Например, сравним его с доступом к индикаторам в стиле MQL4 без кэширования и с кэшированием. Идеи с доступом в MQL4-стиле были взяты из статьи LifeHack для трейдера: готовим фастфуд из...
 
상속을 통해 표준 라이브러리의 모든 파일에 표시되도록 파일을 삽입할 수 있는 위치는 무엇입니까?
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 

다차원 배열 을 함수에 올바르게 전달하는 방법을 알려주십시오.

헤더에 MyFun( &Mas[][] )을 지정하기만 하면 함수 본문에서 배열 요소 Mas[j][k]에 액세스할 때 컴파일러에서 오류가 발생합니다. 하지만 어떻게?

1차원적인 것은 문제가 없을 것 같습니다.

 
User_mt5 :

다차원 배열 을 함수에 올바르게 전달하는 방법을 알려주실 수 있습니까?

헤더에 MyFun( &Mas[][] )을 지정하기만 하면 함수 본문에서 배열 요소 Mas[j][k]에 액세스할 때 컴파일러에서 오류가 발생합니다. 하지만 어떻게?

1차원적인 것은 문제가 없을 것 같습니다.

배열의 두 번째 및 후속 차원은 동적일 수 없습니다. 따라서 배열이 선언되는 방식, 예를 들어 int Mas[][7]; 그래서 당신은 그것을 수락해야합니다 MyFun(int &Mas[][7])

사유: