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

 

어째서인지 OnTester 기능에서 계정에 현재 이익 을 얻을 수 없습니다

이것이 내가 0을 얻는 방법

double OnTester()
{
   return(AccountInfoDouble(ACCOUNT_PROFIT));

그리고 이것이 당신이 이익을 얻는 방법입니다:

double OnTester()
{
   return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
stringo :

우리는 무엇에 대해 논쟁하고 있습니까? w0 설정하지 않음

추신: 메시지는 다음과 같습니다(아래 몇 줄).


Slava는 동의합니다. 이러한 모든 분쟁은 시간이 너무 많이 걸립니다. :)

그러나 이동 중에 호출되는 것은 - 당신은 당신 자신이 모든 것을 아주 잘 알고 있다고 확신하지만 여전히이 함수가 외부이고 선언을 통해서만 선언된다면 "const"및 "in "와 "밖으로". 그리고 아마도 이 기능에 결함이 있을 수 있습니다. 사실 이것이 반환 매개변수인 경우 반환하지 않으려는 경우("반환"을 통해 반환된 경우) 경고가 발생하고 함수의 두 번째 형식이 있는 경우 반환된 값은 매개변수를 통해 반환되며 이 반환 값 때문에 경고도 발행되어야 합니다. 그렇지 않으면 매개변수를 통해 성공/실패의 결과를 반환하고 반환을 통해 값 자체를 반환하도록 만들었다면 반환하지 않을 수 없습니다. 그리고 성공이나 실패도 항상 돌아옵니다. 즉 - ( http://users.telenet.be/bart.demeyere/C++InOutParameters.html ) 여기에는 오랫동안 존재해 온 솔루션이 있습니다.


그러나 내가 알아차린 것처럼 일반적인 대화는 아무 것도 아닙니다. IMHO, 현재 구현에서 다음과 같이 기본을 변경할 계획이 없다면 그러한 질문에 대답해야 합니다. - "예, 그런 문제가 있습니다. 프로그램의 다음 버전에서 해결될 것입니다. 이제 우리는 코드를 수정했고 오류만 수정했습니다." 그 누구도 (가장 부적절한 사람이라도) 화를 내지 않을 것이지만 단순히 문제 자체를 해결하는 것이 중요하고 필요합니다.


이 버전이 out 및 기타 항목에 매우 (매우) 유용한 수정자를 포함할지 여부에 관계없이 본질적으로 오류를 최소화할 수 있습니다.


***

이 모든 서신에 반나절이 소요됩니다. 묶고 있어요. :)

 
Erm955 :

어째서인지 OnTester 기능에서 계정에 현재 이익 을 얻을 수 없습니다

이것이 내가 0을 얻는 방법

double OnTester()
{
   return(AccountInfoDouble(ACCOUNT_PROFIT));

그리고 이것이 당신이 이익을 얻는 방법입니다:

double OnTester()
{
   return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);


전역 변수를 선언하고 OnInit()에서 현재 잔액 값을 할당합니다.

OnTester()에서 모든 거래의 결과를 기반으로 최종 이익을 계산합니다.

Профит=ТекущийБбаланс - Начальный баланс

OnTester()에서 발행하십시오.


그리고 지금 얻고자 하는 것은 현재 고정되지 않은 이익이며, 모든 포지션이 마감된 경우 0과 같습니다.

 
Academic :


Slava는 동의합니다. 이러한 모든 분쟁은 시간이 너무 많이 걸립니다. :)

이 버전이 out 및 기타 항목에 매우 (매우) 유용한 수정자를 포함할지 여부에 관계없이 본질적으로 오류를 최소화할 수 있습니다.

"우리가 무슨 논쟁을 하는 겁니까?" - "우리가 내기하는 것은 무엇입니까?"를 의미하는 어린 시절의 문구

참조로 매개변수를 전달하는 것은 단지 inout을 의미합니다. 단순히 컴파일러의 영향을 받지 않는 구현이 있습니다.

실제로 함수를 단계별로 실행하여 실행 흐름을 분석하는 것은 매우 쉽습니다(예: Rashid 제공). 우리는 의도적으로 이 접근 방식을 포기했습니다. 바로 이 때문에 컴파일 시간이 크게 늘어날 수 있습니다. 따라서 우리는 경고를 발행하는 가장 간단한 옵션을 선택했습니다. 그리고, 그런 경고를 하지 않는 것이 낫습니까? 아니, 당신은해야합니다. 명시적 초기화를 수행합니다. 경고가 표시되지 않습니다.

또한 논리적 표현에 대한 평가가 단축되었음을 반복합니다. 즉, 첫 번째 ObjectGetDouble이 false를 반환하는 경우(예: 프로그램 외부에 있는 개체가 갑자기 존재하지 않기 때문에) 두 번째 ObjectGetDouble이 호출되지 않습니다.

Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this
Документация по MQL5: Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this
  • www.mql5.com
Основы языка / Типы данных / Ссылки. Модификатор & и ключевое слово this - Документация по MQL5
 
stringo :

"우리가 무슨 논쟁을 하는 겁니까?" - "우리가 내기하는 것은 무엇입니까?"를 의미하는 어린 시절의 문구

참조로 매개변수를 전달하는 것은 단지 inout을 의미합니다. 단순히 컴파일러의 영향을 받지 않는 구현이 있습니다.

실제로 함수를 단계별로 실행하여 실행 흐름을 분석하는 것은 매우 쉽습니다(예: Rashid 제공). 우리는 의도적으로 이 접근 방식을 포기했습니다. 바로 이 때문에 컴파일 시간이 크게 늘어날 수 있습니다. 따라서 우리는 경고를 발행하는 가장 간단한 옵션을 선택했습니다. 그리고, 그런 경고를 하지 않는 것이 낫습니까? 아니, 당신은해야합니다. 명시적 초기화를 수행합니다. 경고가 표시되지 않습니다.

또한 논리적 표현에 대한 평가가 단축되었음을 반복합니다. 즉, 첫 번째 ObjectGetDouble이 false를 반환하는 경우(예: 프로그램 외부에 있는 개체가 갑자기 존재하지 않기 때문에) 두 번째 ObjectGetDouble이 호출되지 않습니다.


맞습니다. 호출되지 않습니다. 이것은 Sish 코드의 표준 동작입니다.

in 및 out 수정자는 과거 참조일 수 있습니다. 그리고 기본적으로 링크의 경우 항상 인 및 아웃입니다. 그러나 in 수정자를 사용하여 링크를 전달할 수 있습니다. 즉, 이 함수 매개변수는 항상 입력되며 참조로 전달되었지만 쓰기가 불가능합니다. 읽어 봤니 ? http://users.telenet.be/bart.demeyere/C++InOutParameters.html


in : 매개변수를 읽습니다(모든 분기에서 읽지 않을 때 경고*)
( in ): 매개변수를 읽을 수 있음(아무데도 읽을 수 없는 경우 경고)
out : 매개변수가 기록됩니다(모든 분기에 기록되지 않을 경우 경고*)
( out ): 매개변수를 쓸 수 있음(아무데도 쓰지 않을 때 경고)
in 없이 out : 매개변수를 쓸 수 없습니다.
in 없이 out : 매개변수를 쓰기 전에 읽을 수 없습니다.
*모든 분기에서: 함수를 통해 가능한 모든 일반 흐름에서( if 문의 두 분기, case 문의 모든 분기,... ), 예외가 throw될 때는 아닙니다. 이것은 정의되지 않은 동작이 없도록 return 문과 동일한 제약 조건입니다.


그리고 무엇보다도 키워드 inout 을 도입하면 컴파일 타임에 이미 몇 가지 문제를 찾는 데 도움이 될 수 있습니다. 그리고 우리 모두는 가능한 한 빨리 오류를 찾고 싶지 않습니까?

 

const 수정자가 있습니다. 상수 참조를 전달하는 것은 out 없이 in 매개변수를 명확하게 가정합니다. 우리는 in, out, inout에 추가 엔터티를 도입하지 않을 것입니다.

 
stringo :

const 수정자가 있습니다. 상수 참조를 전달하는 것은 out 없이 in 매개변수를 명확하게 가정합니다. 우리는 in, out, inout에 추가 엔터티를 도입하지 않을 것입니다.

일어나지마, 일어나지마 그러나 그러면 적절한 최적화를 얻을 수 없다는 것을 이해해야 합니다. 그리고 그 예에서 OUT이면 경고를 발행할 필요가 없습니다. 그러나 일반적으로 헛된 - IMHO, 3 분 동안 비즈니스, 그러나 얼마나 적은 오류. 원하지 않으시면 사용하지 마세요. 그러면 모든 것이 언제나처럼 됩니다. 글쎄, 지금은 어떻습니까? :)


IN 없이 OUT만 갖게 하는 방법은? 퓨어 아웃? 함수를 반환하는 것과 같이 항상 무언가가 반환된다는 것은 무엇을 의미합니까?

 

개발자.

1. 1993년 5월 이후 주요 쌍의 스프레드가 채워진 것으로 알고 있습니다. 현재 약 930개의 주간 막대가 있습니까?

더욱이, 깊은 역사에서 막대기는 날을 기준으로 지어졌습니다.

따라서 Expert Advisors는 1993년 5월부터 테스트할 수 있습니다(TF를 사용하는 경우 D1 이상)?

2. 1993년 5월 9일 GBPUSD 기록을 더 자세히 살펴볼 수 있습니까(예를 들어 EURUSD에 대해 구현되는 방법)?
 

안녕하세요.

" 그래픽 레이블 " 개체를 "수동으로" 생성할 때 켜짐/꺼짐 상태에 대해 지정된 bmp 파일이 설정되지 않은 이유를 누가 압니까?

코드는 다음과 같습니다.

객체 생성(....);

.......

ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "이미지\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "이미지\off.bmp");

레이블은 지정된 위치에 지정된 색상 등으로 완전히 올바르게 생성되지만 "Images\on.bmp" 및 "Images\off.bmp"는 지정되지 않습니다. GUI MT5의 경우
개체 목록을 클릭하고 레이블에 대해 이러한 파일을 수동으로 설정하면 설정됩니다. 그러나 ObjectSetString이 이것을 수행하지 않는 이유는 무엇입니까?

무슨 말을 합니까?

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
MathX :

무슨 말을 합니까?

노력하다

ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "\\Images\\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "\\Images\\off.bmp");


도움말이 곧 업데이트됩니다.