오류, 버그, 질문 - 페이지 1525 1...151815191520152115221523152415251526152715281529153015311532...3184 새 코멘트 [삭제] 2016.03.03 10:48 #15241 Yuri Evseenkov : MT4. 다시 한번 프로그램 의 전역 변수 초기화 기능에 주목하고 싶습니다. 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 오류, 버그, 질문 슬라바 , 2016.02.24 07:34 대기열에 있습니다. 요청한지 2시간밖에 되지 않았습니다. 일반적으로 이러한 질문은 포럼에서 해야 합니다. 많은 사람들이 만질 수 있기 때문입니다. 인용해 주시면 바로 답변해 드리겠습니다 이것은 의도된 동작입니다. 또한 설명서에 명시적으로 설명되어 있습니다. 언로딩과 로딩은 모든 것의 완전한 재초기화를 수반합니다. 상위 5개에서 올바르게 언급했듯이 상황은 비슷합니다. 사실, 이것이 역사적으로 4개에서 일어난 방식이며, 새로운 MQL4로 전환할 때 먼저 이 동작을 변경했습니다(전문가처럼, 즉, 예상한 동작이 되도록). 그러나 이전 지표와 관련하여 많은 질문이 생겼습니다. 이전 지표는 초기화를 위해 정확하게 마련되었습니다. 강제로 돌아갔다 상위 5위 안에 드는 것은 아키텍처 때문에 바로 발생했습니다. 매개변수가 변경되면 이전 매개변수가 있는 이전 지표가 소멸되고 변경된 매개변수가 있는 새 지표가 생성됩니다. mql5 언어의 특징, 미묘함 초보자의 질문 MQL5 MT5 MQL4 및 MQL5에 대한 Yuri Evseenkov 2016.03.03 11:12 #15242 Alexey Kozitsyn : 고맙습니다. 출력은 문서의 인용문입니다. "... 미리 정의된 함수 OnInit() , 목적은 모든 전역 및 정적 프로그램 변수를 올바르게 초기화하는 것입니다." 따라서 OnInit() 함수의 모든 전역 변수 또는 배열은 기본적으로 null이거나 설정됩니다. События клиентского терминала - Программы MQL4 - Справочник MQL4 docs.mql4.com События клиентского терминала - Программы MQL4 - Справочник MQL4 Andriy Voitenko 2016.03.03 12:29 #15243 1. 다음 형식의 배열을 만듭니다. CArrayString list[ 5 ]; 2. <Ctrl+Space>를 통해 메소드 목록을 호출하려고 합니다. list[ 0 ]. 메소드 목록이 표시되지 않습니다. 그래야만 합니까? [삭제] 2016.03.03 12:31 #15244 Andrey Voytenko : 1. 다음 형식의 배열을 만듭니다. 2. <Ctrl+Space>를 통해 코드의 메소드 목록을 호출하려고 합니다. 메소드 목록이 표시되지 않습니다. 그래야만 합니까? 추측해 보겠습니다. 메소드/멤버가 지정되지 않은 것 외에 코드에 다른 오류가 있는 경우 목록이 항상 표시되지는 않습니다. 시험을 마친. 아니요, 잘못된 가정입니다. 그러나 조합을 몇 번 반복해서 누르면 도움이 되었습니다. Andriy Voitenko 2016.03.03 12:52 #15245 Alexey Kozitsyn : 그러나 조합을 몇 번 반복해서 누르면 도움이 되었습니다. 불행히도 당신의 레시피는 저에게 효과가 없습니다. [삭제] 2016.03.03 13:32 #15246 Andrey Voytenko : 불행히도 당신의 레시피는 저에게 효과가 없습니다. 아니요, 맞습니다. 코드에 오류가 있으면 공개 멤버/메서드 목록이 표시되지 않습니다. 그러나 오류가 없으면 ... 문제가됩니다. Andriy Voitenko 2016.03.03 14:23 #15247 1. 간단한 코드: uint a= 50 ; int b=- 20 ; Print ( fmax (a,b)); 결과: 50 2. 입력 수정자를 추가합니다. input uint a= 50 ; int b=- 20 ; Print ( fmax (a,b)); 결과: 4294967276 예상 결과 50. 내가 잘못한 부분은 무엇입니까? Vladimir Karputov 2016.03.03 15:01 #15248 Andrey Voytenko : 1. 간단한 코드: 결과: 50 2. 입력 수정자를 추가합니다. 결과: 4294967276 예상 결과 50. 내가 잘못한 부분은 무엇입니까? fmax는 두 개의 double 수를 비교합니다. 따라서 다음과 같이 됩니다. //+------------------------------------------------------------------+ //| Test.mq5 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.01" #property script_show_inputs //--- input uint a= 50 ; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart () { //uint a=50; int b=- 20 ; Print ( "\"uint a=50\" as double:" , DoubleToString (( double )a, 8 )); Print ( "\"int b=-20\" as double:" , DoubleToString (( double )b, 8 )); Print ( DoubleToString ( fmax (( double )b,( double )a), 8 )); } //+------------------------------------------------------------------+ 결과: 2016.03 . 03 16 : 00 : 24.821 Test (EURUSD,D1) "uint a=50" as double : 50.00000000 2016.03 . 03 16 : 00 : 24.821 Test (EURUSD,D1) "int b=-20" as double :- 20.00000000 2016.03 . 03 16 : 00 : 24.821 Test (EURUSD,D1) 50.00000000 파일: Test.mq5 2 kb Andriy Voitenko 2016.03.03 15:18 #15249 Karputov Vladimir : fmax는 두 개의 double 수를 비교합니다. 그래서 다음과 같을 것입니다: MQL 언어에서는 암시적 유형 캐스팅이 선언되고 수행됩니다. 특히 uint -> double입니다. 문제는 입력 변수 에서 올바르게 작동하지 않는 이유입니다. Slava 2016.03.03 15:26 #15250 Andrey Voytenko : 1. 간단한 코드: 결과: 50 2. 입력 수정자를 추가합니다. 결과: 4294967276 예상 결과 50. 내가 잘못한 부분은 무엇입니까? 완전한 코드를 제공합니다. 2가지 가능성이 있으며 둘 다 틀렸습니다. 1. 코드가 함수 외부에서 실행됩니다. 2. 입력 변수는 함수 내에서 선언됩니다. 1...151815191520152115221523152415251526152715281529153015311532...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
MT4. 다시 한번 프로그램 의 전역 변수 초기화 기능에 주목하고 싶습니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
오류, 버그, 질문
슬라바 , 2016.02.24 07:34
대기열에 있습니다. 요청한지 2시간밖에 되지 않았습니다.
일반적으로 이러한 질문은 포럼에서 해야 합니다. 많은 사람들이 만질 수 있기 때문입니다. 인용해 주시면 바로 답변해 드리겠습니다
이것은 의도된 동작입니다. 또한 설명서에 명시적으로 설명되어 있습니다.
언로딩과 로딩은 모든 것의 완전한 재초기화를 수반합니다.
상위 5개에서 올바르게 언급했듯이 상황은 비슷합니다.
사실, 이것이 역사적으로 4개에서 일어난 방식이며, 새로운 MQL4로 전환할 때 먼저 이 동작을 변경했습니다(전문가처럼, 즉, 예상한 동작이 되도록). 그러나 이전 지표와 관련하여 많은 질문이 생겼습니다. 이전 지표는 초기화를 위해 정확하게 마련되었습니다. 강제로 돌아갔다
상위 5위 안에 드는 것은 아키텍처 때문에 바로 발생했습니다. 매개변수가 변경되면 이전 매개변수가 있는 이전 지표가 소멸되고 변경된 매개변수가 있는 새 지표가 생성됩니다.
고맙습니다. 출력은 문서의 인용문입니다. "... 미리 정의된 함수 OnInit() , 목적은 모든 전역 및 정적 프로그램 변수를 올바르게 초기화하는 것입니다."
따라서 OnInit() 함수의 모든 전역 변수 또는 배열은 기본적으로 null이거나 설정됩니다.
1. 다음 형식의 배열을 만듭니다.
CArrayString list[ 5 ];2. <Ctrl+Space>를 통해 메소드 목록을 호출하려고 합니다.
list[ 0 ].메소드 목록이 표시되지 않습니다. 그래야만 합니까?1. 다음 형식의 배열을 만듭니다.
2. <Ctrl+Space>를 통해 코드의 메소드 목록을 호출하려고 합니다.
메소드 목록이 표시되지 않습니다. 그래야만 합니까?추측해 보겠습니다. 메소드/멤버가 지정되지 않은 것 외에 코드에 다른 오류가 있는 경우 목록이 항상 표시되지는 않습니다.
시험을 마친. 아니요, 잘못된 가정입니다. 그러나 조합을 몇 번 반복해서 누르면 도움이 되었습니다.
Alexey Kozitsyn :
그러나 조합을 몇 번 반복해서 누르면 도움이 되었습니다.
불행히도 당신의 레시피는 저에게 효과가 없습니다.
1. 간단한 코드:
결과: 50
2. 입력 수정자를 추가합니다.
결과: 4294967276
예상 결과 50. 내가 잘못한 부분은 무엇입니까?
1. 간단한 코드:
결과: 50
2. 입력 수정자를 추가합니다.
결과: 4294967276
예상 결과 50. 내가 잘못한 부분은 무엇입니까?
fmax는 두 개의 double 수를 비교합니다. 따라서 다음과 같이 됩니다.
결과:
fmax는 두 개의 double 수를 비교합니다. 그래서 다음과 같을 것입니다:
MQL 언어에서는 암시적 유형 캐스팅이 선언되고 수행됩니다. 특히 uint -> double입니다.
문제는 입력 변수 에서 올바르게 작동하지 않는 이유입니다.
1. 간단한 코드:
결과: 50
2. 입력 수정자를 추가합니다.
결과: 4294967276
예상 결과 50. 내가 잘못한 부분은 무엇입니까?
완전한 코드를 제공합니다.
2가지 가능성이 있으며 둘 다 틀렸습니다.
1. 코드가 함수 외부에서 실행됩니다.
2. 입력 변수는 함수 내에서 선언됩니다.