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

 
fxsaber #:
NumPy는 ALglib과 다른 알고리즘을 사용하는 것 같습니다.

Maxim의 CPU는 저보다 두 배나 빠릅니다. 그가 알글리바에 대한 타이밍을 제공했는지 기억이 나지 않습니다.

 
fxsaber #:

이전 버전의 알글립과 비교해 보세요. 속도가 느려졌다는 데이터는 없습니다.

당신은 표준이 현재 Alglib보다 느리다고 직접 썼습니다. 코드 형식에는 이전 버전이 있지만 터미널에는 없습니다.
 
Forester #:

맥심의 CPU는 제 것보다 2배 더 빠릅니다. 알글리바에 대한 타이밍을 알려줬는지 기억이 나지 않습니다.

타이밍.

트레이딩, 자동 트레이딩 시스템 및 테스트 트레이딩 전략에 관한 포럼

트레이딩의 머신러닝: 이론, 모델, 실습 및 알고리즘 트레이딩.

알렉세이 뱌즈미킨, 2023.09.26 05:19 AM

Array size: 1716.61376953125 MB
Time taken: 4.784467697143555 seconds

이것은 구형 FX-8350에 있습니다.


트레이딩, 자동매매 시스템 및 테스트 트레이딩 전략에 관한 포럼입니다.

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

알렉세이 뱌즈미킨, 2023.09.26 05:37 AM

통계의 경우, 제 결과는 다음과 같습니다.

2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   EX5: 3981 AVX Release.
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_NAME) = AMD FX-8350 Eight-Core 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoInteger(TERMINAL_CPU_CORES) = 8 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_ARCHITECTURE) = AVX 
2023.09.26 06:28:23.332 Test_Corr (USDJPY,H1)   inRows = 100 inCols = 15000 
2023.09.26 06:28:45.032 Test_Corr (USDJPY,H1)   matrix<double> Matrix1 = CorrMatrix(Matrix) - 21700095 mcs, 1717 MB
2023.09.26 06:29:48.495 Test_Corr (USDJPY,H1)   matrix<double> Matrix2 = Matrix.CorrCoef(false) - 63460976 mcs, 1717 MB
2023.09.26 06:29:50.225 Test_Corr (USDJPY,H1)   IsEqual(Matrix1, Matrix2) = true 
확실히 파이썬이 훨씬 빠릅니다. 따라서 C에서 더 빠를 것이므로 MQ가 우리에게 비슷한 성능을 약속하는 것이 아니라는 것이 밝혀졌습니다.....

파이썬은 코드를 실행할 때 약 2 개의 코어에 대해 0.5 초 동안 작은 병렬화가 있고 나머지는 하나의 코어에서 계산된다는 점에 유의해야합니다.

 
Forester #:
표준이 현재 알글리보프보다 느리다고 직접 작성하셨습니다. 코드 형식의 이전 버전은 있지만 터미널은 없습니다.

알글리브 소스 자체는 매트릭스를 위해 MQ에서 다시 작성했습니다. 표준 CorrCoef에 대해 논의하고 싶지도 않고 거기에는 명백한 문제가 있습니다.

즉, Alglib에는 두 가지 소스가 있습니다.

  • MQ 변환 이전의 동적 배열에 대한 원본.
  • 행렬/벡터 유형에 대한 수정된 MQ. 이것이 제가 테스트한 것입니다.
두 버전의 Alglib 소스를 모두 사용할 수 있어야 서로 비교할 수 있습니다.
 
fxsaber #:

타이밍.


네, 그렇습니다... 사람들은 알고리즘에 수년을 바칩니다. 코드가 더 복잡하고 불필요한 작업을 수행하는 것 같지만 프로세서의 사전 계산으로 인해 더 빠르게 작동하는 C++의 빠른 정렬에 대한 기사를 보았습니다. 앞으로...
 
fxsaber #:

Alglib 소스 자체는 매트릭스를 위해 MQ에서 다시 작성했습니다. 표준 코리코프에 대해서는 논의하고 싶지도 않습니다. 거기에는 명백한 문제가 있습니다.

즉, Alglib에는 두 가지 소스가 있습니다.

  • MQ 변환 이전의 동적 배열에 대한 원본.
  • 행렬/벡터 유형에 대한 수정된 MQ. 이것이 제가 테스트한 것입니다.
두 버전의 Alglib 소스를 모두 사용할 수 있어야 서로 비교할 수 있습니다.
저는 게으르거든요. 저는 상관관계를 사용하지 않습니다. 1년 전에 속도 차이를 발견하고 주제가 나왔을 때 공유했을 뿐입니다.
 
fxsaber #:
NumPy는 ALglib과 다른 알고리즘을 가지고 있는 것 같습니다.

AlgLib의 원본 문서에는 왜 다른지, 어떤 것이 다른지, 어떤 용도로 사용되는지 설명되어 있습니다. 회귀를 사용하면 (저는 주로 거기에서 AlgLib을 파고 들었습니다) 그것은 매우 독창적입니다.

다시 말하지만, 모든 것이 이상하게 비교됩니다. 다양한 라이브러리/실현에 대한 속도=f(차원성,특수_매트릭스_프로퍼티) 종속성 그래프를 작성하고 살펴보세요. 천장에서 가져온 엣지 케이스를 가져오는 것입니다.

그리고 거기서 절대값이 아니라 증상과 "고원"의 존재를 살펴봅니다. 거기에서 특정 데이터로 작업할 도구를 선택합니다.

 
Forester #:

맥심의 CPU는 제 것보다 2배 더 빠릅니다. 알글리바에 대한 타이밍을 알려줬는지 기억이 나지 않습니다.

가상화를 통해 MT가 있는데 테스트가 그다지 그럴듯하지 않을 것입니다.

게다가 저는 파이썬에서 무언가를 계산 한 다음 모든 플랫폼으로 전송하기로 선택했습니다. 예를 들어 암호화폐의 경우 터미널이 전혀 필요하지 않습니다.

속도 면에서 완전히 엉망입니다.
 
Maxim Kuznetsov #:

다시 말하지만, 이것은 비교할 수 없는 이상한 방식입니다.

저는 비교를 하는 것이 아니라 모든 사람이 자신의 사례에 맞게 측정할 수 있는 코드를 제공합니다.

문자열 길이 100은 패턴의 길이입니다. 그 이상은 필요하지 않을 것입니다.

15,000개의 샘플은 상관관계 행렬의 이차 크기 때문에 메모리가 제한됩니다. 샘플이 많을수록 좋습니다. 그래서 제가 직접 만든 샘플을 만들었는데, 백만 개를 사용할 수 있습니다.

저는 객관적인 비교를 할 의욕도 시간도 없습니다. 제 작업을 위해 만들었고 작업 코드를 공유했습니다. 필요한 사람은 누구나 볼 수 있습니다.

 
우리 노력의 5%라도 공통된 작업에 투입된다면 몇 달 안에 이 시장을 정복할 수 있을 것입니다.

그래서 수년, 수십 년 동안 모두가 자신의 수프에서 끓고 있으며 유용한 시간의 90 %가이 쓸모없는 포럼에 소비됩니다.
사유: