기고글 토론 "트레이딩에서의 수학: 샤프 및 소르티노 비율" - 페이지 3

 

가격의 로그 읽기

다른 참고 자료를 직접 찾아보세요.

 
Rashid Umarov #:

가격 로그 읽기

다른 참고 자료를 직접 찾아보세요.

또 다른 매우 중요한 뉘앙스는 이 스크립트에서는 샤프 계산 시 편일 변동이 있는 막대만 고려한다는 것입니다:

     
      //--- add only if equity has changed
      if(m_equities[i] != prev_equity)
        {  
         log_return = MathLog(m_equities[i] / prev_equity); // 증분 로그
         aver += log_return;            // 증분 평균 로그
         AddReturn(log_return);         // 증분 로그 배열 채우기
         counter++;                     // 반환 카운터
        }
      prev_equity = m_equities[i];

그런 다음 평균 변화를 해당 막대의 수로 나누어 구합니다:

//--- 증분 로그의 평균값
   aver /= counter;

그러나 연간 샤프 전환은 현재 TF의 모든 막대가 계산에 포함되는 것처럼 기간 비율을 기준으로 합니다:

//--- 다른 모든 경우에 연간 값에 대한 샤프 비율을 다시 계산합니다.
//--- 현재 기간 중 D1에 맞는 기간 수
   double factor = double(PeriodSeconds(PERIOD_D1)) / PeriodSeconds(timeframe);
   sharpe = sharpe * MathSqrt(factor);     // 일별 값으로 다시 계산
   sharpe = sharpe * MathSqrt(252);        // 매일에서 연간 가져오기

즉, 다시 한 번 : 스크립트는 주식 변동이있는 1 바당 평균 급락을 찾은 다음 연간 급락을 찾기 위해 1 년 동안의 해당 바 수가 아니라 1 년 동안이 tf의 (물론 그 근)를 곱합니다. 이는 잘못된 것이며 최종 수치를 과대평가하는 것입니다.

분명히 샤프도 테스터에서 같은 방식으로 계산되나요?

 
Kristian Kafarov #:
스크립트는 주식 변동이 있는 1바당 평균 샤프를 찾은 다음 연간 샤프를 구하기 위해 1년간의 해당 바 수가 아니라 1년간 이 TF의 (물론 그 근)를 곱합니다. 이는 오류이며 최종 수치를 과대평가하는 것입니다.

저도 그 점을 발견했습니다. 그래서 제 버전에서는 0 막대를 고려하는 옵션을 추가했습니다.