당사 팬 페이지에 가입하십시오
- 조회수:
- 211
- 평가:
- 게시됨:
- 업데이트됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
이 문서에서는MetaTrader 5의 시세를 Delphi 7으로 작성된 서버 애플리케이션으로 전송하는 예시를 소개합니다.
통신에는 TCP 프로토콜이 사용되며, 이를 통해 로컬뿐만 아니라 원격(예: 로컬 네트워크로 연결된 PC)으로도 데이터를 전송할 수 있습니다.
소켓 작업을 위해WinSock2 (wsock32.dll) 라이브러리가 사용됩니다.
그러나 MQL5에는 포인터를 다루는 메커니즘이 없고, DLL 호출 함수의 매개변수로 복잡한 데이터 유형을 전달할 수 없기 때문에 이 라이브러리의 함수를 직접 사용하는 것은 불가능합니다.
Expert Advisor와 소켓 라이브러리를 연결하는 중간 매개체 역할은 C++로 작성된 socket_mql5.dll 라이브러리가 담당합니다.
그림 1은 MetaTrader 5와 서버 애플리케이션 간의 상호작용 구조를 보여줍니다.

그림 1. MetaTrader 5와 서버 애플리케이션 간의 상호작용 개요
socket_mql5.dll 라이브러리에는 일방적인 데이터 전송을 위한 최소한의 함수 세트인 SocketOpen, SocketWriteData, SocketWriteString, SocketClose가 구현되어 있습니다. 호가는 데이터 형식과 문자열 형식의 두 가지 형식으로 전송할 수 있습니다. 형식 선택은 전문가 자문가의 "전송 데이터 유형" 입력 변수를 통해 구현됩니다.
서버 애플리케이션에 연결하여 각 틱에 대한 데이터를 전송하는 클라이언트를 구현하는 Expert Advisor의 작동 결과는 그림 2에 나와 있습니다.

그림 2. MetaTrader 5에서 서버 애플리케이션으로의 데이터 전송
아카이브에는 다음이 포함되어 있습니다:
- Expert Advisor;
- socket_mql5.dll 라이브러리(소스 코드는 VisualStudio 2008로 작성됨);
- TCP 서버 및 TCP 클라이언트(소스 코드는 Delphi 7로 작성됨).
MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/169
Time To Close v1.01 - MT5
촛불을 닫을 시간입니다. 동적 텍스트 색상. 백 테스트에 최적화되었습니다.
DailyHighLow Indicator for MQL5
데일리하이로우 인디케이터는 지정된 기간을 기준으로 차트에 고가 및 저가 수준을 표시하도록 설계된 메타트레이더 5(MQL5)용 다용도 도구입니다. 이 지표는 사용자 지정 가능한 기간과 가격 계산 방법을 통해 유연성을 제공하므로 의사 결정을 위해 주요 가격 수준에 의존하는 트레이더에게 특히 유용합니다.