if (Trade.PositionClose(mSymbol))
{
// --- Введем задержку пока не получим номер сделки, но не более 2-х секундint cnt = 0 ;
ulong deal = 0 ;
while (((deal = Trade.ResultDeal()) == 0 ) && cnt < 20 ) { Sleep ( 100 ); ++cnt;}
if (deal == 0 )
{
ulong ttOrder = Trade.ResultOrder();
if ( HistoryOrderSelect (ttOrder))
{
ENUM_ORDER_STATE state = ENUM_ORDER_STATE ( HistoryOrderGetInteger (ttOrder, ORDER_STATE ));
LOG( "После закрытия позиции № сделки=0, Order=" + string (ttOrder) + " state=" + EnumToString (state));
}
returnfalse ;
}
}
다음은 전문가 로그에서 발췌한 것입니다. ResultDeal() 확인을 20회 반복한 후 거래(거래 티켓)가 0인 섹션을 누르십시오.
JL 0 10:08:04.462 e-MultiPattern-0.15 (RTS-9.21,M5) cStoploss::sortSL12 Дистанция контртренд=0 BID=172690.0, закроем Short JM 0 10:08: 06.695 e-MultiPattern-0.15 (RTS-9.21,M5) ** 333-cMyTrade::ClosePosition. После закрытия позиции № сделки=0, Order=16868286 state=ORDER_STATE_FILLED
다음은 터미널 로그에서 발췌한 내용입니다.
IG 0 10:08:04.465 거래 '733618': 시장에서 2 RTS-9.21 교환 구매 KN 0 10:08:04.480 거래 '733618': 시장에서 2 RTS-9.21 교환 구매 허용 OQ 0 10:08:04.481 거래 '733618': 실행을 위해 배치된 시장에서 2 RTS-9.21 교환 구매
FG 0 10:08: 04.517 거래 '733618': 주문 번호 16868286 2/2 RTS-9.21을 시장에서 52.326ms에 구매 완료 JN 0 10:08: 04.517 거래 '733618': 거래 #3413752 172780에서 2 RTS-9.21 구매 완료(주문 #16868286 기준)
SB의 작업과 MT5의 거래 논리에 정통한 사람을 알려주세요. 터미널 로그에서 주문과 거래 생성이 동시에 발생했습니다( 04.517 초).
그리고 while 루프의 어드바이저는 거래 티켓을 보지 못하고 06.695 초 동안 20번의 반복 후에 종료되었습니다. 구조에 주문 티켓이 있지만 거래 티켓이 없는 이유는 무엇입니까?
Forts에서 이상하게 밝혀졌습니다. 다음은 포지션 청산의 주요 부분입니다.
다음은 전문가 로그에서 발췌한 것입니다. ResultDeal() 확인을 20회 반복한 후 거래(거래 티켓)가 0인 섹션을 누르십시오.
JL 0 10:08:04.462 e-MultiPattern-0.15 (RTS-9.21,M5) cStoploss::sortSL12 Дистанция контртренд=0 BID=172690.0, закроем Short
JM 0 10:08: 06.695 e-MultiPattern-0.15 (RTS-9.21,M5) ** 333-cMyTrade::ClosePosition. После закрытия позиции № сделки=0, Order=16868286 state=ORDER_STATE_FILLED
다음은 터미널 로그에서 발췌한 내용입니다.
IG 0 10:08:04.465 거래 '733618': 시장에서 2 RTS-9.21 교환 구매
KN 0 10:08:04.480 거래 '733618': 시장에서 2 RTS-9.21 교환 구매 허용
OQ 0 10:08:04.481 거래 '733618': 실행을 위해 배치된 시장에서 2 RTS-9.21 교환 구매
FG 0 10:08: 04.517 거래 '733618': 주문 번호 16868286 2/2 RTS-9.21을 시장에서 52.326ms에 구매 완료
JN 0 10:08: 04.517 거래 '733618': 거래 #3413752 172780에서 2 RTS-9.21 구매 완료(주문 #16868286 기준)
SB의 작업과 MT5의 거래 논리에 정통한 사람을 알려주세요. 터미널 로그에서 주문과 거래 생성이 동시에 발생했습니다( 04.517 초).
그리고 while 루프의 어드바이저는 거래 티켓을 보지 못하고 06.695 초 동안 20번의 반복 후에 종료되었습니다. 구조에 주문 티켓이 있지만 거래 티켓이 없는 이유는 무엇입니까?
특히 부분 마감을 사용하는 경우 어떻게 거래 티켓을 확실히 얻을 수 있습니까?
이것은 쉽게 설명할 수 없기 때문입니다. 많은 함정이 있습니다. 사용자가 문제 없이 작업할 수 있는 솔루션을 작성했습니다. 그러나 내부 구현에 대한 분석은 특별한 감정가를 위한 것입니다.
그리고 심각하게...
여기 유머 스레드
상향식 호환성은 소프트웨어의 기본 요구 사항 중 하나입니다. 이전 버전의 코드는 다음 버전에서 적절하게 인식되어야 합니다. 그렇지 않으면 개발자는 단순히 이전 개발을 버리고 새 개발을 제출합니다. 아무데도 가는 길.
(먼저 개발자) MQL4 코드를 MQL5 코드로 컴파일러가 필요하다는 데 전적으로 동의합니다.
mt4용 일반 테스터를 만들면 몇 년 안에 모두가 mt5를 잊어버릴 것입니다.
Baskakov와 내 딸은 MT5, 전염성을 사용합니다 ...
ResultDeal이 0이면 루프에서 백만 번 반복한 후에 0이 됩니다. 불변 매개변수입니다.
배치된 시장 주문이 OrderSend의 결과이기 때문입니다.
명확하지 않습니다. MqlTradeResult 구조에 대한 참조는 다음과 같이 말합니다.
마감 시 주문 티켓이 반환되었지만 거래 티켓이 없는 경우 TRADE_ACTION_PENDING 작업 유형이 발생했습니까?
또는 TRADE_ACTION_DEAL이고 거래 티켓이 "늦어" 구조에 들어가지 않을 수 있습니까?
저것들. 그러면 HistorySelect 기능을 통해 주문별로 거래를 검색하는 것이 더 낫습니까?
그리고 죄송합니다. 아팠습니다. 개발자: MT4 유지 관리를 위해 미친 비용과 부당한 비용을 발생시키지 마십시오. 이미 고급 전문가의 절반이 이 작업을 수행하고 있습니다.
MQL4-MQL5 컴파일러를 한 번 만들고 핵심에 집중하십시오. 경쟁자 중 최종 버전의 일관된 1 위를 달성하십시오.
명확하지 않습니다. MqlTradeResult 구조에 대한 참조는 다음과 같이 말합니다.
마감 시 주문 티켓이 반환되었지만 거래 티켓이 없는 경우 TRADE_ACTION_PENDING 작업 유형이 발생했습니까?
또는 TRADE_ACTION_DEAL이고 거래 티켓이 "늦어" 구조에 들어가지 않을 수 있습니까?
저것들. 그러면 HistorySelect 기능을 통해 주문별로 거래를 검색하는 것이 더 낫습니까?
SB의 PositionClose(Symbol) 메서드는 작업 유형 TRADE_ACTION_DEAL을 할당하지만.
거래 티켓이 있어야 하지만 존재하지 않는 경우가 많습니다.