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

 

metaeditor(64)?.exe에는 컴파일러가 내장되어 있지 않습니까? 따라서 mql(64)?.exe는 자체적으로 매우 "별도의" 자급자족 컴파일러입니다.

따라서 내 질문은 정확했고 귀하의 대답은 "어쨌든 명령줄에서 ex? 파일의 지능적인 배치가 수행되지 않습니다. 이것은 편집기에서만 수행할 수 있으며 창 모드에서만 수행할 수 있습니다."입니다. 완전히 대답합니다.

사실 감사합니다.

 

MetaEditor에서 R:\로 검색 할 때 지정된 경로

검색 결과에 R:\\로 나타납니다.

작업에는 영향을 미치지 않지만 숨겨진 오류가 있는지 확인하십시오(예: R:\\\\\\\ 경로를 설정할 수 있음).

 

Windows 10, MT4 Build 854 이상한 제목(확산 대신 "!"이라고 표시됨), 모든 메뉴 항목이 번역되지 않고 메뉴에 빈 항목이 있습니다.


 
계획되지 않은 값 변경
 #import "Test.dll"
         void f( const int & x[] );
#import
void OnStart ()
{
         int x[ 1 ] = { 1 };
         int y = x[ 0 ];
         Print ( "y=" , y ); //  здесь y = 1
        f( x );
         Print ( "y=" , y ); //а здесь y = 2, но я его явно не менял
}
//Test.cpp
void WINAPI f( int x[] ) { x[ 0 ] = 2 ; }

여기서 f()가 #import에서 잘못 설명된 것이 분명하지만 문제는 x가 변경된 것이 아니라 y가 변경된 것입니다.

컴파일러가 x - 휘발성을 고려하는 것이 합리적일 수 있습니다(.dll에서 호출된 함수에 대한 참조로 전달된 변수에 영향을 미치는 코드를 최적화하지 않는다는 의미에서). 이러한 최적화가 없으면 거의 감지할 수 없으며 그 결과가 결과에 중요하다는 사실을 고려합니다.

 
Artyom Trishkin :

Windows 10, MT4 Build 854 이상한 제목(확산 대신 "!"이라고 표시됨), 모든 메뉴 항목이 번역되지 않고 메뉴에 빈 항목이 있습니다.

확인합니다.
 

내가 틀릴 수 있지만 NULL은 변수를 0으로 설정하는 데 사용할 때 변수를 0으로 초기화합니다.

도움말 말한다

Синтаксически тип void является фундаментальным типом наравне с типами char , uchar , bool , short , ushort , int , uint , color , long , ulong , datetime , float , double и string . 
Этот тип используется либо для указания того, что функция не возвращает значения, либо в качестве параметра функции обозначает отсутствие параметров.

Предопределенная константная переменная NULL имеет тип void . Она может быть присвоена переменным любых других фундаментальных типов без преобразования. 
Также допускается сравнение переменных фундаментальных типов со значением NULL

이론적으로 NULL을 사용할 때 변수는 string형 변수의 경우와 같이 비어 있어야 하며 0도 -도 +도 포함하지 않아야 합니다.

문자열 유형 의 변수를 초기화 할 때 text = NULL; 변수는 비어 있고 다른 유형이 초기화될 때 0이 할당됩니다.

 
Artyom Trishkin :

Windows 10, MT4 Build 854 이상한 헤더(spread는 "!"로 대체됨)

Spread는 이름이 너무 광범위합니다. MT5에서는 Overview와 Quote Window 모두에서 항상 그랬습니다!

 
A100 :

Spread는 이름이 너무 광범위합니다. MT5에서는 Overview와 Quote Window 모두에서 항상 그랬습니다!

관심을 두지 않았을 수도 있지만 적어도 "SP"는 더 많은 정보를 제공할 것입니다.
 

빌드 854에는 또 다른 흥미로운 버그가 있습니다.

나는 전문가에 있는 테스트 폴더를 가지고 있습니다. 여기에는 소스 코드와 test라는 실행 프로그램이 포함되어 있습니다.

전문가의 메인 디렉토리에는 test라는 파일이 있고, 소스코드와 실행파일도 있어서 후자를 컴파일할 때 테스트용 터미널에 첫 번째 파일을 설치한다.

즉, Experts\\Test라는 이름과 위치로 Advisor를 테스트하고 싶은데, 터미널에서 컴파일할 때마다 Experts\\Test\\Test가 자동으로 설정되어 매번 Advisor를 재배열해야 합니다.

스트레스다...

 

친애하는 상인 여러분, 안녕하세요.

한 가지 문제를 해결하도록 도와주세요.

SymbolInfoDouble( _Symbol, SYMBOL_TRADE_TICK_VALUE ) 함수는 #IBM_L 기호에 대해 0을 리턴합니다.

터미널 LiteForex MT5 터미널 x64 빌드 1150이 시작되었습니다(Liteforex Investments Limited).

계정 통화 EUR.

응용 프로그램에서 스크립트를 테스트합니다.

로그 출력:

2015.08.12 22:23:51.930 TestTickValue (#IBM_L,H1) Tick value = 0.00000.

거래량을 계산하려면 이 값이 필요합니다.

double lots = loss * cSymbolInfo.TickSize() / ( priceDiff * cSymbolInfo.TickValue() );

코드에서 TickValue()를 호출하기 전에 cSymbolInfo.Name(symbol)을 올바르게 선택했습니다. 이 코드는 EURUSD와 같은 다른 상품에서 작동합니다.

파일: