MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 821

 

내 질문에주의를 기울이십시오. 저는 몇 가지 계산을 수행하고 차트의 양초 수와 동일한 차원을 가진 배열(시계열이 아님)에 넣는 표시기를 작성하고 있습니다. 처음에는 터미널 매개변수의 차트에 2000개의 촛대가 있고 새 촛대가 나타나면 첫 번째 촛대가 두 번째 값, 두 번째 촛대가 세 번째 값, prev_calculated가 0과 같았고 전체 배열을 다시 계산했습니다. 그렇지 않으면 마지막 막대 하나만 다시 계산했습니다. 그러나 새 양초가 있을 때마다 Rates_total 값이 증가하여 2000개 한도를 초과한다는 사실을 알게 되었습니다.

따라서 배열을 다시 계산하는 것이 의미가 없습니까?

그러나 정확히 2000 개의 촛불이 터미널에 설정되어 있기 때문에 왜 이런 일이 발생합니까?


터미널이 닫히면 막대의 수는 다시 2000이 되고 다시 새 양초가 나타나면 증가하기 시작합니다.


ruslanzip :
안녕하세요 . 말해 주세요. 조건에 대한 코드는 다음과 같습니다. 계정 잔액 이 증가하거나 감소한 경우 함수를 실행합니다.

//함수 외부에서 변수 선언:

이중 잔액 = AccountBalance();

// 눈금/계산 함수에 추가:

if (Balance!=AccountBalance())

{

잔액=계정잔액();

마이펑션(); // <-- 함수

}

 
통장 출금 실 통장에 돈이 있는데 여기 월급만 출금이 가능한가요?
 
Roza75 :
통장 출금 실 통장에 돈이 있는데 여기 월급만 출금이 가능한가요?
실제 계정은 어디에 있습니까?
 
Artyom Trishkin :
실제 계정은 어디에 있습니까?
메타트레이더 4 앱
 
Igor Makanu :

터미널이 작동하는 방식이기 때문에

그렇다면 이것은 버그가 아닌 정상적인 동작입니까? 일부 기본 사용자 지정 지표는 이 요소를 고려하지 않고 작성되고 각 prev_calculated==0에서 완전한 재계산을 하기 때문입니다.


이고르 마카누 :

이 솔루션은 테스터 전용입니다. 터미널을 다시 시작하면 어떻게 되나요? 이 계정에서 두 번째 Expert Advisor를 실행하면 어떻게 될까요?

당신은 주문의 역사를 가지고 작업해야합니다, 우리의 마법에는 열린 주문이 없습니다 - 우리는 역사상 마지막 주문의 이익을 보았습니다.

초과 적재? 아니면 재부팅? 후자의 경우 고문의 행동은 변경되지 않습니다. 두 번째 Expert Advisor를 실행하면 알고리즘이 오류 없이 동일한 방식으로 실행됩니다.

저자가 작업해야 하는 것은 그가 설정한 작업에 따라 다릅니다. 그리고 그들이 질문을 했을 때, 그래서 나는 대답했고, 그 질문에 더 이상 구체적인 것은 없었습니다.

 
The_Sheikh :

내 질문에주의를 기울이십시오. 저는 몇 가지 계산을 수행하고 차트의 양초 수와 동일한 차원을 가진 배열(시계열이 아님)에 넣는 표시기를 작성하고 있습니다. 처음에는 터미널 매개변수의 차트에 2000개의 촛대가 있고 새 촛대가 나타나면 첫 번째 촛대가 두 번째 값, 두 번째 촛대가 세 번째 값, prev_calculated가 0과 같았고 전체 배열을 다시 계산했습니다. 그렇지 않으면 마지막 막대 하나만 다시 계산했습니다. 그러나 새 양초가 있을 때마다 Rates_total 값이 증가하여 2000개 한도를 초과한다는 사실을 알게 되었습니다.

따라서 배열을 다시 계산하는 것이 의미가 없습니까?

그러나 정확히 2000 개의 촛불이 터미널에 설정되어 있기 때문에 왜 이런 일이 발생합니까?


터미널이 닫히면 막대의 수는 다시 2000이 되고 다시 새 양초가 나타나면 증가하기 시작합니다.


//함수 외부에서 변수 선언:

이중 잔액 = AccountBalance();

// 눈금/계산 함수에 추가:

if (Balance!=AccountBalance())

{

잔액=계정잔액();

마이펑션(); // <-- 함수

}



정말 감사합니다. 효과가 있었습니다!

 
Artyom Trishkin :

내 휴대전화에 Metatrader 4 앱이 있습니다.
 
Alexey Viktorov :

그리고 내부에서 어떻게 작동하는지 이해하려고 노력하는 이유는 무엇입니까? 글쎄, 당신이 당신 자신의 함수를 작성하고 싶다면 아마도 극단적인 인덱스 중 하나의 값을 정렬하고 취하는 것이 더 편리할 것입니다. 그러나 내장 함수보다 빠르게 작동하지는 않을 것입니다. 또한 내장 기능을 사용하면 표시된 인덱스 제한 내에서 값을 검색할 수 있습니다. 단순한 정렬이 도움이 되지 않는다는 것을 의미합니다. 따라서 배열의 일부를 중간 배열로 복사하고 정렬하고 원하는 값을 가져와야 하며 배열 복사는 매우 "싼" 기능이 아닙니다.

두뇌가 발달하려면 이해해야 합니다. 어제 오랜만에 앉아서 예와 같은 스케치를 했습니다. 값 열거 원칙에 따라 정렬하지 않고도 할 수 있지만 여전히 값을 저장할 변수가 필요하고, 더군다나 값을 한 번에 반환할 수도 있고 반환하지 않을 수도 있습니다. 작업을 단순화하는 색인. 물론 그 기능은 계산을 저장하기 위해 범위와 다양한 수정에서 더 잘 수행될 수 있습니다. 내장 기능에는 세부 사항이 많이 부족합니다. 그러나 내장 함수는 매우 빠르며 왜 C++로 작성되었는지 명확하지 않습니다. 속도, 품질, 코드 절약 등 모든 세부 사항을 고려하여 기능을 매우 미묘하게 작성합니다. 기능 내부의 검사 및 통과 횟수를 줄이는 수정 사항을 도입하지만 어떤 이유로 내장 기능은 여전히 속도를 우회합니다. , 품질은 아니지만 우회합니다. 나는 오랫동안 이 질문으로 포럼 커뮤니티를 찾았습니다.

 
모든 포럼 사용자에게 좋은 하루! 나는 문제에 부딪쳤습니다. 두 번째 날 머리가 깨질 것입니다. 아이디어를 구현하는 방법을 이해할 수 없습니다! 새 좌표에 따라 다시 그리지 않도록 특정 양초에 직사각형, 원, 타원형(모양에 관계없이)을 그리는 방법. 그리고 어떤 조건이 발동되면 그림이 그려지나요? 자체 촛불에 각 인물. 최근에야 mql4를 공부하기 시작했는데 그래픽이 전혀 익숙하지 않습니다. 그래서 어제 10번째 막대에 정사각형을 그려보기로 했습니다(예로). 하나는 표시되고 그게 다이고 더 이상 그려지지 않습니다. 어제 코드를 고문하고 고문하다가 결국 나오기 시작했는데 예전 자리에서 계속 지워지고 새로 그려지는 사각형만 생겨서 딱 한 번만 표시되기 시작한 사각형이 고통스러웠다. 구현 방법을 아는 사람을 알려주세요! 또는 포럼에 해당 지점이 있는 곳을 알려주세요. 그리고 나는 이미 많은 정보를 읽었지만 더 혼란스러웠습니다! 귀하의 답변에 미리 감사드립니다