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

 
마법사_ :
서두르지 마. 클러스터링 방법에 관계없이. 한 번 패스하세요. 몇 가지 관찰을 잘라냅니다. 반복하다. 받은 비교

결과. 앞으로 나아갈 길을 찾으십시오. 그런 다음 "성배"를 만들고 왜 작동하지 않는지 궁금해 할 것입니다.)))


나는 전체 열거를 하려고 생각했는데, 그것들은 처음에 500이었다가 결국 좋은 모델이 5만을 고려할 수 있도록 밝혀질 수 있습니다.

그리고 나는 그들을 내버려 둘 것이다.

 
Dr.Trader :

막대로 슬라이딩 창을 사용하여 mytarmailS와 같은 패턴을 찾으면 각 패턴은 각 막대에 값이 위치할 수 있는 간격에 대한 정보를 전달합니다. 패턴이 많을수록 각 막대에 더 작은 간격이 할당됩니다.................................

슬라이딩 창에서 데이터를 제출하는 것은 데이터를 제출하는 내 스타일일 뿐이고 좋든 나쁘든 xs, 나는 다른 모든 사람들과 동일하다고 생각합니다 ...

하지만 제가 설명드린 접근 방식과는 아무런 관련이 없습니다...

이 접근 방식을 사용하면 클러스터링을 통해 기존 ML이 가져올 수 없는 유용한 데이터의 몇 퍼센트를 가져올 수 있습니다.

예측자를 네트워크에 공급할 때 안전하게 가져와서(각각) 클러스터링하고 내가 설명한 알고리즘을 통해 실행할 수 있습니다.

 
트레이더 박사 :

대략적으로 말하자면, 새로운 데이터가 있는 특정 창이 이전에 발견된 패턴에 속하려면 각 패턴에 고유한 수직 구분 기호에 속해야 합니다.

글쎄요, 그것은 또한 당신이 모델을 얼마나 훈련시키고 싶은지에 달려 있습니다. 만약 당신이 약하게 훈련한다면, 많은 클러스터를 만들지 않을 것입니다, 그러면 모델의 머리에 있는 수치가 상당히 매끄럽게 될 것이고 당신이 말하는 결점은 이론적으로 사라져야 합니다. ..

이것은 모델이 49개의 클러스터에 포장된 50개 값의 가격 계열을 보는 방법입니다.

일

코드..

price <- cumsum(rnorm( 30000 ))+ 1000
plot(price,t= "l" )

# делаем скользящее окно ( 50 знач) через матрицу хенкеля
hankel <- function(data, r= 50 ) {
   do .call(cbind,
          lapply( 0 :(r- 1 ),function(i) { data[(i+ 1 ):(length(data)-(r- 1 -i))]}))}
price <- hankel(price)

# скалирую, центрирую, в общем нормализирую каждую строчку в матрице
price <- t(apply(price, 1 ,function(x){scale(x,center = T,scale = T)}))

# запускаем пакет с кластеризацыей, в дан. случ с кохоненом
# хорошый мануал  
#https: //cran.r-project.org/web/packages/SOMbrero/vignettes/doc-numericSOM.html
install.packages( "SOMbrero" )
library (SOMbrero)

# тренируем модель, с матрицей 7 х 7 те 49 кластеров
model <- trainSOM(price, dimension=c( 7 , 7 ), verbose=T)
plot(model,what= "prototypes" ,type= "lines" ,print.title=T)
 
mytarmailS :

글쎄요, 그것은 또한 당신이 모델을 얼마나 훈련시키고 싶은지에 달려 있습니다. 만약 당신이 약하게 훈련한다면, 많은 클러스터를 만들지 않을 것입니다, 그러면 모델의 머리에 있는 수치가 상당히 매끄럽게 될 것이고 당신이 말하는 결점은 이론적으로 사라져야 합니다. ..

이것은 모델이 49개의 클러스터에 포장된 50개 값의 가격 계열을 보는 방법입니다.

코드..

price <- cumsum(rnorm( 30000 ))+ 1000
plot(price,t= "l" )

# делаем скользящее окно ( 50 знач) через матрицу хенкеля
hankel <- function(data, r= 50 ) {
   do .call(cbind,
          lapply( 0 :(r- 1 ),function(i) { data[(i+ 1 ):(length(data)-(r- 1 -i))]}))}
price <- hankel(price)

# скалирую, центрирую, в общем нормализирую каждую строчку в матрице
price <- t(apply(price, 1 ,function(x){scale(x,center = T,scale = T)}))

# запускаем пакет с кластеризацыей, в дан. случ с кохоненом
# хорошый мануал  
#https: //cran.r-project.org/web/packages/SOMbrero/vignettes/doc-numericSOM.html
install.packages( "SOMbrero" )
library (SOMbrero)

# тренируем модель, с матрицей 7 х 7 те 49 кластеров
model <- trainSOM(price, dimension=c( 7 , 7 ), verbose=T)
plot(model,what= "prototypes" ,type= "lines" ,print.title=T)


에. 저도 오래 했습니다. 코호넨은 흥미로운 것입니다. 그러나 그것을 클러스터링 알고리즘이라고 부르는 것은 옳지 않다는 것을 기억하십시오. 이것은 컨볼루션 알고리즘입니다. 그런 다음 결과 2차원 공간에서 클러스터링이 수행됩니다.
 
알렉세이 버나코프 :
에. 저도 오래 했습니다. 코호넨은 흥미로운 것입니다. 그러나 그것을 클러스터링 알고리즘이라고 부르는 것은 옳지 않다는 것을 기억하십시오. 이것은 컨볼루션 알고리즘입니다. 그런 다음 결과 2차원 공간에서 클러스터링이 수행됩니다.

감사하다 ! 몰랐다.

그러나 모델의 출력을 클러스터로 사용할 수 있습니까? 아니면?

head(model$clustering , 100 )
  [ 1 ]   7    7    7    7    7    7    7    7    6    6    6    5    5    4    4    3    3    2    2    1    1    1    1    1    8 15 15 22 22 29 36
[ 32 ] 43 43 43 43 43 43 43 44 44 45 45 45 46 46 46 46 47 47 47 47 48 48 48 49 42 35 35 28 28 21 21
[ 63 ] 21 21 21 21 21 21 21 21 21 14 14 14    7    7    7    7    7    7    7    6    5    4    3    3    2    1    1    1    1    1    1
[ 94 ]   8    8 15 22 22 29 36
 
mytarmailS :

감사하다 ! 몰랐다.

그러나 모델의 출력을 클러스터로 사용할 수 있습니까? 아니면?

head(model$clustering , 100 )
  [ 1 ]   7    7    7    7    7    7    7    7    6    6    6    5    5    4    4    3    3    2    2    1    1    1    1    1    8 15 15 22 22 29 36
[ 32 ] 43 43 43 43 43 43 43 44 44 45 45 45 46 46 46 46 47 47 47 47 48 48 48 49 42 35 35 28 28 21 21
[ 63 ] 21 21 21 21 21 21 21 21 21 14 14 14    7    7    7    7    7    7    7    6    5    4    3    3    2    1    1    1    1    1    1
[ 94 ]   8    8 15 22 22 29 36

예, 물론 할 수 있습니다 ... 실제로 이러한 세포에서 유사한 벡터의 집합입니다.

상황이 이러할 수 있다는 것뿐입니다(직장에서 직접 했고 무슨 말인지 압니다). n 백만 개의 레코드가 있습니다. 입력 벡터의 길이는 수백 개입니다. 클러스터링하고 싶은데 클러스터가 몇 개인지 미리 모릅니다. 모든 알고리즘이 일반 컴퓨터에서 이러한 데이터 배열을 처리할 수 있는 것은 아닙니다. 따라서 먼저 입력 공간을 축소하고 50*50과 같은 그리드를 만듭니다. 인구의 2500명의 전형적인 대표자가 밝혀졌습니다 ... 그러한 배열에서 내 컴퓨터는 agnes(계층적 클러스터링)를 가져옵니다. 만인에 대한 만인의 근접성 매트릭스가 그곳에 건설되고 있습니다 ...

그리고 제가 이 2500개를 10개의 클러스터로 클러스터링한 결과 집계 메트릭이 양호한 것으로 나타났습니다.

 
알렉세이 버나코프 :

예, 물론 할 수 있습니다 ... 실제로 이러한 세포에서 유사한 벡터의 집합입니다.

상황이 이러할 수 있다는 것뿐입니다(직장에서 직접 했고 무슨 말인지 압니다). n 백만 개의 레코드가 있습니다. 입력 벡터의 길이는 수백 개입니다. 클러스터링하고 싶은데 클러스터가 몇 개인지 미리 모릅니다. 모든 알고리즘이 일반 컴퓨터에서 이러한 데이터 배열을 처리할 수 있는 것은 아닙니다. 따라서 먼저 입력 공간을 축소하고 50*50과 같은 그리드를 만듭니다. 인구의 2500명의 전형적인 대표자가 밝혀졌습니다 ... 그러한 배열에서 내 컴퓨터는 agnes(계층적 클러스터링)를 가져옵니다. 만인에 대한 만인의 근접성 매트릭스가 그곳에 건설되고 있습니다 ...

그리고 제가 이 2500개를 10개의 클러스터로 클러스터링한 결과 집계 메트릭이 양호한 것으로 나타났습니다.

수동 https://cran.r-project.org/web/packages/SOMbrero/vignettes/doc-numericSOM.html 에서

장에서

결과 SOM에서 슈퍼 클래스 만들기

그냥 당신이 말하는 것

 

시장이 무엇인지 알고 싶은 사람들을 위해..

오래된 영상부터 새로운 영상까지....

https://www.youtube.com/channel/UCsdK6s9i_I0NEMvis6wXhnQ/featured

어렵지 않은데 프로그래밍을 하려면? 아직까지는 정말 불가능해요...

MO 또는 그냥 코드에 대한 이러한 접근 방식을 코딩하는 방법을 논의할 것을 제안

 

R 언어 및 새로운 MetaTrader 5 빌드 1467에 대한 정보:

  • R과 유사한 통계 라이브러리의 업데이트된 버전이 출시되었습니다.

    MQL5의 통계 분포 - R을 최대한 활용하고 더 빠르게 수행

  • MQL5의 계산은 R보다 3~7배 빠릅니다(C++에 함수가 구현되어 있다는 사실을 고려하더라도).
  • 일부 R 기능에는 오래된 최적화/단순화로 인해 버그가 있어 잘못된 결과를 제공합니다.
  • R과 유사한 그래픽 라이브러리의 베타 버전이 추가되어 R에서와 같이 데이터를 시각화할 수 있습니다.
  • R과 유사한 일반 배열과 구조를 모두 인쇄하는 편리한 ArrayPrint 함수를 추가했습니다.


MetaQuotes-Demo 서버에서 1467로 업그레이드할 수 있습니다.

다음 버전에서는 R과 유사한 새로운 수학 및 통계 기능이 많이 추가되어 MetaTrader 5에서 더 많은 계산과 시각화를 직접 수행할 수 있습니다.
 
그냥 궁금합니다 - 그리고 여기에서 가격의 값과 가격의 다양한 지표만을 예측 변수로 사용합니까? 실제 볼륨과 볼륨의 지표를 사용하는 사람이 있습니까?
사유: