트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 3269

 
mytarmailS #:
그렇다면 이 모든 상관관계 연구의 최종 목표는 무엇일까요?

어떤 구현이 더 빠른지, 어떤 구현이 동일한 결과를 제공하는지, 어떤 구현이 그렇지 않은지 알아냈습니다. 이 지식으로 무엇을 할 건가요?

다른 사람들이 기술적 한계로 인해 계산할 수 없는 것을 계산할 수 있을 것입니다.

 
mytarmailS #:
또한 테스트 및 시각화 및 빠른 조치, 아마도

거래의 매개 변수를 선택하기 위한 최종 최적화도 정상입니다.

 
fxsaber #:

처음에는 매번 모든 줄을 세는 정면 변형을 시도했습니다. 제 스스로는 찾을 수 없었기 때문에 알글리브에 오류가 있다는 인상을 받았습니다.


결과는 종종 일치합니다.


하지만 어떤 상황에서는 그렇지 않은 경우도 있습니다.


항상 이런 식이라면 제 잘못이겠죠. 하지만 여기에는 뭔가 이상한 일이 벌어지고 있습니다.

내가 만든

Print(Matrix1);
Print("------------------");
Print(Matrix2);


Matrix2에는 처음 5개가 일치하고 그 다음에는 0이 있습니다.
Res.Col(Corr.Row(0), i); 를 Res.Row(Corr.Row(0), i)로 변경했습니다;

행렬은 비슷해졌지만 여전히 IsEqual은 통과하지 못합니다. 어딘가에 다른 문제가 있는 것 같습니다...
 
Forester #:

Res.Col(Corr.Row(0), i); 를 Res.Row(Corr.Row(0), i)로 변경했습니다;

잘못된 것 같습니다.

 
Forester #:
Made

Print(Matrix1);
Print("------------------");
Print(Matrix2);


Matrix2에는 처음 5개가 일치하고 그 다음에는 0이 있습니다.
Res.Col(Corr.Row(0), i); 를 Res.Row(Corr.Row(0), i)로 변경했습니다;

행렬은 비슷해졌지만 여전히 IsEqual은 통과하지 못합니다. 어딘가 다른 문제...

문제 발견

다음과 같아야 합니다.

for (int i = 0; i < (int)Matrix.Cols(); i++)
{
if (i)
Vector.SwapCols(0, i);

CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), Corr);

Res.Col(Corr.Row(0), i);
}

 
삼각형으로 세는 경우, 즉 끝부터 세는 경우 PearsonCorrM2의 속도를 2배로 높일 수 있습니다. 모두 100 줄을 세고 0-99, 99 및 100 번째가 모두 계산 된 99 줄을 세십시오. ...50 번째 줄을 모두 50 번째 등으로 복사 할 수 있습니다. 그리고 = 1 때문에 그 자체로 계산하지 마십시오.

추신
일반적으로 귀하의 코드는 아름답고 간결합니다. 나는 모든 것을 루프로 할 것입니다))))
 
Forester #:
삼각형으로 세는 경우, 즉 끝부터 세는 경우 PearsonCorrM2의 속도를 2배로 높일 수 있습니다. 모두 100 번째 줄을 모두 세고 0-99, 99 및 100 번째 줄이 이미 계산 된 99 개를 모두 계산하면됩니다. ... 50 번째 줄을 모두 50 번째 줄로 계산하는 식으로 복사 할 수 있습니다.
빠른 푸리에 변환을 통해 상관 관계를 빠르게 계산할 수 있다고 어딘가에서 읽었습니다... 또한 속도를 높이는 옵션으로.
 
잔액_a = a_mat - a_mat. column_means 잔액_b = b_mat - b_mat. column_means a_residual_sums = 잔액_a. column_sums b_residual_sums = 잔액_b. column_sums 잔액_제품 = dot_product( residuals_a. transpose, residuals_b)
sum_products = sqrt( dot_product( a_residual_sums, b_residual_sums))
상관 관계 = 잔여 제품 / 합계 제품 
 
mytarmailS #:
빠른 푸리에 변환을 통해 상관관계를 빠르게 읽을 수 있다는 글을 어디선가 읽었는데... 속도를 높이는 옵션도 있습니다.

나는 그것을했다. 문자열 길이가 클 때 의미가 있습니다. 언젠가 보여드릴게요.

 
Forester #:

문제 발견

다음과 같이 표시되어야 합니다.

맞습니다, 감사합니다! 왜 잘못된 옵션이 inCols <100에서 작동하는지 이해가 되지 않습니다.
사유: