전문가를 고려합니다.

 

우리는 최대 감소에 대해 이야기하고 있었습니다. 테스터가 잘못 측정했다는 의견도 있다. 확인하기로 결정했습니다. 코드를 작성하여 EA에 포함하고 테스트 모드에서 실행했습니다. 테스터와의 결과가 일치했습니다. 코드는 아래에 게시됩니다.---

알고리즘의 정확성을 평가해 달라는 요청을 하고, 고저를 계산하지 않고 최대 드로다운을 계산할 수 있는지 알고 싶습니다.

 double MaxDrawDown;
int deinit() {
 Print ( "MaxDrawDown=" ,MaxDrawDown);
   return ( 0 );
} 

start(){ 
   static double MaxEquity;
   static double MinEquity;
         double DrawDown;
   static bool flag;
 
   if (!flag)
    {
     MaxEquity= AccountEquity ();
     MinEquity= AccountEquity ();
     flag = true;
    } 
   if ( AccountEquity ()>MaxEquity) 
    {MaxEquity= AccountEquity ();MinEquity= AccountEquity ();}
  
   if ( AccountEquity ()<MinEquity) 
    {MinEquity= AccountEquity ();}
  
  DrawDown=MaxEquity-MinEquity;
  
   if (DrawDown>MaxDrawDown ) 
    {MaxDrawDown=DrawDown;}
// ............остальной код советника
 

Sobsno 계산하지 않고은 무슨 뜻인가요? 실행하는 동안 최대값과 최소값이 모두 있었습니다.

논리 테스터 일대일. 문제는 온라인에서 이런 식으로 드로다운을 인식할 수 없다는 것입니다. 여전히 계산해야 합니다.

 
FAQ :

Sobsno 계산하지 않고은 무슨 뜻인가요? 실행하는 동안 최대값과 최소값이 모두 있었습니다.

논리 테스터 일대일. 문제는 온라인에서 이런 식으로 드로다운을 인식할 수 없다는 것입니다. 여전히 계산해야 합니다.

최고점과 최저점에 대한 질문은 OnGoing 게시물과 관련하여 발생했으며 일부 최고점과 최저점에 놀랐습니다. 그래서 고점과 저점 없이 최대 드로다운을 계산하는 다른 방법이 있지 않을까 생각했습니다.? 저것들. 계산이 맞습니까? 온라인에서는 어떤 문제가 발생합니까? 이 방법이 작동하지 않는 이유를 설명할 수 있습니까? 여러 어드바이저가 있고 그러한 코드로 각각에 대해 정의하는 것이 불가능할 경우 문제가 있다는 것을 의미할 수도 있습니다. 그런 뜻이라면 이해가 됩니다. 아니면 뭔가 다른가요?

 
히스토리(주문)에 따르면 균형 곡선만 복원할 수 있지만 각 순간에 열려 있는 주문의 수, 각 주문(통화)에 대한 마진 및 가격의 고가/저가를 기반으로 주식 곡선을 합성해야 하기 때문입니다. .
 
FAQ :
히스토리(주문)에 따르면 균형 곡선만 복원할 수 있지만 각 순간에 열려 있는 주문의 수, 각 주문(통화)에 대한 마진 및 가격의 고가/저가를 기반으로 주식 곡선을 합성해야 하기 때문입니다. .

EA를 시작한지 얼마 되지 않은 상태에서 아직 기록이 없는 경우 글로벌 변수 에 저장하여 주식의 고가와 저가를 계산하고 현재 및 현재 최대 하락을 계산할 수 없습니까? 아니면 내가 뭔가를 오해하고 있습니까? 또는 이미 어떤 종류의 역사가 있는 상황을 고려하고 있습니다. 예를 들어 스크립트를 실행하여 주문 내역을 고려하여 최대 손실을 계산하시겠습니까? 그렇다면 명확합니다. 그러나 우리가 방금 작업을 시작했고 히스토리가 없거나 존재하지만 EA가 이 코드로 출시된 순간부터 손실을 계산하고 싶습니다. 그러면 방해가 되는 것이 있습니까?

 
khorosh :

EA를 시작한지 얼마 되지 않은 상태에서 아직 기록이 없는 경우 글로벌 변수에 저장하여 주식의 고가와 저가를 계산하고 현재 및 현재 최대 하락을 계산할 수 없습니까? 아니면 내가 뭔가를 오해하고 있습니까? 또는 이미 어떤 종류의 역사가 있는 상황을 고려하고 있습니다. 예를 들어 스크립트를 실행하여 주문 내역을 고려하여 최대 손실을 계산하시겠습니까? 그렇다면 명확합니다. 그러나 우리가 방금 작업을 시작했고 히스토리가 없거나 존재하지만 EA가 이 코드로 출시된 순간부터 손실을 계산하고 싶습니다. 그러면 방해가 되는 것이 있습니까?


일부 변수에 무언가를 저장하는 것보다 Surgeon에서 형평성 지표의 표시를 읽는 것이 더 쉽습니다.
 
Reshetov :
일부 변수에 무언가를 저장하는 것보다 Surgeon에서 형평성 지표의 표시를 읽는 것이 더 쉽습니다.
나는 그 코드가 테스터에서 실행되도록 의도되었다는 것에 동의합니다. 나는 원칙적으로 올바르게 생각하는지 여부에만 관심이 있었습니다. 그렇지 않으면 OnGoing이 나에게 의구심을 불러일으켰습니다.
 
Integer :

걱정하지 마세요. 그는 여기에서 주제를 벗어난 많은 것들을 조롱했습니다. 심지어 주제에 관한 것도 아니었지만 완전히 제멋대로였습니다.
당신의 지원에 감사드립니다. 그렇지 않으면 내가 뭔가를 잘못 이해하고 있다는 의심이 들었습니다.
 
khorosh :

우리는 최대 감소에 대해 이야기하고 있었습니다. 테스터가 잘못 측정했다는 의견도 있다.

테스터는 자기자본의 최대 손실을 정확하게 측정하지만 이 순간의 잔액 상태를 고려하지 않아 이 측정이 넌센스가 됩니다.

즉, 공개 주문이 먼저 상승한 다음 100핍 하락하면 테스터는 100핍의 자기자본 손실을 줄 것이지만, 논리적으로 전략의 위험을 결정해야 하는 실제 손실은 0입니다. 그러한 계산은 전략 의 위험을 평가하는 데 쓸모가 없다는 것이 분명합니다.

 
khorosh :
당신의 지원에 감사드립니다. 그렇지 않으면 내가 뭔가를 잘못 이해하고 있다는 의심이 들었습니다.


일반적으로 최대 인출액은 최대 자산과 최소 자산의 차이가 아닙니다. 처음에는 MaxEquity=Equity, MinEquity=Equity, Drawdown=0입니다. 작업 과정에서: Equity>MaxEquity이면 MaxEquity-MinEquity로 드로우다운을 계산합니다. 얻은 값이 이전에 고정된 드로우다운보다 크면 더 큰 값을 기억하고 즉시 최소값을 재설정합니다. MinEquity=MaxEquity 및 기억 새로운 최대 MaxEquity=Equity.
 

빨간색 선은 감소를 나타내며 최대값을 찾아야 합니다 .