MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안 - 페이지 21

 

이제 테스터에서 지정가 주문은 배치/수정 틱에서 수락 여부를 확인하지 않습니다.

이 때문에 현재 가격 으로 지정가 주문을 하면 실행되지 않고 시장 규칙에 어긋납니다.


이 상황에서 테스터에 변경 사항이 있습니까?

 

테스터는 27시간 동안 12개의 스레드에서 실행되었습니다. 기억 속의 이상한 그림. 여기에서 응용 프로그램이 많은 메모리를 사용하지 않는다는 것을 알 수 있습니다.


또한 에이전트의 상태는 무료 이상입니다.



이미 하나의 스레드에서 작업이 완료된 인스턴스도 하나 있습니다. 스왑 메모리가 할당됩니다.


실행 중인 인스턴스를 닫습니다.

즉시 26GB가 해제되었습니다. 스레드가 메모리를 할당된 상태로 유지한다고 생각하십니까? Process Explorer는 그것을 보여줍니다. 각 인스턴스는 4GB를 보유합니다(하나 제외). 동시에 하나가 날아갔습니다 (12이어야 함).


문제는 개인 메모리를 사용하지 않음에도 불구하고 페이징 파일이 완전히 차면 동일한 크롬이 메모리 부족을 욕하기 시작한다는 점이다. 램은 반값...


두 번째 질문은 이것입니다. 왜 유전적 최적화는 쓰레드가 유휴 상태이고 하나의 쓰레드가 완료될 때까지 기다리는 상황을 자주 발생시키는가? 예상 스레드의 다양한 결과를 결정한 후 예측 계산으로 점수를 매기는 것이 합리적일까요? 아니면 몇 가지 매개변수를 다시 "흔들고" 다른 솔루션을 찾으시겠습니까?

추신. 나는 에이전트를 비활성화로 전환했다가 다시 활성화했습니다. 그들은 메모리를 먹는 것을 멈췄습니다. 하지만 디스크 캐시도 시작할 때 다시 생성될 것 같습니까?
 

자금 부족 이벤트에서 보류 중인 주문을 취소하는 시간 버그입니다.

취소 시간 대신 0시간(화면에 강조 표시됨)이 있습니다.

음, 상태는 취소 대신 배치됩니다.

 

이제 선택한 조각의 상황을 분석하기 위해


커서를 이동하고, 팝업 날짜를 기억하고, 런 차트를 열고, 거래 내역에서 원하는 위치로 이동하고, 테이블에서 해당 라인을 더블 클릭해야 합니다.


차트에서 더 높은 위치를 두 번 클릭하여 이 모든 것을 대체할 수 있습니까?

 
fxsaber :

차트에서 더 높은 위치를 두 번 클릭하여 이 모든 것을 대체할 수 있습니까?

제 생각에는 이것은 환상의 영역에서 매우 필요한 "기능"입니다 - 나는 그것을 지원합니다 !!!

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안

fxsaber , 2019.10.14 23:32

MT5 에서는 포지션 을 청산하고 손실을 입을 수 있습니다(개설 전 잔고가 청산 후 잔고보다 적음). 그러나 동시에 MT5-Tester(터미널이 확인하지 않음)는 이 거래를 수익성 있는 것으로 간주합니다.

재생을 위해 스케치된 조언자

 #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Ask SymbolInfoDouble ( _Symbol , SYMBOL_ASK )

void OnTick ()
{
   if (! OrderSelect ( 0 , SELECT_BY_POS))
     OrderSend ( _Symbol , OP_BUY, 1 , Ask, 0 , 0 , 0 );
   else if ((OrderProfit() > -OrderCommission()) &&
           (OrderProfit() < -OrderCommission() * 2 ) &&
           OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0 ))
     ExpertRemove ();
}


커미션이 있는 거래 서버에서 테스터를 실행합니다(이 서버에서 실행: ForexTimeFXTM-Demo01 ).

사진으로 결과.


스크린샷은 하나의 BUY 포지션이 있었고 총 손실로 마감되었음을 보여줍니다. 초기 잔액이 감소했습니다.


그리고 여기 왼쪽 열에는 고문이 손실을 입은 것으로 강조 표시됩니다.

이제 두 번째 열의 선택 항목을 살펴보겠습니다. 그리고 모든 것이 훌륭합니다. 긍정적인 매트입니다. 기다리세요, 100% 수익성 있는 거래!


이것이 고문이 수익성이없고 지표가 수익성있는 것과 동일하다는 것이 밝혀진 방법입니다. 따라서 PF 계산의 왜곡.


ZY 잠시 동안 예제를 작성했습니다. 순수 MQL5나 SB로 얼마나 쓸까 하는 생각이 들더군요. 게으름이 아닌 사람 - 시도하십시오.

 

테스터의 개요 탭에는 대화형 필터가 있는 매우 편리한 이전 작업 목록이 있습니다.

이 목록에는 어드바이저 이름이 경로 없이 표시됩니다. 이 때문에 이름은 같지만 폴더가 다른 두 명의 Expert Advisor가 있는 경우 목록에서 해당 항목에 해당하는 Expert Advisor를 이해(및 필터링)하는 것은 불가능합니다.


이 이전 작업 목록에 Experts 폴더의 경로와 함께 Expert Advisor의 이름을 표시할 수 있습니까?

나는 인디케이터를 사용하지 않지만, 인디케이터에 대해서도 동일한 작업을 수행하는 것이 좋습니다.

 
거래 수를 계산할 때 테스터는 CloseBy 거래의 양쪽을 모두 고려합니다. 따라서 잘못된 거래 수, 매트. 대기 등
 
조언자
 #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble ( _Symbol , SYMBOL_BID )
#define Ask SymbolInfoDouble ( _Symbol , SYMBOL_ASK )

int OnInit ()
{
   return (OrderCloseBy( OrderSend ( _Symbol , OP_BUY, 1 , Ask, 0 , 0 , 0 ), OrderSend ( _Symbol , OP_SELL, 
2, Bid, 0 , 0 , 0 )));
}


보고서에서 0만 발생합니다. 무역이 있었지만.


왜 = 1인지도 명확하지 않습니다. 소스에 없습니다.

 
fxsaber :
조언자


보고서에서 0만 발생합니다. 무역이 있었지만.


OnTester == 1인 이유도 명확하지 않습니다. 소스에 없습니다.

OnInit에서 거래가 이루어지나요? 코드에 GetLastError를 어떻게 사용하시겠습니까? 그리고 또 다른 질문. 함수 인수가 평가되는 순서가 확실합니까?