오류, 버그, 질문 - 페이지 379

 
Graff :

그리고 그것이 의미가 있습니까?

rate_total을 BarsCalculated(ich)로 바꾸시겠습니까?

생각하지마. 버퍼가 준비되었는지 확인하는 서비스 플러그와 비슷합니다...

또한 Copy는 요청된 크기가 아니라 계산된 만큼의 데이터를 반환합니다.


비밀이 아니라면 어느 도시에서 왔습니까?

드네프르에는 없습니다.
 
sergeev :

그건 그렇고, 추가 기능을 호출 할 필요가 없다고 확신합니까?

라이브러리에는 Refresh와 BufferResize가 모두 있습니다. 정상적인 기능에 필요한 것 같습니다.


필요한 것은 어디에 기록되어 있습니까?

다른 버전에서 시도했습니다.

ichi.Refresh( true );
ichi.Refresh( false );
ichi.RefreshCurrent( true );
ichi.RefreshCurrent( false );

효과가 없습니다.

 

우리는 계속....

iIchimoku 표시기에 결함이 있습니다. 내 표시기는 if(tenkan[i]>kijun[i])에 따라 화살표를 그립니다. 스크린샷에서 볼 수 있듯이 화살표가 잘못 그려집니다.

Ich_1_f.mq5 파일의 전체 코드

그러나 수동으로 계산하면 모든 것이 올바르게 표시됩니다.

Ich_1_ok.mq5 파일의 전체 코드

파일:
Ich_1_f.mq5  6 kb
Ich_1_ok.mq5  6 kb
 

우리는 dll을 작성합니다:

#define _DLLAPI extern "C" __declspec(dllexport)
//+------------------------------------------------------------------+
//| адрес переменной double                                          |
//+------------------------------------------------------------------+
_DLLAPI int __stdcall
GetPtrVar( double a){ return (( int )(&a));}
//+------------------------------------------------------------------+
//| значение переменной double по адресу                             |
//+------------------------------------------------------------------+
_DLLAPI double __stdcall
GetValuePtr( int pointer){ return (*( double *)pointer);}

우리는 연결합니다:

 #import "Projeckt1.dll"
int       GetPtrVar( double a);
double    GetValuePtr( int pointer);
#import

우리는 호출:

 void OnStart ()
  {   
   double var= 153.25 ; 
   Print ( "вложенный вызов = " ,GetValuePtr(GetPtrVar(var)));
   int pointer=GetPtrVar(var);   
   Print ( "вызов с сохранением адреса = " ,GetValuePtr(pointer));
  }

우리는 이것을 얻는다:

 2011.05 . 01 18 : 09 : 12      Черновик 31 (EURUSD,H1) вызов с сохранением адреса = 5.560304580319136 e- 287
2011.05 . 01 18 : 09 : 12      Черновик 31 (EURUSD,H1) вложенный вызов = 153.25

이론상 두 줄 모두 동일한 값 153.25를 반환해야 합니다.

왜요?

 
Urain :

왜요?
32비트 버전인가요 64비트 버전인가요?
 
Renat :
32비트 버전인가요 64비트 버전인가요?

32
 

모든 것이 매우 간단합니다. GetPtrVar( double a) 함수에서 스택에 있는 변수 복사본의 주소를 가져온 다음 스택 메모리의 흩어져 있는 부분을 읽으려고 시도합니다.

처음으로 GetValuePtr에 대한 닫기 호출로 인해 손상되지 않은 스택에서 읽을 수 있었고 후속 함수 호출 로 인해 스택이 복구 불가능하게 손상되었습니다.

오류가 없습니다.

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
 
Renat :

모든 것이 매우 간단합니다. GetPtrVar( double a) 함수에서 스택에 있는 변수 복사본의 주소를 가져온 다음 스택 메모리의 흩어져 있는 부분을 읽으려고 시도합니다.

네, 정확히는 어딘가를 파고들 필요가 있다고 느꼈습니다.

dll에서 작성해야합니다

GetPtrVar( double &a){ return (( int )(&a));}
 
Renat :

모든 것이 매우 간단합니다. GetPtrVar( double a) 함수에서 스택에 있는 변수 복사본의 주소를 가져온 다음 스택 메모리의 흩어져 있는 부분을 읽으려고 시도합니다.

처음으로 GetValuePtr에 대한 닫기 호출로 인해 손상되지 않은 스택에서 읽을 수 있었고 후속 함수 호출 로 인해 스택이 복구 불가능하게 손상되었습니다.

오류가 없습니다.

나도 알아차렸다. 올바르게 나는 그렇게 생각합니다.

#define _DLLAPI extern "C" __declspec(dllexport)
//+------------------------------------------------------------------+
//| адрес переменной double                                          |
//+------------------------------------------------------------------+
_DLLAPI int __stdcall
GetPtrVar( double & a){ return (( int )(&a));}
//+------------------------------------------------------------------+
//| значение переменной double по адресу                             |
//+------------------------------------------------------------------+
_DLLAPI double __stdcall
GetValuePtr( int pointer){ return (*( double *)pointer);}

우리는 연결합니다:

 #import "Projeckt1.dll"
int       GetPtrVar( double & a);
double    GetValuePtr( int pointer);
#import
 
메타트레이더5의 빌드 439에서 히스토리 품질 표시기가 추가되었습니다. M1 및 H4에서 공개 가격 으로 모든 틱에 대해 테스트할 때 품질은 51%입니다... 이 값을 높이는 이유와 방법은 무엇입니까? 인용 출처 - alpari 데모.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5