MQL5에서 함께 배우고 쓰기 - 페이지 16

 
AUser :
사람들! 프로그래밍 초보자에게 핸들로 작업하는 방법을 알려주십시오. 버퍼에 있는 파일이 무엇인가요? 작업을 위해 정보를 추출하는 방법은 무엇입니까?

바라보다:

MQL5 참조 / 기술 지표

MQL5 참조 / 시계열 및 표시기 액세스 / CopyBuffer

간단히 말해서, 핸들은 CopyBuffer 기능에서 사용하기 위한 프로그램에 의해 생성된 표시기의 복사본에 대한 포인터(링크)입니다.

초보자를 위한 기사도 참조하십시오. 그들은 그것에 대해 이야기합니다.

 
AUser :

그리고 현재 가격 의 값을 변수에 할당하는 방법을 알려주지 않습니까?

"Switching from MQL4 to MQL5" 기사에 익숙해지기가 더 쉬울 것입니다.

예, 문서 를 더 자주 살펴보는 것은 불필요한 일이 아닙니다.

그리고 이것은 SymbolInfoDouble 함수에 대한 예제의 질문에 대한 답변입니다.

 double ask= SymbolInfoDouble ( Symbol (), SYMBOL_ASK );
double bid= SymbolInfoDouble ( Symbol (), SYMBOL_BID );
 

AUser :

또한 과거 데이터를 표시기 핸들에 로드할 수 있는지 궁금합니다.

정확히 말하면 핸들은 이를 위한 것이 아니지만 "시계열 및 표시기 데이터에 대한 액세스" 섹션의 기능을 사용하여 데이터를 특수 배열에 로드합니다.

적어도 이러한 기능은 더 자세히 알아볼 가치가 있습니다.

복사 버퍼

지정된 표시기에서 지정된 버퍼의 데이터를 배열로 가져옵니다.

카피율

지정된 기호 및 기간에 대한 Rates 구조의 과거 데이터를 배열로 가져옵니다.

카피타임

해당 기호 및 기간에 대한 막대의 열림 시간에 대한 배열 기록 데이터를 가져옵니다.

복사 열기

해당 기호 및 기간에 대한 막대의 시가에 대한 과거 데이터를 배열로 수신

카피하이

해당 기호 및 기간에 대한 막대의 최고 가격에 대한 과거 데이터를 배열로 수신

낮은 복사

해당 기호 및 기간에 대한 막대의 최소 가격에 대한 과거 데이터를 배열로 가져옵니다.

복사닫기

해당 기호 및 기간에 대한 막대 종가에 대한 과거 데이터를 배열로 가져옵니다.

 

AUser :

그러나 지표의 역사로 인해 모든 것이 명확하지는 않습니다. 문제는 막대의 표시기 값을 비교하기 전에 표시기 배열에 누적되어야 한다는 것입니다. 글쎄요 - 15분 막대의 값을 기다릴 수 있지만 주간 막대는 어떻습니까? 나는 참고서를 살펴보았다 - 나는 이해하지 못했다))) 이것을 말해보자: CopyClose ( 해당 기호 및 기간에 대한 막대의 종가에 대한 과거 데이터를 배열로 검색) 데이터를 가져오지만 어떻게 지표 값을 강제로 계산할 수 있습니까? 여기서 이해가 안되는게 있습니다.


내가 알기로는 지표를 사용하여 Expert Advisor를 작성하고 있습니까?

핸들이 수신되고 명백한 문제가 없으면 CopyBuffer 를 사용하여 사용자 지정(사용자) 칠면조에서 데이터를 얻는 것이 수행됩니다. 표준 기술 지표의 경우 다음 기능 을 사용하는 것이 좋습니다.

이 코드는 버퍼 0에서 버퍼 배열로 20개 막대에 대한 데이터를 기록해야 하며 실제로 복사된 배열 요소의 수 또는 -1을 반환해야 합니다.

 int Res = CopyBuffer (MyHandle, 0 , 0 , 20 ,buffer[]);

동시에 20개의 막대는 0개의 막대에서 계산되므로 직렬성을 잊어서는 안 됩니다(자세한 내용 은 여기 참조 ). 여기 에서 추가 정보를 얻는 방법에 대해 자세히 읽을 수 있습니다.

 
AUser :
욕..무슨일이야

여기에 OrderSend 기능 에 대한 도움말 게시

 
AUser :
준비 없이는 이해하기 어려울 정도로 작성)

여기에 OrderSend 기능 에 대한 도움말 게시

나는 당신이 읽을 수 있기를 바랍니다. 그렇지 않으면 아무 것도 할 수 없습니다.

 

AUser , - Sergeev가 맞습니다. OrderSend 함수에는 두 개의 매개변수만 있습니다. MQL5 하드웨어를 공부하는 데 약간의 시간을 할애해야 합니다.

 
AUser :

쓴:

OrderSend(TRADE_ACTION_DEAL,Symbol(),1,SL,TP,10,ORDER_TYPE_BUY, ORDER_FILLING_CANCEL );

욕 .. 무슨 일이야?

실제 가격으로 사고 싶습니다.

1. 이 섹션이나 작업 예제에 대한 더 자세한 코드를 얻고 싶습니다.

2. 이 코드가 구현되는 언어를 즉시 결정하고 싶습니다.

3. 나는 사람들이 도움말을 읽는 방법을 배우기를 원합니다. 이 경우 OrderSend 기능에 대한 설명을 읽으십시오.

이 경우 이 조각으로 충분합니다!

OrderSend() 함수는 거래 서버에 요청을 보내 거래 작업을 수행하도록 설계되었습니다.

bool 주문 보내기 (
    MqlTradeRequest&    요청 , // 요청 구조
    MqlTrade결과(&)    결과         // 응답 구조
);

4. 사람들이 구조에 대해 더 많이 배우기를 바랍니다. MqlTradeRequest MqlTrade결과

5. 나는 적어도 누군가가 CTrade 와 같은 멋진 것을 알게 되었으면 합니다(이 클래스의 스터핑은 \MQL5\Include\Trade\Trade.mqh 파일에 있습니다)

EA의 적용 예는 표준 EA - MACD 샘플에서 찾을 수 있습니다.

CSampleExpert 클래스에서 시작하여 CTrade coass의 다음 기능에 이르기까지 주문에 어떤 일이 발생하는지 알아보는 것이 더 좋을 것입니다.

a) PositionOpen - 주어진 매개변수로 위치를 엽니다.

b) PositionModify - 지정된 기호의 위치 매개변수를 변경합니다.

b) PositionClose - 지정된 기호의 위치를 닫습니다.

추신

결론적으로, 나는 사람들이 도움말을 읽을 뿐만 아니라 표준 라이브러리의 파일에서 정보를 검색할 수 있기를 바랍니다( Ctrl+Shift+F 키 조합에 익숙해지면 좋을 것입니다) 및 예제에서 이 사이트에 있습니다( 코드 베이스 는 사용 방법을 안다면 강력합니다).

 

Sleep() 함수 에 대한 질문입니다. Expert Advisor에서 이 기능을 사용하면 이 Expert Advisor의 실행만 일시 중지되고 프로세서(커널) 리소스가 이 커널의 작업 목록에서 다음 작업으로 이전된다는 것을 올바르게 이해하고 있습니까? 즉, Sleep() 함수가 Expert Advisor가 처리되는 스레드의 속도를 늦추지 않고 현재 Expert Advisor와 특정 코어가 선택한 다른 프로그램 사이를 전환하는 역할을 하는 것이 맞습니까?

Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Общие функции / Sleep - Документация по MQL5
 

MqlTradeResult 구조 에 대한 질문입니다. 기본 요청 검증이 성공한 시간(또는 이와 유사한 것)에서 시간 필드를 찾지 못했습니다. MqlTradeResult 구조에 추가 시간 필드를 도입하는 문제가 제기되었는지 기억하는 사람이 있습니까? 예약 주문이 갑자기 역사에 남을 경우 이를 해결해야 했습니다.

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