트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 3258 1...325132523253325432553256325732583259326032613262326332643265...3399 새 코멘트 Forester 2023.09.25 18:46 #32571 fxsaber #: 이 라인으로 인해 소비량이 거의 두 배로 증가했습니다. CMatrixDouble에서 matrix<double>로 전환한 것뿐입니다. 메모리 때문에 이 행렬 비교를 해야만 했습니다. 그리고 이 변환으로 인해 시간이 40% 증가했습니다. 주석 // Res = MatrixOut.ToMatrix(); matrix<double> Matrix1 = CorrMatrix(Matrix) - 10482307 mcs, 0 MB matrix<double> Matrix2 = Matrix.CorrCoef(false) - 28882536 mcs, 1717 MB 즉, 행렬을 터미널 행렬로 변환하지 않고 알글리보프 함수형으로만 작업하면 더 빠릅니다. Maxim Dmitrievsky 2023.09.25 23:04 #32572 fxsaber #: 파이썬은 위의 예제에서와 같은 크기의 원본 행렬을 계산하는 데 얼마나 걸리나요? import numpy as np import time def calc_corr_matrix(): arr = np.random.rand(15000, 100).astype(np.float32) corr_matrix = np.corrcoef(arr) size_in_mb = corr_matrix.nbytes / 1024**2 print("Array size:", size_in_mb, "MB") return corr_matrix start_time = time.time() corr_matrix = calc_corr_matrix() end_time = time.time() print("Time taken:", end_time - start_time, "seconds") Array size: 1716.61376953125 MB Time taken: 2.08686900138855 seconds 행렬 생성을 고려한 시간 측정 Maxim Dmitrievsky 2023.09.25 23:32 #32573 돌을 버려라 ) Aleksey Vyazmikin 2023.09.26 03:19 #32574 Maxim Dmitrievsky #:매트릭스 생성을 고려한 시간 측정 Array size: 1716.61376953125 MB Time taken: 4.784467697143555 seconds 구형 FX-8350에서 측정한 결과입니다. Aleksey Vyazmikin 2023.09.26 03:37 #32575 fxsaber #:이를 바탕으로 상관관계 행렬을 계산했습니다. 성능을 측정했습니다. 통계의 경우, 제가 얻은 결과는 다음과 같습니다. 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 2023.09.26 06:34:21.572 Test_Corr (USDJPY,H1) EX5: 3981 X64 Regular Release. 2023.09.26 06:34:21.572 Test_Corr (USDJPY,H1) TerminalInfoString(TERMINAL_CPU_NAME) = AMD FX-8350 Eight-Core 2023.09.26 06:34:21.572 Test_Corr (USDJPY,H1) TerminalInfoInteger(TERMINAL_CPU_CORES) = 8 2023.09.26 06:34:21.572 Test_Corr (USDJPY,H1) TerminalInfoString(TERMINAL_CPU_ARCHITECTURE) = AVX 2023.09.26 06:34:21.600 Test_Corr (USDJPY,H1) inRows = 100 inCols = 15000 2023.09.26 06:34:42.908 Test_Corr (USDJPY,H1) matrix<double> Matrix1 = CorrMatrix(Matrix) - 21308403 mcs, 1717 MB 2023.09.26 06:35:46.736 Test_Corr (USDJPY,H1) matrix<double> Matrix2 = Matrix.CorrCoef(false) - 63826475 mcs, 1717 MB 2023.09.26 06:35:48.481 Test_Corr (USDJPY,H1) IsEqual(Matrix1, Matrix2) = true 분명히 파이썬이 훨씬 빠릅니다. 이는 C도 더 빠르다는 것을 의미하므로 MQ가 비슷한 성능을 약속하면서 우리에게 무언가를 말하지 않는 것으로 나타났습니다.... 파이썬은 코드를 실행할 때 약 두 개의 코어에 대해 0.5초 동안은 병렬화가 적고 나머지는 하나의 코어에서 계산된다는 점에 유의해야 합니다. Maxim Dmitrievsky 2023.09.26 04:41 #32576 NumPy 라이브러리는 C로 작성되었습니다. Aleksey Vyazmikin 2023.09.26 04:43 #32577 Maxim Dmitrievsky #: NumPy 라이브러리는 C로 작성되었습니다. 네, 말이 되죠. 그래서 파이썬 래퍼가 MQL5와 같은 C 컴파일러보다 빠르다고 언급한 것입니다. Aleksey Vyazmikin 2023.09.26 04:45 #32578 여기 R ChatGPT에서 제공하는 혜택 set.seed(123) # Задаем зерно для воспроизводимости результатов calc_corr_matrix <- function() { #arr <- matrix(runif(15000 * 100), nrow = 15000, ncol = 100) arr <- matrix(runif(100 * 15000), nrow = 100, ncol = 15000) corr_matrix <- cor(arr) size_in_mb <- object.size(corr_matrix) / 1024^2 cat("Array size:", size_in_mb, "MB\n") return(corr_matrix) } start_time <- Sys.time() corr_matrix <- calc_corr_matrix() end_time <- Sys.time() cat("Time taken:", as.numeric(end_time - start_time), "seconds\n") 결과 > set.seed(123) # Задаем зерно для воспроизводимости результатов > calc_corr_matrix <- function() { + #arr <- matrix(runif(15000 * 100), nrow = 15000, ncol = 100) + arr <- matrix(runif(100 * 15000), nrow = 100, .... [TRUNCATED] > start_time <- Sys.time() > corr_matrix <- calc_corr_matrix() Array size: 1716.614 MB > end_time <- Sys.time() > cat("Time taken:", as.numeric(end_time - start_time), "seconds\n") Time taken: 27.92359 seconds > Aleksey Vyazmikin 2023.09.26 05:11 #32579 내가 알기로 파이썬은 정수 행렬로 작업 할 수 있으며 여기서는 속도가 다른 순서입니다. import numpy as np import time def calc_corr_matrix(): arr = np.random.randint(1, 101, size=(15000, 100), dtype=np.int32) corr_matrix = np.corrcoef(arr, rowvar=False) size_in_mb = corr_matrix.nbytes / 1024**2 print("Array size:", size_in_mb, "MB") return corr_matrix np.random.seed(123) # Задаем зерно для воспроизводимости результатов start_time = time.time() corr_matrix = calc_corr_matrix() end_time = time.time() print("Time taken:", end_time - start_time, "seconds") 코드가 올바른 경우 결과는 다음과 같습니다. Array size: 0.0762939453125 MB Time taken: 0.5172276496887207 seconds 계산 결과 자체의 정확성 / 비교 가능성에 대한 문제를 확인해야합니다. fxsaber 2023.09.26 05:23 #32580 fxsaber #:이것은 단순히 CMatrixDouble에서 matrix<double>로 전환하는 것입니다. 두 가지 방식으로 형식을 변환하는 데 실행 시간이 20% 더 걸립니다. 하지만 여전히 NumPy보다 훨씬(3배 이상) 느립니다. 1...325132523253325432553256325732583259326032613262326332643265...3399 새 코멘트 사유: 취소 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
이 라인으로 인해 소비량이 거의 두 배로 증가했습니다.
CMatrixDouble에서 matrix<double>로 전환한 것뿐입니다. 메모리 때문에 이 행렬 비교를 해야만 했습니다.
그리고 이 변환으로 인해 시간이 40% 증가했습니다. 주석 // Res = MatrixOut.ToMatrix();
즉, 행렬을 터미널 행렬로 변환하지 않고 알글리보프 함수형으로만 작업하면 더 빠릅니다.
파이썬은 위의 예제에서와 같은 크기의 원본 행렬을 계산하는 데 얼마나 걸리나요?
행렬 생성을 고려한 시간 측정
돌을 버려라 )
매트릭스 생성을 고려한 시간 측정
구형 FX-8350에서 측정한 결과입니다.
이를 바탕으로 상관관계 행렬을 계산했습니다.
성능을 측정했습니다.
통계의 경우, 제가 얻은 결과는 다음과 같습니다.
파이썬은 코드를 실행할 때 약 두 개의 코어에 대해 0.5초 동안은 병렬화가 적고 나머지는 하나의 코어에서 계산된다는 점에 유의해야 합니다.
NumPy 라이브러리는 C로 작성되었습니다.
네, 말이 되죠. 그래서 파이썬 래퍼가 MQL5와 같은 C 컴파일러보다 빠르다고 언급한 것입니다.
여기 R ChatGPT에서 제공하는 혜택
결과
내가 알기로 파이썬은 정수 행렬로 작업 할 수 있으며 여기서는 속도가 다른 순서입니다.
코드가 올바른 경우 결과는 다음과 같습니다.
계산 결과 자체의 정확성 / 비교 가능성에 대한 문제를 확인해야합니다.
이것은 단순히 CMatrixDouble에서 matrix<double>로 전환하는 것입니다.
두 가지 방식으로 형식을 변환하는 데 실행 시간이 20% 더 걸립니다. 하지만 여전히 NumPy보다 훨씬(3배 이상) 느립니다.