MQL4 프로그래밍에 대한 온라인 책의 베타 버전 - Sergey Kovalev(SK.) - 페이지 3

 
Climber :
일주일 전에 처음으로 Meta Trader를 설치하고 사용해 보았습니다. 이 터미널은 이전에 내가 사용했던 것(Rumus 및 Forex Trader)보다 훨씬 더 편리한 것으로 나타났습니다. 2년 전 Forex에 대해 배우고 첫 데모 계정을 열었을 때 이 모든 것을 자동화하는 방법에 대한 질문에 괴로워했습니다. 터미널을 열자 메일 섹션에 Autotrading이라는 메시지가 표시되었습니다. 그리고 여기 있습니다))) 저는 이 책을 집중적으로 읽고 있으며 가까운 장래에 현재 전략에 대한 첫 번째 Expert Advisor를 쓸 수 있기를 바랍니다. 이전에는 프로그래밍과 전혀 관련이 없었고 프로그래밍을 배운다는 것은 상상조차 하기조차 어려웠습니다.)) 읽으면서 질문이 생겼지만 도중에 사라졌습니다. 질문이 나타나고 앞을 내다보고 만족했습니다. 몇 섹션 후에 답을 보았고 모든 것을 순서대로 읽기 위해 되돌아갔기 때문입니다. 저는 특히 과거 데이터에서 전략을 테스트하고 결과적으로 전략을 조정할 수 있는 기회에 매료되었습니다.
책을 주셔서 대단히 감사합니다.


놀라운. 당신은 새로운 MT 사용자입니다. 그리고 현재로서는 프로그래밍에 대해 거의 아무것도 모릅니다.

당신에게 일이 어떻게 진행되고 있는지 적어도 한 달에 2-3번 보고할 수 있습니다(원한다면 더 자주 할 수 있습니다). 매우 흥미로울 것입니다.

그 동안 실례가 된다면 질문이 있습니다. 여기에서 다음 섹션에서 답을 찾은 질문이 발생했다고 말합니다. 그런 상황이 생기지 않도록 글을 구성하려고 노력했습니다. 문제가 무엇인지 설명해 주시겠습니까?

 
SK. писал (а):
등산가 :
일주일 전에 처음으로 Meta Trader를 설치하고 사용해 보았습니다. 이 터미널은 이전에 내가 사용했던 것(Rumus 및 Forex Trader)보다 훨씬 더 편리하다는 것이 밝혀졌습니다. 2년 전 Forex에 대해 배우고 첫 데모 계정을 열었을 때 이 모든 것을 자동화하는 방법에 대한 질문에 괴로워했습니다. 터미널을 열었을 때 메일 섹션에서 Autotrading이라는 메시지를 보았습니다. 그리고 여기 있습니다))) 저는 이 책을 집중적으로 읽고 있으며 가까운 장래에 현재 전략에 대한 첫 번째 Expert Advisor를 쓸 수 있기를 바랍니다. 이전에는 프로그래밍과 전혀 관련이 없었고 프로그래밍을 배운다는 것은 상상조차 하기조차 어려웠습니다.)) 읽으면서 질문이 생겼지만 도중에 사라졌습니다. 질문이 나타나고 앞을 내다보고 만족했습니다. 몇 섹션 후에 답을 보았고 모든 것을 순서대로 읽기 위해 되돌아갔기 때문입니다. 저는 특히 과거 데이터에서 전략을 테스트하고 결과적으로 전략을 조정할 수 있는 기회에 매료되었습니다.
책을 주셔서 대단히 감사합니다.


놀라운. 당신은 새로운 MT 사용자입니다. 그리고 현재로서는 프로그래밍에 대해 거의 아무것도 모릅니다.

내가 당신에게 제안할 수 있습니다: 당신의 일이 어떻게 진행되고 있는지 적어도 한 달에 2-3번 보고합니다(원한다면 더 자주 할 수 있습니다). 매우 흥미로울 것입니다.

그 동안 실례가 되신다면 질문이 있습니다. 여기에서 다음 섹션에서 답을 찾은 질문이 발생했다고 말합니다. 그런 상황을 피하기 위해 글을 쓰려고 노력했습니다. 문제가 무엇인지 설명해 주시겠습니까?

옛날 옛적에 나는 프로그래밍을 몰라도 프로그램을 작성할 수 있는 내 작업을 용이하게 하기 위해 Sign of Misery 프로그램을 사용했습니다. 거기에서 수행되는 순서대로 작업을 지정하기만 하면 됩니다(훨씬 더 많은 가능성이 있지만 나는 주로 자동화기로 사용했습니다). Excel의 4개 열에 많은 값이 있다고 가정해 보겠습니다(지구 물리학의 전기 탐사 데이터, 20cm마다). 이 데이터의 추가 처리를 위해 미터(예: 0, 1, 2, 3, 4 ....)의 데이터만 가져와야 했습니다. 이 프로그램에서 키를 에뮬레이트하고 마우스 좌표를 변경하는 명령을 사용하여 동작 자동기를 만들었습니다. exe로 컴파일. 그러나 이것은 편향입니다. 이 프로그램에서는 때때로 레이블을 만들고 이러한 레이블로의 전환을 위한 조건을 설정해야 했습니다. Expert Advisor를 구축하는 문제에 관해서는 코드 구조에 대한 일반적인 관점을 상상했습니다. 그런데 책을 읽기 시작하면서 매 틱마다 반복되는 프로그램 구성 구조와 int start() 함수가 실행되는 동안 입찰가를 알아내면 다음과 같이 쓰여져 있어서 조금 헷갈렸습니다. 변수에 저장하고 항상 실행하는 경우 가격이 변경되고 프로그램이 새 가격을 기반으로 다른 작업을 수행할 수 있는 시점을 어떻게 알 수 있습니까? 나는 내 프로그램의 가격이 어떤 주기의 코드에 의해 업데이트될 것이라고 생각했고 지속적으로 요청했습니다. 나는 또한이 질문이있었습니다. 함수를 호출하고 실행할 때 그 뒤에 오는 함수가 더 실행될 것이라고 상상했지만 원래 지정된 함수를 호출 한 함수에 따라 제어가 반환되는 것으로 나타났습니다. 그러나 이 사실이 나에게 명확해졌기 때문에 나는 특히 행복했습니다. 이제 다음과 같은 종류의 질문이 있습니다. init 기능이 실행될 때 계정의 잔액 데이터를 기반으로 나를 위해 정렬된 주문 개시 가격을 계산하고 로트 크기를 계산하는 기능이 불리다; 완료 후 시작 기능의 실행이 시작됩니다. 여기에는 원하는 거래 가격에 대해 "대기" 코드가 포함되어 있으며, 오자마자 주문이 열립니다(이익 실현은 의도되지 않았습니다. TP 값이 점프하면 작동하지 않고 이 점프는 잠재적으로 TP 값보다 더 수익성이 높기 때문에 마지막으로 알려진 가격으로 주문을 마감하는 주문을 만들고 싶습니다. 현재 가격이 같거나 < 또는 > 지정됨) ; 그런 다음 지금까지 나에게 가장 신비한 것은 주문의 "종가" 가격을 기다렸다가 처음으로 돌아가기 위한 코드를 작성해야 하는 위치입니다. 이름에서 본 것처럼 섹션을 미리 보았습니다. 즉, 이 질문에 대한 답변이 있을 것 같습니다. 읽기를 끝내는 동안 열기 및 주문하기 섹션을 읽고 있습니다. 어제 아침부터 읽기 시작했다.
물론 업무 진행 상황에 대해서는 제 입장과 같이 소통 없이 보고하겠습니다)) 건설적인 소통을 바랍니다.
관심을 가져주셔서 감사합니다.
 

다음 메시지의 텍스트를 단락으로 나누십시오. 쓰여진 것의 의미를 이해하기 어렵다.

Climber :
그러나 책을 읽기 시작했을 때 나는 프로그램의 구조와 매 틱마다 반복되는 int start() 함수의 구조에 약간 혼란스러웠지만, 실행 중에 입찰가를 알아내면 다음과 같습니다. 변수에 작성되고 실행되는 동안 항상 저장되어 있는 경우 가격이 변경되고 프로그램이 새 가격을 기반으로 다른 작업을 수행할 수 있는 시점을 어떻게 알 수 있습니까? 내 프로그램의 가격은 지속적으로 요청하는 일부 주기의 코드에 의해 업데이트될 것이라고 생각했습니다.

프로그램이 실시간으로 작동하려면 새로운 가격이 등장한다는 사실과 이 가격 자체에 대한 정보를 주기적으로 받아야 한다는 점을 정확히 지적했습니다.

실제로 두 가지 방법이 있습니다.

첫 번째 방법은 무한 루프에서 일부 기능을 실행하고 주기적으로 가격을 요청하는 것입니다.
그러나 이 방법에는 다음과 같은 단점이 있습니다.
- 요청이 자주 발생하면 결과적으로 통신 채널에 과부하가 걸리고 PC 리소스가 낭비됩니다.
- 요청이 거의 없는 경우 요청 사이에 새로운 가격이 누락될 가능성이 있습니다.

두 번째 방법(MQ 기술에서 주요 방법으로 수용됨)은 필요한 코드를 실행하는 주도권이 터미널에 속한다는 점에서 근본적으로 다릅니다. 터미널은 서버로부터 정보를 수신하고 새로운 틱이 도착했음을 이해하고(새로운 가격의 사실과 가격 자체), 이를 기반으로 터미널은 start() 함수를 시작합니다. 이 모든 내용은 프로그램의 MQL4 섹션에 설명되어 있습니다.

등산가 :
이제 다음과 같은 종류의 질문이 있습니다. init 기능이 실행될 때 계정의 잔액 데이터를 기반으로 나를 위해 정렬된 주문 개시 가격을 계산하고 로트 크기를 계산하는 기능이 불리다; 완료 후 start.. 함수의 실행이 시작됩니다.

옳지 않다. init() 및 start()는 특수 함수입니다. 그것들은 자신의 속성에 따라(즉, 실행을 위해 호출되는 규칙과 조건에 따라) 클라이언트 터미널에 의해 호출됩니다. 이것은 특수 기능 단락에 설명되어 있습니다. init() 함수는 프로그램이 창에 로드될 때 한 번 실행됩니다. 그리고 매 틱마다 start()가 호출됩니다. 그것은 매우 편안합니다. 틱이 와서 새로운 가격을 가져옴 = 터미널은 실행을 위해 start()를 시작하며, 실행될 때까지 실행됩니다. 여기에 모든 계산과 로트 수 계산, 주문 시작/마감 조건 및 기타 모든 것을 삽입해야 합니다.

등산가 :
그런 다음 지금까지 나에게 가장 신비한 것은 주문의 "종가" 가격을 기다렸다가 처음으로 돌아가기 위한 코드를 작성해야 하는 위치입니다. 이름에서 본 것처럼 섹션을 미리 보았습니다. 즉, 이 질문에 대한 답변이 있을 것 같습니다. 읽기를 끝내는 동안 열기 및 주문하기 섹션을 읽고 있습니다.

어떤 질문을 가지고 있는지 판단하면 아직 프로그램을 작성할 필요가 없으며 지금 읽고 있는 것을 읽을 필요도 없습니다. 이러한 상황에서는 처음부터 책을 읽기 시작하는 것이 좋습니다. 앞서지 않고 일관되게. 그리고 그 과정에서 제시된 모든 예제는 수동으로 ME에 입력하고 PC에서 실행해야 합니다. 그리고 코드의 각 문자가 완전히 명확해질 때까지 다음 섹션으로 넘어가지 마십시오. Tick, Control, Function, Special Function, Operator의 개념을 살펴보고 일반적으로 용어집을 수시로 살펴보십시오.

등산가 :
물론 업무 진행 상황에 대해서는 제 입장과 같이 소통 없이 보고하겠습니다)) 건설적인 소통을 바랍니다.
관심을 가져주셔서 감사합니다.

조언을 정확히 이해하고 따르기를 바랍니다.

 
SK. (a)는 다음과 같이 썼다.

등산가 :
그런 다음 지금까지 나에게 가장 신비한 것은 주문의 "종가" 가격을 기다렸다가 처음으로 돌아가기 위한 코드를 작성해야 하는 위치입니다. 이름에서 본 것처럼 섹션을 미리 보았습니다. 즉, 이 질문에 대한 답변이 있을 것 같습니다. 읽기를 끝내는 동안 열기 및 주문하기 섹션을 읽고 있습니다.

어떤 질문을 가지고 있는지 판단하면 아직 프로그램을 작성할 필요가 없으며 지금 읽고 있는 것을 읽을 필요도 없습니다.

와우, 내 생각에 전문가의 구조가 나에게 도달했습니다.
여기에서 말씀에 빠르게 낙서했습니다.

초기화

시작

최대 미결 주문 수 = 1로 설정했습니다.

얼마나 많은 미결 주문을 확인하십시오.

1이 열려 있으면 주문 마감 기능을 호출합니다.

열려 있는 것이 없으면 "가격 및 로트 수 계산" 기능을 호출합니다.

--------------------------

1. 유리한 매매가격의 산정과 매수의 산정에 필요한 계산

--------------------------

현재 가격 요청;

현재 >= 최고 판매 가격인 경우

그런 다음 이미 정의된 로트 수와 동일한 판매 주문을 엽니다.

그렇지 않은 경우 현재 가격을 유리한 구매 가격과 비교하십시오.

현재 <= 최적 구매 가격인 경우

그런 다음 그에 따라 구매 주문을 엽니다.

--------------------------

주문 마감 함수 호출 ;

반품

초기화


제대로 이해하셨나요?
 
Climber :
제대로 이해하셨나요?

음, 일반적으로 맞습니다. :) 축하합니다. 항상 다른 것을 이해하는 것이 좋습니다.

그래도 내 충고를 받아들이십시오. 처음으로 돌아가야 합니다. 그리고 건너뛰거나 점프하지 않고 처음부터 교과서에서 제공하는 모든 코드를 PC에서 체계적으로 실행하십시오.

 
Parabellum :

이 책은 흥미로운 ROC 지표인 가격 변화율 지표를 제공합니다( https://book.mql4.com/en/samples/iroc ). 이 책이 교과서이고 저자가 반이나 분기점적 소스를 제공할 의무가 있는 것은 아니지만 지표의 발상이 너무 좋고 지연을 균등하게 하기 위해 약간 속임수를 썼습니다. 약하다.

그건 그렇고, 페이지 자체에 게시 된 지표의 텍스트는 코드에 두 가지 오타가 있으므로 컴파일 할 수 없습니다.
      Line_4 [ i ] = ( Line_1 [ i ] + Line_2 [ i ] + Line_3 [ i ]) 3 ; // Суммарный массив
      //-------------------------------------------------------- 17 --

      Line_5 [ i ] = Sum ( Aver_Bars + 1 ) ; // Индик. массив сглаженной линии
나누기 기호가 두 번 건너뛰었습니다(HTML 파일 생성 시 사라졌나요?).
본문에 링크된 인디케이터 파일은 정상입니다.
 
SK. писал (а):

음, 일반적으로 맞습니다. :) 축하합니다. 항상 다른 것을 이해하는 것이 좋습니다.

그래도 내 충고를 받아들이십시오. 처음으로 돌아가야 합니다. 그리고 처음부터 건너뛰거나 건너뛰지 않고 교과서에서 제공하는 모든 코드를 PC에서 체계적으로 실행하십시오.


예, 동의합니다. 읽은 내용의 결과를 보고 느끼는 것이 매우 중요합니다. 그러면 장기 기억에 고정됩니다. 특히 감정적 내용의 영향으로 하나 이상의 연관성이 나타납니다. :) 방법, 나는 또한 강조하고 싶었습니다. 흥미를 자극하기 위해서는 가장 중요한 챕터로 돌아가거나 사용해야하며 더 많은 관심 자체가 목표와 지식의 순환의 확장으로 이어질 것입니다. 우리 입장에서 가장 어려운 일은 우리가 소유한 모든 것의 효율성을 보기 때문에 가장 효과적인 주문을 개발하는 과정에서 정확히 무엇이 흥미로운지 이해하는 것입니다. 연관 메모리의 작업을 관리되는 메모리와 관련시킬 것입니다. 여기에서 할당된 영역은 그에 대한 링크(연관)가 하나 이상 있는 한 존재합니다. 연결이 많을수록 해당 영역이 해제되지 않을 가능성이 높아져 사용 및 후속 혜택. 이와 관련하여 읽은 내용을 통합하려면 협회의 재고를 지속적으로 보충해야합니다.

추신: 너무 지나쳤다면 죄송합니다 :)

 
timbo : 그런데 페이지 자체에 게시된 표시기의 텍스트는 코드에 두 개의 오타가 있어 컴파일되지 않습니다.
      Line_4 [ i ] = ( Line_1 [ i ] + Line_2 [ i ] + Line_3 [ i ]) 3 ; // Суммарный массив
      //-------------------------------------------------------- 17 --

      Line_5 [ i ] = Sum ( Aver_Bars + 1 ) ; // Индик. массив сглаженной линии
나누기 기호가 두 번 건너뛰었습니다(HTML 파일 생성 시 사라졌나요?).
본문에 링크된 인디케이터 파일은 정상입니다.


예, 있습니다. 지금까지 소스 코드에서 오류가 발견되지 않았으며 어떤 이유로 텍스트 코드가 손상된 곳입니다. 우리가 알아낼 것입니다.
 
xnsnet :

추신: 너무 지나쳤다면 죄송합니다 :)

:) 네, 조금 있습니다)))
 
책에 대한 메모가 하나 더 있습니다. 예를 들어 고양이가 아니라 돈이나 관련성에 대해 훈련한다는 의미에서 실제 옵션을 사용하는 것이 좋습니다. 예를 들어, 내가 루프 연산자에 도달했을 때 양이 요점에서 약간 산만해지면 우리 조건에서 어떻게 사용할 수 있는지에 대해 생각하기 시작하고 이는 인식 과정에서 주의를 산만하게 합니다.

주기는 이미 나에게 너무 빡빡했습니다 (이 섹션으로 한 번 이상 돌아올 것입니다). 그런 다음이 양이 있습니다.

제 생각에는 거래(거의 습격 :))의 특정 예가 고려된다면, 좋아요, 거래, 독자가 자신의 아이디어(아직 구현 방법을 모르는)와 유사한 예를 발견하면 그는 이 예제를 매우 흥미롭게 고려하고 아이디어를 구현하기 위해 수정 및 조정하는 방법에 대해 생각할 것입니다(내가 말하는 내용이 명확하다고 생각합니다).

그런 예가 있었는데 잔액의 1/3 금액으로 주문을 열 수 있는 방법에 관심이 있었습니다. 당신은 내가 1/3을 달러로 변환하기 위해 내 머리 속에 어떤 수학 연산을 했는지 모릅니다. 그래서 결국 나는 많은 숫자(0.1 또는 3.5 랏...)를 얻었습니다. 그리고 일부 중지 주문이 설정된 상태에서 무료 마진의 35%에 해당하는 구매 주문을 여는 openbuy.mq4 예를 보았을 때 얼마나 기뻤는지 모릅니다. 나는 그것을 위아래로 보았고, 모든 줄, 무엇을, 왜, 어디에서 파고 들었습니다. 어떤 종류의 표준 함수를 사용하는지 살펴보았다( MathFloor, MarketInfo....).