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

 
fxsaber :
이것이 올바른 공식이라면


, 그러면 테스터는 완전히 다른 방식으로 이러한 지표를 계산합니다. 나는 이 공식과 테스터가 보여주는 것(이익 제외) 사이의 결과에 현저한 차이가 있습니다.

나는 당신이 그것을 올바르게 얻을 것을 제안합니다. 캐치는 정확히 MT5가 수익성 있는 거래로 간주하는 것입니다.

 const double Profit = OrderProfit() + OrderCommission() + OrderSwap() ;

한 가지 또는 두 가지를 동시에 제거 하고 비교하십시오.

또는 여기(위의 내용이 도움이 되지 않는 경우) "="를 제거하십시오.

 if (Profit >= 0 )
 
Slava :

우리는 지금 무엇을 논의하고 있습니까? 에이전트를 비활성화하거나 테스트/최적화에서 기호를 사용할 수 있습니까?

두 가지 문제가 있다면 아마도 둘 다 논의하고 해결해야 할 것입니다. 아니면 불가능한가요?

1. 최적화 후에 에이전트가 꺼지는 이유는 무엇입니까?

2. 테스터에 문자 자동 추가가 중지되는 이유는 무엇입니까?

 
Artyom Trishkin :

한 가지 또는 두 가지를 동시에 제거 하고 비교하십시오.

또는 여기(위의 내용이 도움이 되지 않는 경우) "="를 제거하십시오.

MT5는 이렇게 계산합니다.

 double ProfitPlus = 0 ;   // Профит неотрицательных закрытых позиций.
double ProfitMinus = 0 ; // Профит отрицательных закрытых позиций.

int AmountPlus = 0 ;   // Количество неотрицательных закрытых позиций.
int AmountMinus = 0 ; // Количество отрицательных закрытых позиций.

for ( int i = OrdersHistoryTotal() - 1 ; i >= 0 ; i--)
   if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) && (OrderType() <= OP_SELL))
  {
     const double Profit = OrderProfit()+ (OrderCommission() / 2 ) + OrderSwap();
    
     if (Profit >= 0 )
    {
      ProfitPlus += Profit;
      AmountPlus++;
    }
     else
    {
      ProfitMinus += Profit;
      AmountMinus++;
    }      

     ProfitMinus += OrderCommission() / 2 ;
  }

const double PF = ProfitMinus ? -ProfitPlus / ProfitMinus : DBL_MAX ; // Профит-фактор.
const double Profit = ProfitPlus + ProfitMinus;                       // Профит

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


PS 예를 들어 MT5_PF = 1.89, MT4_PF = 2.01입니다.

 
fxsaber :
이것이 올바른 공식이라면


, 그러면 테스터는 완전히 다른 방식으로 이러한 지표를 계산합니다. 나는 이 공식과 테스터가 보여주는 것(이익 제외) 사이의 결과에 현저한 차이가 있습니다.

나는 당신이 그것을 올바르게 얻을 것을 제안합니다. 캐치는 MT5가 수익성 있는 거래로 간주하는 것입니다.

왜 const 수정자가 여기에 있습니까?

 const double Profit = OrderProfit() + OrderCommission() + OrderSwap();

또한 루프의 모든 반복에서 Profit 변수를 계산해야 합니다. 이 변수가 범위를 벗어나면 다시 초기화될 수 있지만... IMHO, const는 필요하지 않습니다.


질문에 대해 OrderCommission() + OrderSwap()을 제거하면 어떻게 될까요? - 우리는 커미션이 아니라 거래에 대한 이익에 대해 이야기하고 있습니까?

추신: 옵션으로 일반적으로 테스터는 잔액을 믿을 수 있으며 주문이 마감되었습니다. 잔액은 이전 잔액과 비교하여 변경되었으며 일반적으로 추측이 추측되지 않습니다. 소스를 찾으십시오. 유일한 것은 기사 https://www.mql5 .com/ru/articles/4226 입니다. 또한 이익 계산이 있지만 읽지 않았습니다.

Пользовательский тестер стратегий на основе быстрых математических вычислений
Пользовательский тестер стратегий на основе быстрых математических вычислений
  • www.mql5.com
Тестер стратегий, предоставляемый MetaTrader 5, имеет мощный функционал для решения разнообразных задач. С его помощью можно тестировать как сложные стратегии торговли корзинами инструментов, так и одиночные стратегии с простыми правилами входов и выходов. Однако такой обширный функционал нам пригождается далеко не всегда. Часто нам просто...
 
Igor Makanu :

왜 const 수정자가 여기에 있습니까?

또한 루프의 모든 반복에서 Profit 변수를 계산해야 합니다. 이 변수가 범위를 벗어나면 다시 초기화될 수 있지만... IMHO, const는 필요하지 않습니다.

재창조. 모든 것이 바로 거기에 있습니다.

질문에 대해 OrderCommission() + OrderSwap()을 제거하면 어떻게 될까요? - 우리는 커미션이 아니라 거래에 대한 이익에 대해 이야기하고 있습니까?

나는 위에 MT5 공식을 주었다. 이것은 스캘핑 TS의 PF를 계산할 때 심각한 왜곡을 생성합니다. 그리고 어떻게 PF가 플랫폼에 의존적일 수 있습니까? 명확해야 합니다.

 
zevs1980 :
이 문제는 이전 빌드의 분기에서 이미 제기되었습니다. 그래서 수정되지 않았습니다. 내 목발을 찾았습니다. 일부 에이전트(내 경우에는 10개 중 3개)를 끄고 0번 반복 후에 켜면 모든 것이 잘 됩니다. 때로는 프로세스에서 진실이 발생하고 일부 에이전트는 여전히 중지되지만 드물게 솔루션 알고리즘이 동일합니다.

죄송하지만 수동 조향은 옵션이 아닙니다. 자동 최적화 가 있습니다.

 
KENT3004 :

두 가지 문제가 있다면 아마도 둘 다 논의하고 해결해야 할 필요가 있을 것입니다. 아니면 불가능한가요?

1. 최적화 후에 에이전트가 꺼지는 이유는 무엇입니까?

2. 테스터에 문자 자동 추가가 중지되는 이유는 무엇입니까?

1. 테스터 로그를 보면 모든 것이 거기에 기록되어 있습니다.

2. 이것은 이미 수정되었습니다. 그러나 수정 사항이 있는 빌드가 없는 한 드래그 드롭을 사용할 수 있습니다(문자 추가가 중단된 이유에 대해서는 논의하지 않았지만 이러한 조건에서 계속 테스트할 수 있는 방법에 대해서는 논의했습니다)

 
fxsaber :

각 사용자 정의 기호에 대해 단일 실행을 교대로 실행합니다. 특정 시점부터는 테스터에서 경로를 볼 수 없지만 Market Watch에서 끌어서 놓기를 통해 여전히 선택됩니다. 또한 일정 시간이 지나면 작동하지 않습니다. 일반 문자를 선택하거나 사용자 지정 문자를 하나만 선택할 수 있습니다. 나머지는 불가능합니다. 아래 애니메이션은 이러한 상황을 보여줍니다.


재생산 및 수정했습니다. 고맙습니다.
 
Slava :

1. 테스터 로그를 보면 모든 것이 거기에 기록되어 있습니다.

2. 이것은 이미 수정되었습니다. 그러나 수정 사항이 있는 빌드가 없는 한 드래그 드롭을 사용할 수 있습니다(문자 추가가 중단된 이유에 대해서는 논의하지 않았지만 이러한 조건에서 계속 테스트할 수 있는 방법에 대해서는 논의했습니다)

신속하고 유용한 조언에 감사드립니다. 나는 사소하지만 불편한 작은 일에 대해 감히 "보고"합니다. 시작/중지 버튼은 도구/테스터 버튼을 닫아 불필요한 작업을 수행하도록 합니다. 그러나 매우 편리하지는 않습니다.
 
Edgar :
유전자 최적화에서는 많은 매개변수를 사용합니다. 옵션 수가 너무 많아 과학적 표기법(6.8768769e+21)으로 표시되면 0세대 이후 최적화가 에이전트의 절반(8개 중 4개)으로 계속됩니다. 로그에 언급이 없습니다. 최적화 자체는 괜찮지만 절반 로드에서는 두 배 더 깁니다.

동작이 항상 재현되는 것은 아니므로 수정되지 않은 것 같습니다. 어제는 받았는데 오늘은 없습니다. 아마도 그것은 고문에 달려 있습니다. 나에게 - 프레임이 있습니다. ex5의 크기는 약 0.5MB입니다. 메모리 8GB. Intel i7, 4코어, 8스레드. 이혼. 유죄 판결을 받지 않았습니다.