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

 
알렉세이 비아즈미킨 :

예, 특히 Python에서 즉시 실행하는 경우 기본 설정이 잘 제공됩니다. 그러나 이것은 나에게 충분하지 않습니다.

지글거리는 쇼는 사실입니다. Anna Veronika는 더 잘 말하지만 동시에 그녀는 더 많이 춤을 춥니다.

 
막심 드미트리예프스키 :

지글거리는 쇼는 사실입니다. Anna Veronika는 더 잘 말하지만 동시에 그녀는 더 많이 춤을 춥니다.

잘 모르겠어 눈치채지 못하고 보통 가속모드로 본다.

어쨌든 창작자들의 답변이 필요한 질문들이 있는데, 어디에 물어봐야 할지 모르겠다.

 
알렉세이 비아즈미킨 :

잘 모르겠어 눈치채지 못하고 보통 가속모드로 본다.

어쨌든 창작자들의 답변이 필요한 질문들이 있는데, 어디에 물어봐야 할지 모르겠다.

아마 github에

 
막심 드미트리예프스키 :

아마 github에

거기에있는 모든 사람들은 영어를 사용합니다. 어디로 갈 수 있습니까? :)

 
알렉세이 비아즈미킨 :

거기에있는 모든 사람들은 영어를 사용합니다. 어디로 갈 수 있습니까? :)

Python이 아닌 R을 펌핑해야 하는 것 같습니다. Renat는 곧 목발이 없는 직접 링크가 있을 것이라고 썼습니다.

저것들. catboost는 mt5에서 1줄로 실행할 수 있습니다.

 
막심 드미트리예프스키 :

Python이 아닌 R을 펌핑해야 하는 것 같습니다. Renat는 곧 목발이 없는 직접 링크가 있을 것이라고 썼습니다.

저것들. catboost는 mt5에서 1줄로 실행할 수 있습니다.

일반적으로 R .... 아래에서는 catboost를 실행할 수 없었습니다. 물론 제 손이 비뚤어진 것일 수도 있습니다. 무리가 있으면 좋지만 여전히 최적화를 실행할 수 없으며 응답 속도도 문제입니다...

 

훈련 및 검증(훈련이 중단되고 모델이 선택되는 기준)에 대한 샘플 분석의 영향에 대한 연구를 완료했습니다.

사용된 샘플은 2014년부터 2018년까지이며 20%마다 약 1년이 사용됩니다. 방법론은 이렇습니다. 저는 일반 샘플을 취하고 검증 샘플을 10% 늘리고 훈련 샘플을 같은 10% 줄이기 시작하여 9개의 샘플 세트를 얻었습니다. 각 샘플에 대해 1에서 200까지의 Seed를 사용하여 모델을 만들었습니다. 샘플당 총 200개 모델, 총 1800개 모델.

모델은 훈련에 참여하지 않은 2018년 고정 샘플에서 테스트되었습니다.

상품 - 접착 선물 계약 Si.

아래 표는 모델 생성 결과를 판단할 수 있는 지표를 보여줍니다. 왼쪽은 터미널에서 보는 것과 같이 재무 지표이고 오른쪽은 오류 균형 지표입니다. 누군가가 일반적으로 사용하는 경우 올바른 방법을 모릅니다), 즉. 대상 1이 올바르게 결정된 경우 +1, 정확하지 않은 경우 -1, 전체 샘플에서 분류 품질을 평가할 수 있습니다. 연한 녹색은 평균적으로 최고의 성능을 표시했습니다.

아래는 모델의 메트릭입니다.

그 결과 2014년(80% -90%)의 훈련이 최악의 결과를 보인 반면 70%의 실패는 유의미한 것으로 나타났으며, 이는 오히려 표본 크기가 작지 않은 것이 아니라 2014년의 패턴이 거의 찾을 수 없습니다. 시장이 크게 바뀌었으므로 이론적으로 이 기간을 교육에서 완전히 제거할 수 있습니다.

이제 테스트(시험) 샘플에서 모델을 선택하기 위해 다음 기준을 사용합니다.

if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM < 30 && Proc_Max_Balans> 70 && Proc_Min_Balans < 30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;

다음은 이 기준을 충족하는 모델 수에 대한 데이터입니다.

아래 표에서 다음 기준에 따라 세 가지 샘플 모두의 지표를 고려하지 않은 선택된 모델의 수

if(t==0)if (FinRez>10000 && DD_Balans_Proc_DMM < 30 && Proc_Max_Balans> 70 && Proc_Min_Balans < 30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_01=1;
if(t==1)if (FinRez>3000 && DD_Balans_Proc_DMM < 30 && Proc_Max_Balans> 70 && Proc_Min_Balans < 30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_02=1;
if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM < 30 && Proc_Max_Balans> 70 && Proc_Min_Balans < 30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;


여기에서 이익 기준이 고정되어 있고 이 이익을 달성하는 시간이 세트마다 다르다는 점을 고려해야 합니다(비교가 정확하려면 지표를 낮추어야 함).

그리고 결론은 무엇입니까? 최적의 크기는 검증 샘플의 60%-70%인 것 같습니다. 훈련은 모델 검증보다 더 작은 샘플에서 이루어져야 합니다. 그러나 고장을 30 %로 강조하지 않는 것은 불가능하며 결과도 모든면에서 나쁘지 않으며 실패는 40 %와 50 %에 매우 가깝습니다. 표본의 크기나 그 내용이 무엇에 더 영향을 미치는지, 그리고 이를 어떻게 설정해야 하는지조차 모르겠습니다...

그리고 이 실험의 결과에 대한 당신의 의견은 무엇입니까? 아마도 결과를 올바르게 해석하지 못하는 것 같습니다. 훈련 및 선택 샘플 비율 문제를 해결하기 위한 방법론 또는 기타 제안을 변경하기 위한 아이디어가 있습니까?

추가됨:

80% -90%의 평균 지표와 관련하여 많은 0이 있으며(모델에 대한 입력 신호가 전혀 없음) 이로 인해 왜곡이 있습니다. 이는 StDV_K_Korrekt_Balans 표시기의 예에서 볼 수 있습니다.

StDV_K_Korrekt_Balans에 대한 히스토그램 90%


StDV_K_Korrekt_Balans 70%에 대한 히스토그램


StDV_K_Korrekt_Balans 30%에 대한 히스토그램

글쎄, 이것은 그래프가 어떻게 보이는지 (gif가 클릭하여 작동하므로 모든 것이 성가시게 깜박이지 않는 곳)

서른%


40%


오십%


60%

 

그리고 나는 또한 훈련이 항상 훈련이 통제되는 것보다 오래된 데이터에 대해 진행된다는 점에 주목합니다. 아마도 그것들을 교환하고 무슨 일이 일어나는지 봐야 합니다...

평균적인 작은 Recall은 주목할 만합니다. 모델을 더 훈련해야 할 수 있으며 100개 트리 이후 개선이 없거나 원하는 만큼 안정적인 패턴이 없는 경우 훈련을 중단하지 않을 수 있습니다.

낮은 재현율 지표를 사용하여 모델이 얼마나 교차하는지 살펴봐야 합니다. 약간의 상관 관계가 있지만 똑같이 수익성이 있는 모델이 있을 가능성이 있으므로 하나의 풀로 결합하는 데 이상적입니다.

 
알렉세이 비아즈미킨 :
그리고 나는 또한 훈련이 항상 훈련이 통제되는 것보다 오래된 데이터에 대해 진행된다는 점에 주목합니다. 아마도 그것들을 교환하고 무슨 일이 일어나는지 봐야 합니다...

위의 모든 것은 멋지고 매우 유익하지만 여기에 "학습 제어"가 있습니다. 그것은 무엇을 의미합니까 ???

저것들. 예를 들어, 2014년 데이터 샘플로 시스템을 교육한 다음 2015년 샘플을 제공하고 패턴의 확률을 보고 싶습니까? 그렇다면 아무것도 변경할 필요가 없으며 모든 것이 정확합니다. 컨트롤이 예상 결과에서 다른 결과를 제공한다는 점에서 여기서 문제가 발생하지 않습니다. 항상 그럴 것입니다.

 

귀하의 경우에 MO의 실제 적용을 진행한다면, 제 생각에는 다음과 같이 진행해야 합니다.

참 결과의 100% 확률을 얻는 것이 현실적이지 않기 때문에 예를 들어 참과 거짓 결과의 비율과 같은 간단한 방법을 따르십시오. 만약 그것이 50/50의 범위에 있다면 다시 다음을 수행해야 합니다. 50% 이익이 평균 100점이고 나머지 50% 손실이 평균 50점인 경우 이러한 결과가 귀하에게 제공하는 이익을 이해하면 귀하의 시스템이 이미 실용에 적합하다고 생각합니다.

사유: