기고글 토론 "랜덤 포레스트로 추세 예측하기"

 

새로운 기고글 랜덤 포레스트로 추세 예측하기 가 게재되었습니다:

본문은 Rattle 패키지를 이용한 외환 시장 내 롱 또는 숏 포지션 예측 패턴 자동 검색에 대해 다룹니다. 모든 투자자에게 도움이 될만 한 글입니다.

통화의 움직임을 예측하려면 통화쌍 차트에 몇 가지 인디케이터를 추가해 패턴을 찾으면 되는데요.

R 언어 라이브러리인 Rattle 패키지를 이용한 패턴 선택 자동화와 패턴 평가를 진행해 보겠습니다.

R을 이용해 통화쌍 가격 변동을 예측할 겁니다. R은 금융 시장 예측에 아주 이상적인 언어입니다. 사실 R은 숙련된 통계학자들을 위한 프로그래밍 언어이며 일반인의 경우 이해하기 어렵습니다. R의 기본 기능을 이루는 여러 패키지들에 이미 수많은 예측 도구가 포함되어 있어 더욱 복잡하죠.

Rattle은 거래 시스템 개발에 중요하게 쓰이지만 초보자들이 개별적으로 사용하기는 어려운 여러 개의 R 패키지를 하나로 묶습니다. R을 알지 못해도 Rattle을 이용할 수 있죠. Rattle의 결과물은 R로 작성되며 이를 이용해 실제 거래 시스템을 개발할 수 있습니다. 하지만 그럴려면 R을 사용할 수 있어야 하죠.

어쨌든 거래 시스템 디자인 단계에서는 Rattle이 반드시 필요합니다. Rattle을 이용하면 초보자들도 빠르게 여러 아이디어를 적용하고 평가할 수 있죠.

Rattle은 R 언어의 일환으로 개발된 무료 오픈 소스 패키지 소프트웨어입니다. 무료이기 때문에 Rattle과 R의 소스 코드도 모두 얻을 수 있죠. Rattle 소스 코드는 C 언어로 작성되었으며 사용자라면 누구나 코드를 살펴보고, 테스트해 보고, 확장할 수 있습니다.

반전 포인트 간 거리' 변수 값이 0.0035달러인 지그재그 인디케이터를 이용해 목표 변수를 구해봤습니다. 그림 1은 그 결과입니다.

그림 1. 지그재그 인디케이터

그림 1. 지그재그 인디케이터


작성자: СанСаныч Фоменко

 

기사를 읽었을 때 가장 먼저 떠오른 생각은 "정말 조잡한 번역"이었습니다.

저자가 어디 출신인지 찾아봤는데 결국 번역이 아닌 것으로 밝혀졌습니다))))

В качестве инструмента для предсказания поведения валютных пар выберем систему R, которая идеально подходит для задач предсказания на финансовых рынках и, в частности, предсказания поведения валютных пар.

나쁜 말을 하고 싶지 않았고 그냥 귀에 쏙쏙 들어오는 생각이었어요. 기사가 좋을 수도 있고, 아주 좋을 수도 있습니다......

 

아이디어 자체에 관심이 있음( 랜덤 포레스트에 대해 몰랐음). 인위적으로 부과 된 도구. 나는 그것없이 반복하고 싶습니다. 정확히 무엇을했는지, 어떤 데이터 벡터가 사용되었는지 명확하게 명시되어 있지 않습니다. 지그재그 매개 변수는 생략되었습니다. 대상 고객이 Rattle 패키지의 사용자인가요? 아니면 R로 글을 쓰는 사람들인가요? 그들의 연구 없이는 기사의 많은 부분을 이해할 수 없습니다. 이 방향이 유망한지 여부가 기사에서 명확하지 않습니다. 무역의 예를 제시 할 수 있습니다. 일반적인 인상 - 마치 좁은 원을 위해 쓰여진 것처럼.

추신. 기사에서 TC.Rdata를 열려고하면 다음이 나타납니다:

Ошибка в sqrt(ncol(crs$dataset)) : 
  нечисловой аргумент для математической функции
Вдобавок: Предупреждение
In rm(crs) : объект 'crs' не найден
 
wmlab:
아이디어 자체에 관심이 있음(랜덤 포레스트에 대해 몰랐음). 인위적으로 부과 된 도구. 나는 그것없이 반복하고 싶습니다. 정확히 무엇을했는지, 어떤 데이터 벡터가 사용되었는지 명확하게 명시되어 있지 않습니다. 지그재그 매개 변수는 생략되었습니다. 대상 고객이 Rattle 패키지의 사용자인가요? 아니면 R로 글을 쓰는 사람들인가요? 그들의 연구 없이는 기사의 많은 부분을 이해할 수 없습니다. 이 방향이 유망한지 여부가 기사에서 명확하지 않습니다. 무역의 예를 제시하는 것이 가능할 것입니다. 일반적인 인상은 마치 좁은 범위를 위해 작성된 것처럼 보입니다.

