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

 
fxsaber #:

저는 제 작업을 위해 만들었고 작업 코드를 공유했습니다. 필요한 사람은 누구나 볼 수 있습니다.

최종 코드는 어디에서 볼 수 있나요?

 

'이상값'으로 작업해 본 적이 있나요? 그리고 저는 이상값을 오류로 말하는 것이 아니라 드문 사건에 대해 이야기하고 있습니다.

재미있지만 일부 샘플 문자열에서 이상값이 예측자의 50% 이상에 기록되는 것으로 나타났습니다.....

이러한 이상값이 모델에 포함되는지 여부는 매우 쉽게 알 수 있습니다.

따라서 이것이 중요한 것은 NS에만 해당되는 것은 아닌 것 같습니다....

 
fxsaber #:

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

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

15000개의 샘플은 상관관계 행렬의 이차 크기 때문에 메모리가 제한됩니다. 샘플이 많을수록 좋습니다. 그래서 저는 백만 개의 샘플이 있을 수 있는 프로그램을 직접 만들었습니다.

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

가속의 변형-출력 매트릭스는 uchar에 저장해야합니다. 일반적으로 백분율을 1% 단위로 변경하고 무언가를 살펴봅니다. uchar - 최대 +- 128까지만 가능합니다. uchar에 대한 자체 설계를 수정할 수 있으며, 알글리브도 코드를 사용할 수 있습니다. 총 행렬은 동일한 메모리로 8배 더 커질 수 있습니다.

 
Aleksey Vyazmikin #:

'이상값'으로 작업해 본 적이 있나요? 저는 이상값을 버그라고 말하는 것이 아니라 드물게 발생하는 이벤트에 대해 이야기하고 있습니다.

재미있지만 일부 샘플 문자열에서 이상값이 예측자의 50% 이상에서 고정되어 있다는 것이 밝혀졌습니다.......

이러한 이상값이 모델에 포함되는지 여부는 매우 기꺼이 밝혀졌습니다.

따라서 이것이 중요한 것은 NS에만 해당되는 것은 아닌 것 같습니다....

화이트 / 블랙 스완 ... fxsaber는 그의 블로그에 그들에 대해 썼습니다. 나는 몇 년마다 약 1 주일 동안 거래하는 많은 변종 중에서 그러한 변종을 가지고 있습니다. 일반적으로 전문가는 앉아서 움직임을 기다립니다. 그러나 이것은 테스터에서 이상적인 성능입니다. 실생활에서 미끄러짐 (이동 중에 엄청나게 크다)은 모든 것을 망칠 수 있습니다.

 
Forester #:

화이트/블랙 스완..... fxsaber는 자신의 블로그에 이들에 대해 썼습니다. 많은 변종 중에서 저는 다음과 같은 것을 경험했습니다: 몇 년마다 약 일주일 동안 거래. 일반적으로 전문가는 앉아서 움직임을 기다립니다. 그러나 이것은 테스터에서 이상적인 성능입니다. 실생활에서는 미끄러짐 (이동 중에 엄청나게 크다)이 모든 것을 망칠 수 있습니다.

저는 이상값이 많은 샘플에서 선을 제거하려고 했습니다.

그리고 훈련이 근본적으로 바뀌었습니다.

테스트 초기에 평균적으로 플러스에서 좋은 결과가 있었고 시험에서 거의 모두 마이너스에서 좋은 결과가 있었다면 이것은 100 개 모델 중 하나이며 이상 치를 청소하면 결과가 변경되었습니다. 테스트 결과가 많이 악화되고 (평균 수익이 0에 가까움) 반대로 시험에서 많은 모델이 플러스가되었습니다.

아직 이것이 규칙적이라고 말할 준비가되지 않았으며 다른 샘플에서 확인하려고 노력할 것입니다.

게다가 이상값을 결정하는 가장 좋은 방법에 대한 질문은 여전히 열려 있습니다. 이제 순위가이 한도를 초과하지 않는 한 각면에 대해 최대 2.5 %까지 가져갑니다.

 
일반적으로 학습 후 몇 년이 지나면 모델이 새로운 데이터에서 갑자기 어떤 패턴을 발견하기 시작하는 주기가 있다는 느낌이 듭니다.
 
Aleksey Vyazmikin #:

샘플에서 이상값이 많은 행을 제거해 보았습니다.

그리고 훈련이 급격하게 바뀌었습니다.

테스트 초기에 평균 플러스에서 좋은 결과가 있었고 시험에서는 거의 모두 마이너스에서 좋은 결과가 있었다면 - 이것은 100 개의 모델에서 나온 것입니다 - 이상값을 정리하면 결과가 변경되었습니다 - 테스트 결과가 훨씬 나빠졌고 (평균 수익이 0에 가까워짐) 반대로 시험에서는 많은 모델이 플러스가되었습니다.

아직 이것이 규칙적이라고 말할 준비가되지 않았으며 다른 샘플을 확인하려고 노력할 것입니다.

게다가 이상값을 가장 잘 결정하는 방법에 대한 질문은 여전히 열려 있습니다. 이제 순위가이 한도를 초과하지 않는 한 각면에 대해 최대 2.5 %까지만 가져갑니다.

2.5%(또는 기타)만 취하면 이상값의 수가 분포에 따라 달라지는데, 이는 옳지 않습니다.

100개의 플롯으로 사분위수를 취하고 1% 이전과 99% 이후를 제거하지 않고 1%와 99%의 값으로 대체하는 것이 좋습니다. 아무것도 삭제할 수 없습니다.

 
fxsaber #:
NumPy는 성능이 크게 다르기 때문에 ALglib과는 다른 알고리즘을 가지고 있는 것 같습니다. 그러나 거대한 파이썬 커뮤니티 전체에서 이 문제를 연구하는 데 상당한 시간을 할애한 매우 강력한 알고리즘 전문가가 있다는 것은 분명합니다.

소스 코드가 공개되어 있으므로 살펴볼 수 있습니다. 상관 관계를 계산하는 함수, 오른쪽에 [소스]가 있으며 클릭하면 코드로 이동합니다. 우리는 2885-2907 줄에 관심이 있습니다. 2889번째 줄에서는 공분산이 사용되며, cov를 클릭하면 코드에서 cov에 대한 모든 언급이 오른쪽에 나타나고, def cov...가 있는 줄을 클릭하면 공분산 함수로 이동합니다. 를 클릭하면 공분산 함수로 이동하는 등의 방식으로 표시됩니다. MQL C 유사 언어, 모든 C 유사 언어는 ~ 90 % 유사하며 C #, Java, Python, JavaScript를 큰 문제없이 이해할 수 있습니다.

 
СанСаныч Фоменко #:

2.5 % (또는 기타)만 취하면 삭제 된 수가 분포에 따라 달라지며 이는 옳지 않습니다.

100개의 플롯으로 사분위수를 취하고 1% 이전과 99% 이후를 삭제하지 않고 1%와 99%의 값으로 대체하는 것이 좋습니다. 아무것도 삭제할 수 없습니다.

범위의 백분위수가 아니라 데이터의 백분위수를 취합니다. 따라서 데이터가 많으면(밀도가 높으면) 범위 스케일에서 멈추는 것이 빠릅니다.

평균과 분산에서 점프하는 것은 효과가 거의 없는 것으로 나타났습니다.

다른 값으로 대체하는 문제를 살펴본 결과(정량화를 위해서만 수행했지만), 확률을 고려하여 나머지 하위 집합의 임의의 값으로 대체하는 옵션이 마음에 들었습니다.

 
Aleksey Vyazmikin #:

저는 범위의 백분율이 아니라 데이터의 백분율을 사용합니다. 따라서 데이터가 많으면(밀도가 높으면) 범위 스케일에서 정지 속도가 빨라집니다.

평균과 분산에서 점프하는 것은 효과가 거의 없는 것으로 나타났습니다.

다른 값으로 대체하는 문제를 살펴본 결과(정량화를 위해서만 수행했지만), 확률을 고려하여 나머지 하위 집합의 임의의 값으로 대체하는 옵션이 마음에 들었습니다.

사 분위수는 확률입니다. 따라서 1% 미만/99% 이상 범위에 속할 확률이 있는 데이터나 다른 값을 제거/대체합니다. 수량을 잘라낼 수는 없습니다. 왜곡되고 꼬리가 있는 분포가 있기 때문입니다.

그들은 대체값을 MOE가 해당 수량을 예측한 것으로 간주하는 것이 가장 좋다고 씁니다. 하지만 그건 좀 과한 것 같습니다.

사유: