2010-04-15 9 views
0

상위 목표는 50 개 풀 중에서 서로 가장 낮은 상관 관계를 갖는 10 개 종목을 선택하는 것입니다 그래서 나는 다각화 된 포트폴리오를 가질 수 있습니다.엑셀 VBA를 사용하여 일일 가격 50 개 종목이 주어지면 10 종목을 선택하여 최소 상관 관계를 갖습니다.

저는 지난 3 년간의 야후 파이낸셜 데이터를 다운로드 한 다음 Correl 함수를 사용하여 50x50 상관 행렬을 계산하고 매일 닫는 데이터를 사용하여 VBA 매크로를 작성했습니다. 서로 가장 높은 상관 관계를 가지고있는 두 주식에 대한

  • , 그 중 하나를 제거 : 내가 지금까지 시도 무엇

    는 그냥 로컬 최대의 발견이다. 둘 사이에는 다른 모든 주식과의 평균 상관 관계가 높은 것을 제거하십시오.

  • 풀에서 주식을 제거 할 때 해당 행과 열을 삭제하여 더 작은 행렬을 제공합니다.
  • 10 개의 재고가 남아있을 때까지 반복하십시오 (10x10 매트릭스).

이미 이러한 문제를 해결하고 최적의 솔루션을 제공하는 알고리즘이 있는지 궁금합니다.

+0

저축으로 VBA 스크립트를 신뢰하는 것 ... –

+1

음, 안녕하세요, VBA는 은행원의 반올림을 사용합니다. :) –

답변

0

설명에서 완전히 확신 할 수는 없지만 STDEV 기능에 대한 도움말을 확인하고 싶습니다. 자세한 내용은 here을 참조하십시오.

대부분의 사람들은 수차를 가려내는 대신 비 수차를 선별하는 데 사용합니다 (또한 일괄 적으로 "문제 사례"를 식별하는 것과 같이 흔히 사용됩니다).

+0

STDEV가 아닌 CORREL 함수로 작업하고 있습니다. http://office.microsoft .com/en-us/excel/HP052090231033.aspx A 열에 A 주가가 있고 B 열에 B 주가가 있다고 가정하면 = CORREL (A : A, B : B) – correl

+0

을 사용하여 상관 관계를 계산합니다. 괜찮아. 내 무지 죄송합니다. 인내심에 감사드립니다. – Smandoli

0

MATRIX 패키지에는 PCA (Principal Component Analysis) 또는 ICA (Independent Component Analysis)를 사용하여보다 일반적이고 원칙적인 접근법을 수행 할 수있는 몇 가지 유용한 기능이 있습니다.