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

 
마법사_ :
Yur, 사람들을 위해 프로그램의 일반 버전 (또는 업그레이드 된 버전)을 만드십시오))

1. 헤더(따옴표 포함 및 제외), 데이터, 구분 기호, hawala zpt, dot.zpt, 표와 같은 이 유형의 표준 파일을 읽도록 합니다. 예시-

"날짜";"V1";"A77";"V23A";"대상"
2000년 1월 1일;4.999995E-03;1.499891E-03;-2.000213E-03;-5.000234E-03;1

2. 모델에 10개의 입력만 사용하되 많이 업로드할 수 있도록 한 다음
별도의 탭이나 kryzhiki에 (입구 선택) 또는 다른 것을 넣습니다.

3. 정규화 없이!(또는 비활성화됨), 데이터가 처음에 0을 기준으로 중앙에 있는 경우 변환 후
x-x.min / .... (또는 가지고 있는 모든 것) - 날아가)))

4. 임의성(또는 전환 가능)을 버리고 데이터를 두 부분으로 나누고 순서대로 계산하고 1에 대한 성공적인 예측의 %를 표시합니다(0의 경우 필요하지 않음).

5. 입력의 중요성을 음소거 - 좋습니다!

6. 표시되는 수식 외에도 완전한 수식도 표시됩니다!, 즉, 지금

두 배 x2 = 2.0 * (v5 + 1.0) / 2.0 - 1.0;
이중 결정 = -0.2632437547312642 -0.2634178652535958 * x2
+ 0.05267978803936412

필요한 -

대상 이름 = -0.2632437547312642 -0.2634178652535958 * 삽입 구조 x2= (2.0 * (v5 + 1.0) / 2.0 - 1.0)
+ 0.05267978803936412

성공하다 -

대상 이름 = -0.2632437547312642 -0.2634178652535958 * (2.0 * (v5 + 1.0) / 2.0 - 1.0)
+ 0.05267978803936412

즉, 빠른 연구를 위해 조금 더 많거나 덜 적합한 스트레이로 판명 될 것입니다. 그런 다음 간단한(욕심 없는) 등을 삽입할 수도 있습니다.
알고리즘, 선택 가능 ... 그렇지 않으면 stray는 거의 사용되지 않습니다. 파일을 편집하는 동안 보라 ... 다른 것을 사용하는 것이 더 쉽습니다 ...
버전 7은 어디에 있습니까?
아니요 ... 나는 모든 것을 좋아합니다. 꽤 강력한 프로그램으로 밝혀졌습니다. 소유라 100점
 
산산이치 포멘코 :

그래서 - 두뇌와 시간이 충분하지 않습니다.

대상 변수로 시작하여 의미에 따라 예측 변수를 선택한 다음 수학 등으로 다시 확인해야 합니다. 어쨌든 그 과정은 지루하고 나에게 공식화되지 않았습니다.

혀에서 바로 가져옵니다. 우리는 그렇게 알고 있습니다. 나는 밤새 생각에 잠을 자지 않았다. 우리는 IDEAL 출력에 대한 예측자를 기반으로 모델을 구축하고 있습니다. 드문 경우에 동시에 50-60% 일반화를 얻습니다. IDEAL 출력에 대한 입력을 찾는 것은 불가능하지는 않더라도 쉽지 않습니다. 글쎄요, 출력이 이상적이지 않다면 어떻게 될까요? 100% 일반화로 이어질 그런 실수를 하면 어떻게 될까요 ??? 따라서 우리는 입력 데이터가 무엇을 할 수 있는지 알아내고 이 NON-IDEAL 출력이 발생하면(오류가 있더라도) 미래에 살 권리가 있습니다. 처음에는 모델 자체와 출력 변수의 이중 최적화가 필요하다고 생각했습니다. 그러나 그때 그것이 나에게 떠올랐다. 이 강판을 사용하는 이유는 모델이 일반화의 60%를 학습했다면 공식을 지표에 대입하고 훈련 및 테스트 샘플에 대한 신호를 수신함으로써 시스템이 100% 작동하는 결과를 얻을 수 있기 때문입니다. 즉, 훈련 및 테스트 샘플에 대한 신호를 수신하고 이러한 신호에 따라 출력 변수를 변경하면 동일한 100% 훈련을 받게 됩니다. 따라서 결론. 50-60% 일반화 된 여러 모델을 받은 후 훈련 및 테스트 영역에서 점수 (얻은) 모델을 선택 합니다. 이것은 일반적으로 그녀가 주요 신호(충분한 이익을 가져온 신호)를 얻었고 그녀가 병합한 신호가 그다지 수익성이 좋지 않았음을 시사합니다(당신의 미소를 공유하면 그녀는 당신에게 두 번 이상 돌아올 것입니다). 가장 중요한 것은 우리가 얻은 기간이 끝날 때. 그래서 이런게.......
 
마법사_ :
4. 임의성(또는 전환 가능)을 버리고 데이터를 두 부분으로 나누고 순서대로 계산하고 1에 대한 성공적인 예측의 %를 표시합니다(0의 경우 필요하지 않음).

Forex에 jPrediction을 사용하려고 하면 이것이 아마도 추가해야 할 주요 사항일 것입니다. 데이터를 무작위로 두 부분으로 분할한 다음 첫 번째 부분에서 훈련하고 두 번째 부분에서도 잘 수행할 수 있는 많은 모델이 있습니다. 그러나 이러한 모델의 대부분은 새로운 데이터에 대해 비효율적입니다. Forex에는 지속적인 종속성이 없으며 임의 테스트 세트의 좋은 결과가 새 데이터에 대한 좋은 결과를 보장하지 않습니다. 모델이 Forex에 적합한지 확인하는 유일한 방법은 롤포워드 테스트입니다.

모델은 빨간색으로 표시된 데이터에 대해 좋은 예측 능력을 보여야 합니다. 이제 jPrediction에서는 이러한 테스트를 수동으로 수행해야 하며 각 테스트 케이스에 대해 다시 데이터를 입력해야 하므로 진지한 작업에는 적합하지 않습니다.
그리고 훈련+테스트 합산보다 테스트 데이터에 대한 점수만 보여주는 것이 낫다는 데 동의합니다.
jPrediction이 현재 제공하는 모든 추정치는 Forex에 부적절하며 오해의 소지가 있습니다.

그건 그렇고, R에 대한 캐럿 패키지에서 롤포워드가 수행되는 방법은 다음과 같습니다.

http://topepo.github.io/caret/splitting.html (시계열 데이터 분할 섹션)

library(caret)
caretObj <- train(x = trainData[, 1 :(ncol(trainData)- 1 )],
                  y = trainData[,ncol(trainData)],
                  trControl = trainControl(method = "timeslice" , initialWindow= 1000 , horizon= 300 , fixedWindow= TRUE ),
                  verbose = TRUE )

모델은 처음 1000개의 예제에서 학습된 다음 1001-1300개의 예제에서 테스트됩니다. 그런 다음 300만큼 이동하고 301-1300으로 훈련하고 1301-1600으로 테스트하는 식으로 훈련 예제가 다 떨어질 때까지 계속합니다.

 
마법사_ :
Yur, 사람들을 위해 프로그램의 일반 버전 (또는 업그레이드 된 버전)을 만드십시오))

1. 헤더(따옴표 포함 및 제외), 데이터, 구분 기호, hawala zpt, dot.zpt, 표와 같은 이 유형의 표준 파일을 읽도록 합니다. 예시-


2. 모델에 10개의 입력만 사용하되 많이 업로드할 수 있도록 한 다음
별도의 탭이나 kryzhiki에 (입구 선택) 또는 다른 것을 넣습니다.

3. 정규화 없이!(또는 비활성화됨), 데이터가 처음에 0을 기준으로 중앙에 있는 경우 변환 후
x-x.min / .... (또는 가지고 있는 모든 것) - 날아가)))

4. 임의성(또는 전환 가능)을 버리고 데이터를 두 부분으로 나누고 순서대로 계산하고 1에 대한 성공적인 예측의 %를 표시합니다(0의 경우 필요하지 않음).

5. 입력의 중요성을 음소거 - 좋습니다!

6. 표시되는 수식 외에도 완전한 수식도 표시됩니다!, 즉, 지금


7. 버전 7은 어디에 있습니까?
  1. 결론은 Excel에서 쉼표는 숫자의 정수 부분을 분수 부분과 구분하는 데 사용된다는 것입니다. 더 많은 구분 기호를 붙이면 다른 pribludy에서 선택을 편집하는 사람들이 jPrediction에서 탬버린과 함께 추가 춤 없이는 단순히 농장을 밀 수 없다는 것이 분명합니다. 저것들. 현재 모든 것이 스프레드시트와 어느 정도 호환 가능합니다. 현재 파서는 CSV 파일에 대해서만 구현되며 스프레드시트에 맞게 조정됩니다. 그러나 jPrediction은 OOP에 내장되어 있으며 인터페이스를 다른 형식으로 확장할 수 있습니다.
  2. 두 번째 요점은 jPrediction에 추가 설정이 없으며 앞으로도 없을 것입니다. jPrediction에서 사용자의 작업은 적절한 시간에 "Garbage in, Garbage out" 메시지 또는 모델을 얻기 위해 F8 키를 눌러 준비된 선택을 하는 것입니다. 알고리즘 학습, 프로그램 조정, 네트워크 아키텍처 설계, 작업에 대한 고품질 데이터 선택 측면에서 조사하지 않는 것과 같은 모든 종류의 소란을 좋아하는 사람은 다른 ML 패키지를 사용하도록 합니다. 현재 그러한 패키지가 많이 있으며 평생 동안 그 패키지를 둘러볼 수 있습니다. 머신 러닝의 핵심은 모델의 일반화 능력이 알고리즘과 해당 설정이 아니라 샘플 데이터의 품질에만 의존한다는 것입니다. 따라서 jPrediction에서 무언가를 조정하려고 하지 말고 선택에서 모든 문제를 찾아야 합니다.
  3. 포인트 2를 참조하십시오.
  4. 항목 2 참조
  5. -
  6. 공식을 표시하지 않고 모델을 다른 응용 프로그램으로 이식하기 위한 코드를 표시합니다. 현재 Java 애플리케이션으로 이식하기 위한 코드가 구현되었습니다. 나중에 모델 코드를 MQL로 이식할 계획입니다. 이러한 코드는 가능한 한 간결해야 하며 긴 발보가 되지 않아야 합니다. 따라서 불필요한 모든 것을 제거하고 자주 반복되는 모든 것을 별도로 제거했습니다.
  7. 프로젝트 사이트는 jprediction.com 에 있으며 최신 버전을 다운로드할 수 있는 "다운로드" 메뉴 항목도 있습니다.

누군가가 jPrediction의 무언가를 정말로 좋아하지 않는다면, 프로젝트는 GNU GPL 라이선스에 따라 오픈 소스로 열려 있고, 거기서 포크를 만들고, 거기에서 무언가를 변경하고 마무리하는 것은 금지되지 않을 뿐만 아니라 어느 정도 환영받기까지 합니다.

 
트레이더 박사 :

Forex에 jPrediction을 사용하려고 하면 이것이 아마도 추가해야 할 주요 사항일 것입니다. 데이터를 무작위로 두 부분으로 분할한 다음 첫 번째 부분에서 훈련하고 두 번째 부분에서도 잘 수행할 수 있는 많은 모델이 있습니다. 그러나 이러한 모델의 대부분은 새로운 데이터에 대해 비효율적입니다. Forex에는 지속적인 종속성이 없으며 임의 테스트 세트의 좋은 결과가 새 데이터에 대한 좋은 결과를 보장하지 않습니다. 모델이 Forex에 적합한지 확인하는 유일한 방법은 롤포워드 테스트입니다.

모델은 빨간색으로 표시된 데이터에 대해 좋은 예측 능력을 보여야 합니다. 이제 jPrediction에서는 이러한 테스트를 수동으로 수행해야 하며 각 테스트 케이스에 대해 다시 데이터를 입력해야 하므로 진지한 작업에는 적합하지 않습니다.
그리고 training+test 합산보다 test data에 대한 점수만 보여주는 것이 낫다는 데 동의합니다.
jPrediction이 현재 제공하는 모든 추정치는 Forex에 부적절하며 오해의 소지가 있습니다.

그건 그렇고, R에 대한 캐럿 패키지에서 롤포워드가 수행되는 방법은 다음과 같습니다.

http://topepo.github.io/caret/splitting.html (시계열 데이터 분할 섹션)

모델은 처음 1000개의 예제에서 학습된 다음 1001-1300개의 예제에서 테스트됩니다. 그런 다음 300만큼 쉬프트하고 301-1300으로 훈련하고 1301-1600으로 테스트하는 식으로 훈련 예제가 다 떨어질 때까지 계속합니다.

슈퍼 정보. 고맙습니다!
 
트레이더 박사 :

jPrediction이 현재 제공하는 모든 추정치는 Forex에 부적절하며 오해의 소지가 있습니다.

이들은 입증되지 않은 주장입니다. 일반 사람들이 넌센스라고 부르는 것. Walk Forward의 실효성을 입증하기 위해, jPrediction에서 얻은 모델과 Walk Forward 이후에 얻은 모델을 비교 연구한 결과를 "이"를 다시 확인할 수 있도록 제시해 주십시오. 그러한 결과가 당신의 말을 확인시켜준다면, 현재 jPrediction에 구현된 테스트 알고리즘을 Walk Forward로 교체하는 것이 합리적일 것입니다.

나는 경험에 의한 구현 및 검증 후에 겉보기에 "명백한" 아이디어가 "더미"로 판명되었다는 사실을 반복적으로 접했습니다. 아이디어의 아주 작은 부분만이 효율성을 제공하며 종종 "파일"로 추가 편집을 한 후에만 가능합니다. 아이디어는 세부 사항을 놓치기 때문입니다. 그리고 악마는 바로 이러한 세부 사항에 있습니다.

Linus Torvald(Linux 커널 창시자)는 "조만간 이론과 실천이 만나다. 그리고 실천은 항상 진리의 기준이 된다. 언제나!"라는 말을 되풀이하는 데 지치지 않습니다.

Walk Forward의 추가 문제는 각 최적화 기간 에 많은 모델을 얻는다는 것입니다. 이러한 모델 중 어느 것이 작동하는 것으로 남겨두어야 하며 어떤 기준으로 선택해야 합니까?

 
유리 레셰토프 :

이들은 입증되지 않은 주장입니다. 일반 사람들이 넌센스라고 부르는 것. Walk Forward의 실효성을 입증하기 위해, jPrediction에서 얻은 모델과 Walk Forward 이후에 얻은 모델을 비교 연구한 결과를 "이"를 다시 확인할 수 있도록 제시해 주십시오. 그러한 결과가 당신의 말을 확인시켜준다면, 현재 jPrediction에 구현된 테스트 알고리즘을 Walk Forward로 교체하는 것이 합리적일 것입니다.

나는 경험에 의한 구현 및 검증 후에 겉보기에 "명백한" 아이디어가 "더미"로 판명되었다는 사실을 반복적으로 접했습니다. 아이디어의 아주 작은 부분만이 효율성을 제공하며 종종 "파일"로 추가 편집을 한 후에만 가능합니다. 아이디어는 세부 사항을 놓치기 때문입니다. 그리고 악마는 바로 이러한 세부 사항에 있습니다.

Linus Torvald(Linux 커널 창시자)는 "조만간 이론과 실천이 만나다. 그리고 실천은 항상 진리의 기준이 된다. 언제나!"라는 말을 되풀이하는 데 지치지 않습니다.

Walk Forward의 또 다른 문제는 각 최적화 기간에 많은 모델을 얻는다는 것입니다. 이러한 모델 중 어느 것이 작동하는 것으로 남겨두어야 하며 어떤 기준으로 선택해야 합니까?

다투지 말아야 합니다. 우리는 매우 복잡한 연구 대상을 연구하고 있습니다. 여기에는 많은 가정이 있습니다. 그리고 이러한 가정은 과적합 및 샘플 외 유출로 이어집니다.

두 가지 간단한 규칙: 시장을 속이고 자신을 속이지 마십시오.

앞으로 걷기는 확실히 좋은 방법입니다. 그러나 주요 매개변수는 훈련의 깊이와 테스트의 길이입니다. 동시에(!!!), 앞으로의 결과가 최고가 되도록 이러한 매개변수를 정렬하면 Walk Forward! 따라서 그러한 좋은 방법조차도 샘플 외 데이터가 필요합니다. 즉, 하나의 큰 조각에서 앞으로 걷기 최적화를 반복적으로 수행합니다. 교차하지 않는 또 다른 조각에서 우리는 "훈련"에서 최고의 앞으로 걷기 매개변수를 시도하고 한 번 더 완전한 늑대를 앞으로 달리지만 한 번만 수행합니다. 결과가 좋으면 포함된 모델이 종속성을 캡처합니다. 결과가 좋지 않으면 좋지 않은 모델에서 Walk Forward를 재교육했습니다.

지연된 샘플에 대한 단일 테스트에도 동일한 문제가 존재합니다. 나는 지금 그것에 대해 작업하고 있습니다. 과적합에서 내 결과를 해방합니다. 교차 검증 결과는 최종 테스트를 위해 지연된 샘플링과 상관 관계가 있어야 합니다. 동시에 교차 검증을 위한 최상의 모델을 선택하면 샘플에서 대략적으로 최상의 결과를 얻을 수 있습니다. 그렇지 않으면 - 상관 관계가 없거나 음수인 경우 - Forex에 대한 부적절한 모델이 있으므로 변경해야 합니다.

 
유리 레셰토프 :

이들은 입증되지 않은 주장입니다. 일반 사람들이 넌센스라고 부르는 것. Walk Forward의 효과를 입증하기 위해 jPrediction에서 얻은 모델과 Walk Forward 이후에 얻은 모델을 비교 연구한 결과를 "이"를 다시 확인할 수 있도록 제시해 주십시오. 그러한 결과가 당신의 말을 확인시켜준다면, 현재 jPrediction에 구현된 테스트 알고리즘을 Walk Forward로 교체하는 것이 합리적일 것입니다.

나는 경험에 의한 구현 및 검증 후에 겉보기에 "명백한" 아이디어가 "더미"로 판명되었다는 사실을 반복적으로 접했습니다. 아이디어의 아주 작은 부분만이 효율성을 제공하며 종종 "파일"로 추가 편집을 한 후에만 가능합니다. 아이디어는 세부 사항을 놓치기 때문입니다. 그리고 악마는 바로 이러한 세부 사항에 있습니다.

Linus Torvald(Linux 커널 창시자)는 "조만간 이론과 실천이 만나다. 그리고 실천은 항상 진리의 기준이 된다. 언제나!"라는 말을 되풀이하는 데 지치지 않습니다.

Walk Forward의 또 다른 문제는 각 최적화 기간에 많은 모델을 얻는다는 것입니다. 이러한 모델 중 어느 것이 작동하는 것으로 남겨두어야 하며 어떤 기준으로 선택해야 합니까?

Reshetov에게 경의를 표하며 자전거 작성자는 "능력 일반화"와 같은 용어를 포함하여 태양 아래서 자신의 위치를 증명해야 합니다. Dr.Trader 의 입장의 편리함은 정확히 그가 표현한 아이디어의 수백만 사용자에 의한 이론 및 실제 검증에 대한 모든 필수 증거가 종종 수년 전에 그 이전에 만들어졌다는 사실에 있습니다. 그는 단지 사용의 구체적인 예를 제시합니다. 그리고 논의 중인 게시물의 정확성은 직관적인 수준과 이론적인 수준 모두에서 명백합니다.
 
알렉세이 버나코프 :

다투지 말아야 합니다.

동의한다. 그러나 이를 위해서는 해당 주제에서 입증되지 않은 비난의 수를 최소화해야 합니다. 가장 좋은 방법은 재확인 가능성이 있는 비교 연구 결과를 제시하는 것입니다.

알렉세이 버나코프 :

우리는 매우 복잡한 연구 대상을 연구하고 있습니다.

누군가는 일하고 누군가는 증거없이 전화합니다 (우리는 손가락을 가리 키지 않을 것입니다)

알렉세이 버나코프 :

다투지 말아야 합니다.

동의한다.

알렉세이 버나코프 :

여기에는 많은 가정이 있습니다. 그리고 이러한 가정은 과적합 및 샘플 외 유출로 이어집니다.

빵에 빵을 묻힐 수도, 주머니에 넣을 수도 없습니다. 따라서 모든 것을 경험적으로 검증해야 하며 검증되지 않은 가정을 허용하지 않아 레이크를 밟지 않고 샘플에서 오버트레이닝 및 유출을 방지해야 합니다.


알렉세이 버나코프 :

앞으로 걷기는 확실히 좋은 방법입니다. 그러나 주요 매개변수는 훈련의 깊이와 테스트의 길이입니다. 동시에(!!!), 앞으로의 결과가 최고가 되도록 이러한 매개변수를 정렬하면 Walk Forward! 따라서 그러한 좋은 방법조차도 샘플 외 데이터가 필요합니다. 즉, 하나의 큰 부분에서 Walk Forward 최적화를 반복적으로 수행합니다. 교차하지 않는 다른 부분에서 "훈련"에 대한 최상의 앞으로 걷기 매개변수를 시도하고 한 번 더 실행합니다. 결과가 좋으면 포함된 모델이 종속성을 캡처합니다. 결과가 좋지 않으면 좋지 않은 모델에서 Walk Forward를 재교육했습니다.

지연된 샘플에 대한 단일 테스트에도 동일한 문제가 존재합니다. 나는 지금 작업 중입니다: 과적합에서 내 결과를 해방합니다. 교차 검증 결과는 최종 테스트를 위해 지연된 샘플링과 상관 관계가 있어야 합니다. 동시에 교차 검증을 위한 최상의 모델을 선택하면 샘플에서 대략적으로 최상의 결과를 얻을 수 있습니다. 그렇지 않으면 - 상관 관계가 없거나 음수인 경우 - Forex에 대한 부적절한 모델이 있으므로 변경해야 합니다.

결론은 모든 방법에는 장점과 단점이 있다는 것입니다. 가정은 장점을 과장하고 단점을 고려하지 않습니다.

더 큰 요점은 최고의 품질 기준에 따라 모델을 선택할 수 있는 방법이 없으며 모든 방법이 거부 원칙에 따라 선택된다는 것입니다. 그들은 분명히 부적합한 것만 걸러냅니다. ML의 어떤 방법도 거부 후 남은 항목의 잠재적 적합성을 계산할 수 없습니다.

특히 고정되지 않은 환경에서. 일반화 능력 면에서 가장 적합해 보이는 모델을 선택하는 것이 가능하지만 내일 중앙 은행의 일부 지도자가 회의에서 방귀를 뀌고 모든 모델이 고갈될 것입니다.

 
유리 레셰토프 :


결론은 모든 방법에는 장점과 단점이 있다는 것입니다. 가정은 장점을 과장하고 단점을 고려하지 않습니다.

더 큰 요점은 최고의 품질 기준에 따라 모델을 선택할 수 있는 방법이 없으며 모든 방법이 거부 원칙에 따라 선택된다는 것입니다. 그들은 분명히 부적합한 것만 걸러냅니다. ML의 어떤 방법도 거부 후 남은 항목의 잠재적 유효성을 계산할 수 없습니다.

특히 고정되지 않은 환경에서. 일반화 능력 면에서 가장 적합해 보이는 모델을 선택하는 것이 가능하지만 내일 중앙 은행의 일부 지도자가 회의에서 방귀를 뀌고 모든 모델이 고갈될 것입니다.

그리고 있습니다. 실험적으로만. 이 모델을 샘플에서 적용하여 모델 선택(훈련 + 테스트 시)이 최선인지 여부를 이해할 수 있습니다. 이것은 다른 모델에 대해 수행할 수 있습니다. 표본에서 좋은 모형을 선택하면 표본에서 좋은 결과가 나온다는 것은 모형이 선택한 문제에 적합하다는 것을 의미합니다.
사유: