Experts: MQL5 Programming for Traders – 책의 소스 코드. 파트 7 - 페이지 4

 
wf2000cn #:

안녕하세요 @Stanislav Korotky, 저는 MQL5를 처음 사용하게 되었습니다. 웹소켓 사용을 위해 wss.zip 파일을 게시한 것을 찾았습니다. 사용 방법, 데모 또는 배울 수있는 것이 있습니까? 진심으로 감사드립니다!

거래 및 신호 복사를 위한 웹 서비스 프로젝트의 단계별 구현을 설명하는 섹션에서 알고리즘 트레이딩 책에서 몇 가지 예제를 찾을 수 있습니다.

MQL5 Book: Advanced language tools / Projects / Project plan of a web service for copying trades and signals
MQL5 Book: Advanced language tools / Projects / Project plan of a web service for copying trades and signals
  • www.mql5.com
As an end-to-end demonstration project, which we will develop throughout this chapter, we will take a simple, but at the same time quite...
 
Stanislav Korotky #:

거래 및 신호 복사를 위한 웹 서비스 프로젝트의 단계별 구현을 설명하는 섹션에서 알고리즘 트레이딩 책에서 몇 가지 예제를 찾을 수 있습니다.

알았어요, 먼저 배우겠습니다. 진심으로 감사합니다!
 

안녕하세요 스타니슬라프코로트키

반대 방향의 지정가 주문으로 부분 포지션 청산을 구현하려고 합니다.

예를 들어:

  • 2 랏 사이즈의 XAUUSD 매수 포지션이 있는 경우
  • 1 랏 사이즈의 XAUUSD에 매도 지정가 주문을 개설합니다.
  • 온트레이드트랜잭션 -> TRADE_TRADE_거래_딜_추가 (트랜잭션.유형) 이벤트 내에 있는

MqlTradeRequestSync reqs(transaction.symbol);

reqs.closeby(target_position_ticket_id, transaction.order);

위의 줄이 작업을 완료 할 수 있어야한다고 생각하지만 내 문제는 OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD ( transaction.type) 이벤트 핸들러 내에서 `target_position_ticket_id`를 가져 오는 방법또는 보류중인 주문이 채워질 때마다 마감 될 것으로 예상되는 target_position_ticket_id와 어떻게 든 연관시키는 것입니다.

보류중인
주문을 생성 할 때 보류중인 주문 주석에 'target_position_ticket_id'를추가하려고했지만 문제는 OnTradeTransaction-> TRADE_TRANSACTION_DEAL_ADD (transaction.type) 내에서MqlTradeTransaction 속성에 '주석'이 없기 때문에 주석에 액세스 할 수 없다는 것입니다

제발 도와 주시면 감사하겠습니다.

 
pauldic MqlTradeTransaction 특성에 'comment'가 없기 때문에 주석에 액세스할 수 없다는 것입니다.

책에서 closeby(ticket1, ticket2) 메서드는 헤징 계좌를 사용하고 있고 이미 티켓 티켓1과 티켓2로 2개의 오픈 포지션(매수 및 매도)을 가지고 있다고 가정합니다. 일반적으로 지정가 주문에 대해 TRADE_ACTION_CLOSE_BY 작업을 수행하는 것은 불가능하다고 생각합니다. 하지만 계좌가 네팅 모드에 있다면 반대 방향으로 지정가 주문을 넣고 트리거되면 그에 따라 기존 포지션을 수정할 수 있다고 생각합니다 - 즉, 청산하거나 부분 청산 또는 반전 (새 볼륨이 이전 볼륨보다 큰 경우)을 수행합니다.

 
웹소켓의 작은 패치 (단품 및 일괄).
파일:
wsprotocol.mqh  17 kb
wss.zip  16 kb
 
Stanislav Korotky #:
웹소켓의 작은 패치 (단품 및 일괄).
스타니슬라프코로트키 지속적인 업데이트에 감사드리며, 제가 파악하기 어려웠던 부분이 있습니다. MT5 "마켓 워치"에서 "심볼"을 마우스 오른쪽 버튼으로 클릭하고 "사양"을 클릭하여 프로그래밍 방식으로 모든 관련 속성을 볼 수 있습니다.

이러한 속성 중 하나는 첨부 된 그림에서 볼 수 있듯이 브로커와 분명히 다른 심볼의 "수수료"입니다. 그러나 프로그래밍 방식으로이 속성에 액세스 할 수 없습니다. 심볼의 수수료를 얻는 방법에 대한 단서를 알려주시겠습니까?


포지션필터로 작업할 때마다, 특히 EA를 처음 로드하거나 다시 컴파일할 때 로그에 "해결되지 않은 int 값을 열거형: 8 for MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". 여전히 잘 작동하고 아무것도 멈추지 않습니다.
 
pauldic #:
스타니슬라프코로트키 지속적인 업데이트에 감사드립니다. 제가 알아내려고 애쓰고 있는 것이 있습니다. MT5 "마켓 워치"에서 "심볼"을 마우스 오른쪽 버튼으로 클릭하고 "사양"을 클릭하여 프로그래밍 방식으로 모든 관련 속성을 볼 수 있습니다.

이러한 속성 중 하나는 첨부 된 그림에서 볼 수 있듯이 브로커와 분명히 다른 심볼의 "수수료"입니다. 그러나 프로그래밍 방식으로이 속성에 액세스 할 수 없습니다. 심볼의 커미션을 얻는 방법에 대한 단서를 알려주시겠어요?

안타깝게도 터미널 엔티티의 모든 속성에 MQL5를 통해 액세스할 수 있는 것은 아닙니다.

폴딕 #:
특히 EA를 처음 로드하거나 다시 컴파일할 때 PositionFilter로 작업할 때마다 로그에 "해결되지 않은 int 값을 열거형: 8 for MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". 여전히 정상적으로 작동하며 아무것도 중지하지 않습니다.

이는 MQL5의 해당 기본 제공 열거형에 일반적으로 연속적으로 할당되는 상수 사이에 간격이 있기 때문에 발생하는 경고일 뿐입니다. 이 간격은 MQL5가 지속적으로 변경되기 때문에 발생하며, 일부 상수는 더 이상 사용되지 않게 되었다가 제거될 수 있습니다. 소스 코드를 편집하여 이러한 경고를 방지할 수 있습니다.

 

이 책에 있는 toyjson2.mqhtoyjson.mqh를 대체하는 업데이트된 버전의 JSON 라이브러리인 toyjson3.mqh를 첨부합니다.

이 버전은 대용량 json 파일 처리에 최적화되어 있습니다. 간단하게 설명하기 위해 이전 버전은 구문 분석 중 텍스트 토큰화를 위해 StringSplit 함수를 사용하며, 이 호출은 조각화 및 추가 데이터 흐름을 예상하기 때문에 내부적으로 기가바이트의 예비 메모리를 요청할 수 있습니다. 구문 분석 후에는 해제되지만, MQL5 메모리 관리자는 연기된 방식으로 가비지를 해제하기 때문에 잠시 동안 예약된 상태로 유지할 수 있습니다.

이제 구문 분석 중에 메모리를 몇 배나 덜 사용합니다.

파일:
toyjson3.mqh  39 kb
 
이제 구문 분석 중에 지수가 포함된 부동 소수점 숫자(예: "1e-8"과 같은 과학적 표기법)가 올바르게 감지됩니다.
파일:
toyjson3.mqh  39 kb
 
Stanislav Korotky #:
웹소켓 클래스의 몇 가지 버그 수정 및 개선 사항을 첨부합니다.

이것이 바로 제가 필요했던 것입니다.

정말 고마워요.

제게는 이 사람 같아요.

https://clip.cafe/top-gun-maverick-2022/good-afternoon-ladies-gentlemen-s2/

Watch 'Good afternoon, ladies and gentleman, this is your savior speaking. Please fasten your...' | Top Gun: Maverick Clip
Watch 'Good afternoon, ladies and gentleman, this is your savior speaking. Please fasten your...' | Top Gun: Maverick Clip
  • clip.cafe
Watch the clip 'Good afternoon, ladies and gentleman, this is your savior speaking. Please fasten your...' from the movie Top Gun: Maverick on Clip.Cafe. Lt. Jake 'Hangman' Seresin: [after destroying the plane that almost killed Maverick and Rooster] Good afternoon, ladies and gentleman, this is your savior speaking. Please fasten your seat belts, return the tray tables to their locked an upright positions and prepare for landing. Bradley 'Rooster' ...