위대하고 끔찍한 MT4 영원히 (또는 전환 전략을 올바르게 개발하는 방법) - 페이지 30

 
MT4에서는 세로 피보나치 수준을 따라 차트를 압축할 수 없습니다. 차트가 8000핍으로 제한되어 있는 것을 볼 수 없습니다.))) 해결 방법은 무엇입니까?
 

Forts에서 이상하게 밝혀졌습니다. 다음은 포지션 청산의 주요 부분입니다.

   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));
      }
       return false ;
    }
  }

다음은 전문가 로그에서 발췌한 것입니다. 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번의 반복 후에 종료되었습니다. 구조에 주문 티켓이 있지만 거래 티켓이 없는 이유는 무엇입니까?

특히 부분 마감을 사용하는 경우 어떻게 거래 티켓을 확실히 얻을 수 있습니까?

 
Vasiliy Pushkaryov 거래 티켓을 확실히 얻을 수 있습니까?

이것은 쉽게 설명할 수 없기 때문입니다. 많은 함정이 있습니다. 사용자가 문제 없이 작업할 수 있는 솔루션을 작성했습니다. 그러나 내부 구현에 대한 분석은 특별한 감정가를 위한 것입니다.

[삭제]  
mt4용 일반 테스터를 만들고 몇 년 안에 모두가 mt5를 잊어버릴 것입니다.
 
Dmitry Fedoseev # :

그리고 심각하게...

여기 유머 스레드

상향식 호환성은 소프트웨어의 기본 요구 사항 중 하나입니다. 이전 버전의 코드는 다음 버전에서 적절하게 인식되어야 합니다. 그렇지 않으면 개발자는 단순히 이전 개발을 버리고 새 개발을 제출합니다. 아무데도 가는 길.

(먼저 개발자) MQL4 코드를 MQL5 코드로 컴파일러가 필요하다는 데 전적으로 동의합니다.

 
Vladimir Baskakov # :
mt4용 일반 테스터를 만들면 몇 년 안에 모두가 mt5를 잊어버릴 것입니다.

Baskakov와 내 딸은 MT5, 전염성을 사용합니다 ...

 
나는 그녀에게 6개월 전에 지표를 약속했지만 한 번도 하지 않았다.
 
fxsaber # :

ResultDeal이 0이면 루프에서 백만 번 반복한 후에 0이 됩니다. 불변 매개변수입니다.

배치된 시장 주문이 OrderSend의 결과이기 때문입니다.

명확하지 않습니다. MqlTradeResult 구조에 대한 참조는 다음과 같이 말합니다.

마감 시 주문 티켓이 반환되었지만 거래 티켓이 없는 경우 TRADE_ACTION_PENDING 작업 유형이 발생했습니까?

또는 TRADE_ACTION_DEAL이고 거래 티켓이 "늦어" 구조에 들어가지 않을 수 있습니까?

저것들. 그러면 HistorySelect 기능을 통해 주문별로 거래를 검색하는 것이 더 낫습니까?

 

그리고 죄송합니다. 아팠습니다. 개발자: MT4 유지 관리를 위해 미친 비용과 부당한 비용을 발생시키지 마십시오. 이미 고급 전문가의 절반이 이 작업을 수행하고 있습니다.

MQL4-MQL5 컴파일러를 한 번 만들고 핵심에 집중하십시오. 경쟁자 중 최종 버전의 일관된 1 위를 달성하십시오.

 
Vasiliy Pushkaryov # :

명확하지 않습니다. MqlTradeResult 구조에 대한 참조는 다음과 같이 말합니다.

마감 시 주문 티켓이 반환되었지만 거래 티켓이 없는 경우 TRADE_ACTION_PENDING 작업 유형이 발생했습니까?

또는 TRADE_ACTION_DEAL이고 거래 티켓이 "늦어" 구조에 들어가지 않을 수 있습니까?

저것들. 그러면 HistorySelect 기능을 통해 주문별로 거래를 검색하는 것이 더 낫습니까?

SB의 PositionClose(Symbol) 메서드는 작업 유형 TRADE_ACTION_DEAL을 할당하지만.

거래 티켓이 있어야 하지만 존재하지 않는 경우가 많습니다.