MQL5 언어를 처음부터 자가 학습 - 페이지 47

 

Vladimir Simakov :

조수는 이 외설을 보고 말했다: 250 sput. 내 급여와 75 스퍼트. 내 두 후배들에게, 그리고 우리는 6개월 안에 이 쓰레기를 다시 쓰거나 아예 버릴 것입니다.

설명된 접근 방식을 사용하면 설정으로 판단할 때 이것이 올바른 솔루션이며 GPU에 항상 문제가 있습니다.

 
MrBrooklin :

나는 전역 변수에 대한 모든 메시지를 읽었고 이 토론의 모든 참가자가 나에게 전달하고자 하는 것이 정확히 무엇인지 이해했습니다. 전역 변수를 사용하지 않으려고 노력하면서 프로그램 코드를 작성하는 방법을 배울 것입니다. 모든 건설적인 조언에 감사드립니다!

안부 인사를 전합니다. 블라디미르.

프로그래머는 값을 변경할 때 발생하는 오류 때문에 전역 변수를 사용하는 것을 두려워합니다. 각 기능이 변경될 수 있으므로 오류를 현지화하기 어려운 상황이 발생합니다. 당연히 모든 프로그램 기능이 봐야 하는 변수만 전역 범위에 있어야 합니다. 다른 방법으로는 불가능합니다.

저는 항상 전역 변수를 사용하는 것을 좋아했습니다. 전역 변수를 사용하면 기능이 빠르게 확장되고 프로그램이 거대하고 활동적인 건설 현장으로 변하기 때문입니다. 제가 코드를 작성하는 방식은 종종 비난을 받기도 했지만 그것이 바로 건축을 위한 것입니다. 건물의 건축에 대한 주요 작업이 완료된 후 청결이 가져오고 집이 지어지면 마주보고, 페인팅하고, 청소할 수 있습니다. 영토. 그때까지는 거푸집 조립과 콘크리트 타설이 우선이다.)

그러나 프로그래머는 다르게 생각합니다. 두 줄 반 길이의 코드라도 "세척"하고 "스크러빙"합니다. "갈매기의 코"가있는 프로그램이지만 새 동전처럼 빛날 것입니다.)) 코드에 대한 그러한 태도는 그들이 살고있는 직업에 의해 정당화되지만 창조적 인 관점에서 볼 때 그들은 억압되고 잘 발달하지 못합니다. 그렇게 밝혀졌습니다...

내 조언: 올바르게 쓰는 법을 배우십시오. 그러나 때로는 규칙에서 벗어나 더 다양한 경험을 하기 위해 실험을 하십시오. 이것은 학습에 도움이 될 것이며 자료를 빨리 배우게 될 것입니다.
 
MrBrooklin :

계속해서 MQL5 프로그래밍 언어를 공부하고 있습니다. 이 주제의 참가자들의 팁을 고려하여 수정된 스크립트 코드를 다시 게시합니다. 스크립트는 모든 모드에서 테스트되었습니다. 문제가 확인되지 않았습니다. 우선 최소한의 입력 매개변수를 적용했습니다. 스크립트 코드는 영어로 작성되었으며 코드에 대한 주석은 자료의 동화를 용이하게 하기 위해 러시아어로 작성되었습니다. 이 대본에서는 앞서 약속한 대로 프로그래밍 학교 1학년 학생이 볼 수 있는 프레젠테이션에서 모든 것을 설명하려고 했습니다.

나는 이제 이 주제의 참가자들이 나에게 설명한 대로 정확하게 하기를 희망하지만 내가 틀릴 수도 있습니다.

안부 인사를 전합니다. 블라디미르.

bool 충분히_시간 전역 변수를 이동하는 방법과 위치를 알아낸 것이 좋습니다. 당신은 발전하고 있습니다.
 
Реter Konow :
bool 충분히_시간 전역 변수를 이동하는 방법과 위치를 알아낸 것이 좋습니다. 당신은 발전하고 있습니다.

Peter, 당신이 저에게 주는 지원과 도움에 감사드립니다. 이 주제의 참가자들이 이전에 나에게 제공한 팁 덕분에 전역 변수 를 함수 내부로 옮겼습니다. 이제 정보가 머리에 약간 정리되었으므로 모든 것을 새롭게 인식하는 것이 훨씬 쉬워집니다.

안부 인사를 전합니다. 블라디미르.

 

모두 좋은 아침과 좋은 분위기!

프로그래밍 분야의 전문가 여러분! 나와 공유하는 모든 팁과 건설적인 조언에 대해 진심으로 감사드립니다!

안부 인사를 전합니다. 블라디미르.

 
MrBrooklin :

좋은 아침과 좋은 분위기 모두!

프로그래밍 분야의 전문가 여러분! 저와 공유하는 모든 팁과 건설적인 조언에 대해 진심으로 감사드립니다!

안부 인사를 전합니다. 블라디미르.


빠르게 움직이시네요... :-)
이건 기본 고등기술교육 때문인데, 틀리지 않았다면...

 
Aleksey Masterov :

빠르게 움직이시네요... :-)
이건 기본 고등기술교육 때문인데, 틀리지 않았다면...

안녕하세요 알렉세이입니다! 네, 맞습니다. 저는 소비에트 시대에 같은 소비에트 시대에 ES 컴퓨터 수리에 종사했던 조직의 전자 엔지니어로서 생산 및 작업 경험의 자동화와 관련된 소비에트 고등 기술 교육을 받았습니다.

안부 인사를 전합니다. 블라디미르

 
MrBrooklin :

안녕하세요 알렉세이입니다! 네, 맞습니다. 저는 소비에트 시대에 같은 소비에트 시대에 ES 컴퓨터 수리에 종사했던 조직의 전자 엔지니어로서 생산 및 작업 경험의 자동화와 관련된 소비에트 고등 기술 교육을 받았습니다.

안부 인사를 전합니다. 블라디미르


이것은 환상을 코드로, 특히 마지막 스크립트에서와 같은 철학적인 것으로 번역하는 이 "예술"에서 움직임의 수준과 속도 측면에서 저에게 있어 즉시 눈에 띕니다 !!! :-)
IMHO, 그런 속도로 계속하면 여기에서 코를 닦을 것입니다. 전문가 proggers... :-)
MetaQuotes MT5 팀에 원격으로 가입을 요청하세요!!!
 
Vasiliy Sokolov :

계속

위의 게시물에서 초점이 기능에 있음이 분명했습니다. 모든 것이 그들에게 바쳐졌고 그들 외에는 아무것도 없었습니다. 이것은 명백한 주관적 왜곡이거나 일종의 난해한 "철학"이라고 생각할 수 있습니다. 그러나 여기에는 철학이 없습니다. 그리고 기능에 대한 그러한 관심은 우연이 아닙니다. 요점은 프로그래밍에서 기능은 기본이라는 것입니다. 또한 수학에서 함수는 매우 중요하고 기본적인 개념이기도 합니다. 지난 세기의 20 대에 Alonzo Church는 기능을 기반으로 한 미적분 시스템을 개발했습니다. 람다 미적분학 이라고 합니다. 이 시스템은 계산 가능성과 밀접하게 연결된 컴퓨터 계산 및 수학의 개념을 공식화했습니다. 람다 미적분학을 기반으로 세계 최고의 프로그래머는 함수에 선두 자리를 제공하는 소위 함수형 프로그래밍 언어 를 개발했습니다. 예를 들어, 함수형 프로그래밍 언어인 Haskell에는 for 루프나 이와 유사한 것이 없습니다. 대신, 원하는 값을 계산하기 위해 재귀적 으로 특별한 방법으로 함수를 호출하는 것이 좋습니다. 할당 없이 함수만 주어지면 튜링 완전 프로그래밍 언어를 작성할 수 있음을 증명할 수 있습니다. 절차적 언어나 OOP 언어와 같은 다른 튜링 완전 언어로 가능한 모든 것을 작성할 수 있는 언어입니다.

MQL은 기능적 언어가 아니라 강력한 유형 지정 및 풍부한 도메인별 API(동일한 기능의 형태로, 오 놀라운)를 사용하여 클래스에 의해 확장된 절차적 언어입니다. 반면에 함수 이론은 견고한 수학적 토대를 기반으로 하며 함수가 있는 모든 프로그래밍 언어를 사용하기 위한 간단하고 효과적인 패턴을 제공하므로 적어도 함수와 그 뒤에 있는 수학적 기반을 거부하는 것은 근시안적입니다. . 그래서 기능에 신경을 많이 쓴다. 어레이 장치를 얼마나 잘 이해했는지는 중요하지 않으며 일부 데이터 유형에 실수를 해도 상관 없습니다. 이것은 신속하게 수정 및 수정됩니다. 그러나 기능과 기능이 서로 어떻게 관련되어 있는지 이해하지 못한다면 평범한 프로그래머라도 문제를 해결하지 못할 것입니다.

따라서 정상적으로 진행하는 방법을 배우려면, 즉, 프로그램의 기능을 시간에 따라 선형으로 확장하려면 다음을 배워야 합니다.

  • MetaTrader 4.5 이벤트 모델을 명확하게(완전하지는 않지만 분명히 필요함) 제시합니다.
  • 시스템 기능으로 작업할 수 있습니다. 자신의 기능에서 결과를 일반화하십시오. 시스템 함수 호출을 자신의 것으로 병합합니다.
  • 자신의 기능을 작성할 수 있고 사랑합니다.
  • 함수 호출 체인 이해: 예를 들어 함수 a()가 함수 b()를 호출하고 b()가 c() 및 e()를 호출하고 e()가 함수 c()를 호출하는 경우.
  • "순수한" 함수를 작성할 수 있고 순수 함수를 작성해야 하는 이유를 이해할 수 있습니다. 순수 함수란 무엇인지 나중에 설명하겠습니다.

기능은 간단해 보입니다. "무언가를 공부하는 것이 무슨 소용이 있겠습니까. 여기에 읽을 단락과 약간의 비즈니스가 있습니다. 그런 다음 배열, for, while ..." - 아니, 그렇지 않습니다. 기능은 겉보기에 단순한 방식으로 정렬되어 있습니다(괜찮습니다). 그러나 실제로 문제를 효율적으로 해결할 수 있으려면 기능이 특정 속성을 갖고 특정 방식으로 서로 결합해야 합니다 . 이 모든 작업을 수행하는 방법은 나중에 작성하겠습니다.

안녕하세요 바실리님! 어렵지 않다면 함수의 속성에 대해 계속 써주세요. 함수에는 특정 속성이 있어야 하고 특정 방식으로 서로 결합해야 한다는 것을 아는 것은 저뿐만 아니라 프로그래밍의 다른 초보자에게도 매우 중요하고 유용합니다.

기능과 관련된 모든 메시지 블록은 이미 단일 Word 파일에 수집되었습니다.

안부 인사를 전합니다. 블라디미르.

 
Aleksey Masterov :

... metaquotes MT5 팀에 원격으로 가입을 요청하세요!!!

알렉시, 장난해? 예, 먼저 기본을 배우고 싶습니다!

안부 인사를 전합니다. 블라디미르.