본문 바로가기
트레이딩/메타트레이더 코딩

MQL5. 외부 프로그램으로 실시간 데이터 송신 . SendMessage, PostMessage, WM_COPYDATA

by i.got.it 2024. 9. 6.

 

 

 

 

 

 

 

 

개요 

- 메타트레이더5 . EA 에서 외부 프로그램(=프로세스) 으로  실시간 데이터 송신 가능. 

- 아래 이미지는 메타트레이더 (바이빗 MT5 )의 종목 챠트에 ea 배치하고 OnTick 시점에 ask, bid 등의  틱 정보를 외부 프로그램으로 실시간 송신 중.  

 

메타트레이더 에서 외부 프로그램으로 실시간 데이터 송신

 

- 아래 코드예는 64비트용으로 제작되었기 때문에 64비트인 메타트레이더5 에서만 정상 동작하며, 32비트인 MT4 에서는 정상 동작 안된다. 또한, 통신 상대방도 64비트 프로그램이어야 정상 통신 가능하다. 

 

 

SendMessage, PostMessage , FindWindow 

 

 

 

 

 

생성자: CCy_WindowMessage(string name_wnd_tgt, int msg = WM_USER + 1) - 대상 윈도우 이름과 메시지 ID를 초기화.

 

FindWindow(): 대상 윈도우 핸들을 찾고, 실패 시 오류 메시지 출력.

SendMessage(long wparam, long lparam): SendMessageW 함수를 사용해 메시지 전송.

PostMessage(long wparam, long lparam): PostMessageW 함수를 사용해 비동기로 메시지 전송.

 

사용 방법

  • 인스턴스 생성: CCy_WindowMessage msg("윈도우 이름", WM_USER + 1);
  • 메시지 전송: msg.SendMessage(wParam, lParam);
  • 비동기 메시지 전송: msg.PostMessage(wParam, lParam);

 

 

SendMessage with WM_COPYDATA

- 앞의  클래스 CCy_WindowMessage 의 SendMessage 호출하면서 WM_COPYDATA  송신. 

 

 

 

 

 

상위정리 

 

 

메타트레이더 5. 체계정리. 활용법/지식

MetaTrader 5  메타트레이더 5 , 메타에디터, MQL5 활용정보 체계정리. 본 글에서 주요 정리대상 정보  1. 메타트레이더 5 사용법.2. MQL5 언어 기반 "직접 코딩"하여 메타프레이더5에서 자동매매 달성

igotit.tistory.com

 

 

 


첫 등록 : 2024.09.06

최종 수정 : 2024.09.09

단축 주소 : https://igotit.tistory.com/5820


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5