Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 1932

 
mytarmailS:

não é necessário nenhum pacote, onde está escrito?

Entradas não finitas na matriz de entrada>>> Entradas não finitas na matriz de entrada

Provavelmente tem um inf.

Você estragou os dados, talvez você devesse tentar trabalhar uma sintaxe simples e depois treinar seus modelos.

Tente aplicar isto aos dados antes de treinar o modelo

X <- as.matrix(X)
X[is.na(X)] <- 0
X[is.infinite(X)] <- 100

X é uma matriz com preditores

Maxim Dmitrievsky:

5k vistas, ala village

Alguma sorte com a sua construção personalizada, cidade? )

 
mytarmailS:

tente aplicar isto aos dados antes de treinar o modelo

X é uma matriz com preditores

Alguma sorte com a tua própria coisa, cidade? )

Não, ninguém está a ajudar, só a chatear.

 
Quem sabe alguma coisa sobre polinomial ou aproximação harmônica POR FAVOR!!
 
mytarmailS:

não é necessário nenhum pacote, onde está escrito?

Entradas não finitas na matriz de entrada>>> Entradas não finitas na matriz de entrada

Provavelmente tem um inf.

Você estragou os dados, talvez você devesse tentar trabalhar com alguma sintaxe simples, e só depois disso você deveria treinar seus modelos.

O que eu fiz de errado - Dei a coluna com os preços de fechamento

way <- "F:\\FX\\Открытие Брокер_Demo\\Musor\\000\\Save_OHLC.csv"  #  ваш путь

dt <- read.csv(file = way,header = T,sep = ";") #  читаем файл

clos <- dt$Close #  цеНу закрытия в отдельную переменную


get.ind <- function(x,n=5){
Estou anexando os dados para ajudar a dar sentido a isso, por favor.
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
Arquivos anexados:
Save_OHLC.zip  5363 kb
 
Aleksey Vyazmikin:

O que fiz de errado - dei uma coluna com os preços de fecho

Eu devo ter feito asneira(( digite os comandos que eu dei

 
mytarmailS:

Eu devo ter feito algo errado(( digite os comandos que eu te dei.

Error in x2set(Xsub, n_neighbors, metric, nn_method = nn_sub, n_trees,  : 
  Non-finite entries in the input matrix

Mas talvez eu o tenha colocado no lugar errado?

get.target <- function(x, change){
  zz <- TTR::ZigZag(x,change = change,percent = F)
  zz <- c(diff(zz),0) ; zz[zz>=0] <- 1 ; zz[zz<0] <- -1
  return(zz)
}

X <- as.matrix(X)
X[is.na(X)] <- 0
X[is.infinite(X)] <- 100

X <- get.ind(clos)
Y <- as.factor(get.target(clos,change = 0.001))


library(uwot)

Qual é o 0.001 - qual é o significado?

 
Aleksey Vyazmikin:

Mas talvez eu o tenha colocado no lugar errado?

Lugar errado ))))

Você quer manipular o "X" antes de ser criado.

X <- get.ind(clos)
X <- as.matrix(X)
X[is.na(X)] <- 0

faz isto assim.


Aleksey Vyazmikin:

Qual é o 0.001 - qual é o significado?

o tamanho do joelho ZZ em pontos ou seja lá o que for, dependendo do número de dígitos.


não sabes o que é o quê, olha:

get.target <- function(x, change){
  zz <- TTR::ZigZag(x,change = change,percent = F)
  zz <- c(diff(zz),0) ; zz[zz>=0] <- 1 ; zz[zz<0] <- -1
  return(zz)
}

vemos que isto é um pacote TTR.

escreva-o na consola.

?TTR::ZigZag

obter ajuda

igZag {TTR}     R Documentation
Zig Zag
Description
Zig Zag higlights trends by removing price changes smaller than change and interpolating lines between the extreme points.

Usage
ZigZag(HL, change = 10, percent = TRUE, retrace = FALSE,
  lastExtreme = TRUE)
Arguments
HL      
Object that is coercible to xts or matrix and contains either a High-Low price series, or a Close price series.

change  
Minimum price movement, either in dollars or percent (see percent).

percent 
Use percentage or dollar change?

retrace 
Is change a retracement of the previous move, or an absolute change from peak to trough?

lastExtreme     
If the extreme price is the same over multiple periods, should the extreme price be the first or last observation?

Details
The Zig Zag is non-predictive. The purpose of the Zig Zag is filter noise and make chart patterns clearer. It's more a visual tool than an indicator.

Value
A object of the same class as HL or a vector (if try.xts fails) containing the Zig Zag indicator.

Warning
The last value of the ZigZag indicator is unstable (i.e. unknown) until the turning point actually occurs. Therefore this indicator isn't well-suited for use for systematic trading strategies.

Note
If High-Low prices are given, the function calculates the max/min using the high/low prices. Otherwise the function calculates the max/min of the single series.

Author(s)
Joshua Ulrich

References
The following site(s) were used to code/document this indicator:
http://www.fmlabs.com/reference/default.htm?url=ZigZag.htm
https://www.linnsoft.com/techind/zig-zag-indicator-zig-zzo
https://www.linnsoft.com/techind/zig-zag-oscillator-indicator-zzo
http://www.metastock.com/Customer/Resources/TAAZ/#127
http://www.stockcharts.com/school/doku.php?id=chart_school:technical_indicators:zigzag
Examples

## Get Data and Indicator ##
data(ttrc)
zz <- ZigZag( ttrc[,c("High", "Low")], change=20 )
 
mytarmailS:

Não há ))

Você quer manipular o "X" antes de ser criado.

proceder desta maneira


o tamanho do joelho do X em grafite ou algo assim, dependendo do número de dígitos.


se não sabes o que é o quê, observa:

vemos que isto é um pacote TTR.

escreva-o na consola.

arranjar ajuda.

Sim, foi um pouco mais longe e conseguiu isto.

> X <- as.matrix(X)

> X[is.na(X)] <- 0

> X[is.infinite(X)] <- 100

> library(uwot)

> train.idx <- 100:8000

> test.idx <- 8001:10000

> UM <- umap(X = X[train.idx,],
+            y = Y[train.idx], 
+            approx_pow = TRUE, 
+            n_components = 3, 
+            ret_mode .... [TRUNCATED] 

> predict.train <- umap_transform(X = X[train.idx,], 
+                                 model = UM, n_threads = 4 L, 
+                                 .... [TRUNCATED] 
11:08:52 Read 7901 rows and found 31 numeric columns
11:08:52 Applying training data column filtering/scaling
11:08:52 Processing block 1 of 1
11:08:52 Writing NN index file to temp file C:\Users\S_V_A\AppData\Local\Temp\RtmpK0sSR3\file28f467fe2995
11:08:52 Searching Annoy index using 4 threads, search_k = 1500
11:08:52 Commencing smooth kNN distance calibration using 4 threads
11:08:52 Initializing by weighted average of neighbor coordinates using 4 threads
11:08:52 Commencing optimization for 167 epochs, with 118515 positive edges
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
11:08:54 Finished

> predict.test <- umap_transform(X = X[test.idx,], 
+                                model = UM, n_threads = 4 L, 
+                                ver .... [TRUNCATED] 
11:08:54 Read 2000 rows and found 31 numeric columns
11:08:54 Applying training data column filtering/scaling
11:08:54 Processing block 1 of 1
11:08:54 Writing NN index file to temp file C:\Users\S_V_A\AppData\Local\Temp\RtmpK0sSR3\file28f45e3376d9
11:08:54 Searching Annoy index using 4 threads, search_k = 1500
11:08:55 Commencing smooth kNN distance calibration using 4 threads
11:08:55 Initializing by weighted average of neighbor coordinates using 4 threads
11:08:55 Commencing optimization for 167 epochs, with 30000 positive edges
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
11:08:55 Finished

> library(car)
Загрузка требуемого пакета: carData

> scatter3d(x = predict.train[,1], 
+           y = predict.train[,2], 
+           z = predict.train[,3],
+           groups = Y[train.idx],
+        .... [TRUNCATED] 
Загрузка требуемого пакета: rgl
Загрузка требуемого пакета: mgcv

Se eu tiver um passo de preço de 1, devo mudar 0,001 para, por exemplo, 100?

Mudou-o para 100.

11:15:15 Read 2000 rows and found 31 numeric columns
11:15:15 Applying training data column filtering/scaling
11:15:15 Processing block 1 of 1
11:15:15 Writing NN index file to temp file C:\Users\S_V_A\AppData\Local\Temp\RtmpK0sSR3\file28f417876e23
11:15:15 Searching Annoy index using 4 threads, search_k = 1500
11:15:15 Commencing smooth kNN distance calibration using 4 threads
11:15:15 Initializing by weighted average of neighbor coordinates using 4 threads
11:15:15 Commencing optimization for 167 epochs, with 30000 positive edges
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
11:15:16 Finished

> library(car)

> scatter3d(x = predict.train[,1], 
+           y = predict.train[,2], 
+           z = predict.train[,3],
+           groups = Y[train.idx],
+        .... [TRUNCATED] 
> 
 
Aleksey Vyazmikin:

Sim, não parou, e veio com isto.

Se eu tiver um passo de preço de 1, devo mudar 0,001 para, por exemplo, 100?


Jogue com o parâmetro de mudança

last200clos <- tail(clos,200)
plot(last200clos,t="l")
zz <- TTR::ZigZag(HL = last200clos , percent = F,change = 50)
lines(zz,col=2,lwd=2)
 
mytarmailS:


Jogue com o parâmetro de alteração

Obtive esta imagem dos últimos resultados - 4 aglomerados claros

Há pouco você estava falando de alguns valores numéricos para estimar os resultados - que valores você sugere que olhemos?