당신이 많이 까다로운 것. 예를 들어 수학자가 아닌 저는 더 자세히 설명해야 할 몇 가지 사항을 제외하고는 본질을 꽤 잘 이해했습니다.예를 들어, "나무 분할"이라는 용어를 잘 이해하지 못했고 여러 번 발생하며 그 의미가 정확히 무엇인지 명확하지 않습니다. 그리고 결론에 관해서는 어떤 결론이 필요합니까? "가자! 바리케이드로"? 예를 들어, 저는 그것을 읽은 후 자전거를 발명하고 기성 솔루션을 사용하는 대신 유사한 알고리즘을 직접 발명하려고 노력하고 있다는 것을 깨달았습니다.제가 이해했듯이 주요 아이디어는 통계에 관심이있는 아마추어들 사이에서 R 패키지를 대중화하는 것이 었습니다 (그러나 "초보자"를위한 것은 아닙니다). 그리고 제 생각에는 꽤 잘 밝혀졌습니다.

 
wmlab:

아이디어 자체에 관심이 있음(랜덤 포레스트에 대해 몰랐음). 인위적으로 부과 된 도구. 나는 그것없이 반복하고 싶습니다. 정확히 무엇을했는지, 어떤 데이터 벡터가 사용되었는지 명확하게 명시되어 있지 않습니다. 지그재그 매개 변수는 생략되었습니다. 대상 고객이 Rattle 패키지의 사용자인가요? 아니면 R로 글을 쓰는 사람들인가요? 그들의 연구 없이는 기사의 많은 부분을 이해할 수 없습니다. 이 방향이 유망한지 여부가 기사에서 명확하지 않습니다. 무역의 예를 제시 할 수 있습니다. 일반적인 인상 - 마치 좁은 원을 위해 쓰여진 것처럼.

추신. 그리고 기사에서 TC.Rdata를 열려고 할 때 다음이 제공됩니다:

대상 고객 - 딸랑이 패키지 사용자? 아니면 R 언어로 작성하는 사람들? 그것들을 연구하지 않으면 기사의 많은 요점을 이해할 수 없습니다.

Rattle을 사용할 때 저는 두 가지 타겟 고객을 식별합니다:

자신의 입력 .csv 파일을 작성하고 무작위 포리스트뿐만 아니라 6가지 모델의 결과를 생성하고 평가할 수 있는 R에 대한 교육을 받지 않은 사용자. 가장 큰 문제는 모델이 아니라 모델 입력 데이터입니다. 초기 데이터를 찾을 수 있다면 프로그래밍을 주문할 수 있습니다. 가장 중요한 것은 아이디어이며 프로그래밍 기술도 적용 할 수 있습니다.

추신. 그리고 기사에서 TC.Rdata를 열려고 할 때 다음을 제공합니다:

다시 확인하면 모든 것이 정상입니다. 작업 순서는 다음과 같습니다:

  • R 시작
  • 탭 {파일/로드 작업 영역
  • 을 클릭한 다음 압축을 푼 아카이브에서 TC.RData 파일을 찾습니다.
  • Rattle 시작
  • 데이터\R 데이터 집합 탭
  • 드롭다운 메뉴의 데이터 이름 창에서 TC 이름을 찾습니다.
  • "실행"을 클릭합니다.

관심 있는 벡터 목록이 표시됩니다.

또 다른 대상은 훈련된 사용자입니다. 딸랑이는 모델의 초기 데이터를 선택하는 데 다소 편리한 도구입니다. 트레이딩 시스템을 구축할 때 가장 많은 시간을 할애하는 것은 가장 불확실한 부분인 초기 데이터 선택입니다. 이 부분에서 Rattle이 매우 유용합니다. 매우 복잡한 수학적 모델 구성에 들어가지 않고도 매우 빠르게 최종 추정치를 얻을 수 있습니다.

행운을 빌며 설명을 계속하겠습니다.

 
meat:

너무 까다롭게 굴지 마세요. 예를 들어 저는 수학자가 아니기 때문에 더 자세히 설명해야 할 몇 가지 사항을 제외하고는 본질을 꽤 잘 이해했습니다.예를 들어, "나무 분할"이라는 용어를 잘 이해하지 못했고 여러 번 발생하며 정확히 무엇을 의미하는지 명확하지 않습니다. 그리고 결론에 관해서는 어떤 결론이 필요합니까? "가! 바리케이드로 가자"? 예를 들어, 저는 그것을 읽은 후 자전거를 발명하고 기성 솔루션을 사용하는 대신 유사한 알고리즘을 직접 발명하려고 노력하고 있다는 것을 깨달았습니다.제가 이해했듯이 주요 아이디어는 통계에 관심이 있는 아마추어("초보자"를 위한 것이 아님)에게 R 패키지를 대중화하는 것이었습니다. 그리고 제 생각에는 꽤 잘 된 것 같습니다.

예를 들어, 저는 "트리 분할"이라는 용어를 잘 이해하지 못했습니다.

우리는 나무의 뿌리를 취합니다-그것은 맨 위에 있습니다.

우리는 루트를 나누고 루트에서 두 개의 선을 그립니다-루트 분할, 각 레벨에서 동일한 작업을 수행합니다.

트리의 각 노드에서 알고리즘에 의해 공식화 된 일부 조건이 확인됩니다. 예를 들어, EURUSD가 1.35를 초과하면 왼쪽 가지를 따라 이동하고 그렇지 않은 경우 오른쪽 가지를 따라 이동합니다.

알고리즘이 이러한 트리를 500개 과도하게 생성했습니다. 10000개의 조건이 있어야 합니다.

다음. 모든 예측자의 값(각 예측자의 값 하나씩)이 도착하면 총 88개의 값이 트리와 비교되고 이 특정 88개의 값 집합이 길거나 짧다는 결정이 내려집니다. 즉, 패턴의 유사성이 매우 높습니다.

 
faa1947:

다시 확인해보니 정상입니다. 순서는 다음과 같습니다:

  • R 실행
  • 파일/로드 작업 영역 탭
  • 을 클릭한 다음 압축을 푼 아카이브에서 TC.RData 파일을 찾습니다.
  • Rattle 실행
  • 데이터\R 데이터 집합 탭
  • 드롭다운 메뉴의 데이터 이름 창에서 TC 이름을 찾습니다.
  • "실행"을 클릭합니다.

관심 있는 벡터 목록이 표시됩니다.

감사합니다! 이제 명확해졌습니다.

이 벡터의 본질을 설명해 주시겠어요?
*.diff1, *.diff2, *.diff3 벡터는 무엇인가요? 증분? 무엇에 대한 상대적인 것?
벡터 유로, GBP 등? - 그것들은 무엇인가요?

그리고 글로벌 질문 - 지표의 데이터가 추가되는 이유는 무엇인가요? x, f1(x), f2(x)]와 같지 않나요? 중복성을 암시하고 있습니다. 종가의 증분만 제공하지 않으셨나요?

답변 주셔서 감사합니다.

 
wmlab:

감사합니다! 이제 명확해졌습니다.

이 벡터의 본질을 설명해 주시겠어요?
*.diff1, *.diff2, *.diff3 벡터는 무엇인가요? 증분? 무엇에 대한 상대적인 것?
벡터 유로, GBP 등? - 그것들은 무엇인가요?

그리고 글로벌 질문 - 지표에서 데이터를 추가한 이유는 무엇인가요? x, f1(x), f2(x)]와 같지 않나요? 중복성을 암시하고 있습니다. 종가의 증분만 제공하지 않으셨나요?

답변 주셔서 감사합니다.

이 벡터의 본질인 ZZ.75, ZZ.35에 대해 설명해 주시겠습니까?

최소 반전 거리가 75핍과 35인 ZZ입니다. 목표 변수 TREND는 ZZ.35에서 얻습니다. 이러한 변수는 미래를 내다보는 모델에서는 사용할 수 없습니다.

.dif1, *.dif2, *.dif3 벡터는 무엇인가요? 증분? 무엇에 대한 상대적인 것입니까?

이전 막대, 이전 이전 (-2) 및 (-3) 막대에 대한 증분입니다. 이 개념은 추세를 고려하는 것입니다.

벡터 유로, GBP 등은 무엇인가요? - 벡터란 무엇인가요?

지수 eurusd, gbpusd가 첫 번째 기호입니다.

중복성을 암시하고 있습니다. 종가 단위로만 입력해 보셨나요?

많은 시도를 해봤습니다. 이 기사는 모든 사람이 자신의 아이디어를 선택하고 시도 할 수 있도록 가능성과 동시에 중복성을 보여주는 데모입니다. 선택은 매우 간단하게 이루어집니다. 변수는 무시로 표시되어 있습니다.

 

산사니치 기사를 축하합니다!

물론 R에서는 더 간결할 수 있지만 먼저 거기서부터 시작해야 할 것 같습니다.

"딥" 학습에 대한 기사를 마무리하고 있습니다. 귀하의 데이터로 결과를 비교해 보겠습니다.

행운을 빕니다.

 

데이터 집합을 자세히 살펴봤는데 좋지 않습니다. 따옴표는 삭제해야 합니다. 즉, 처음 48개의 변수가 제거됩니다. 이제 42개의 입력 변수와 하나의 대상 변수가 있는 데이터 집합만 남았습니다.

모든 사람이 자신의 취향, 경험 등에 따라 선택하는 것은 소유자에게 달려 있습니다. 하지만 이 모델에 대해 한 가지 언급이 있습니다. "랜덤포레스트는 전처리가 전혀 필요하지 않다는 점에서 훌륭합니다. 원시 데이터를 훌륭하게 받아들입니다.

물론 그 외에는 매우 유용합니다.

 
vlad1949:

산사니치 기사를 축하합니다!

물론 R에서는 더 간결할 수 있지만 먼저 거기서부터 시작해야 할 것 같습니다.

"딥" 학습에 대한 기사를 마무리하고 있습니다. 귀하의 데이터로 결과를 비교해 보겠습니다.

행운을 빕니다.

여기에서 그 스레드를 반복하는 것이 매우 좋을 것입니다.

매우 유용한 자료였습니다.