Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1932

 
mytarmailS:

no se necesita ningún paquete, ¿dónde está escrito?

Entradas no finitas en la matriz de entrada>>> Entradas no finitas en la matriz de entrada

Probablemente tiene un inf.

Te has equivocado con los datos, quizás deberías intentar elaborar una sintaxis sencilla y luego entrenar tus modelos.

Intenta aplicar esto a los datos antes de entrenar el modelo

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

X es una matriz con predictores

Maxim Dmitrievsky:

5k vistas, ala aldea

¿ha habido suerte con esto, ciudad? )

[Eliminado]  
mytarmailS:

intentar aplicar esto a los datos antes de entrenar el modelo

X es una matriz con predictores

¿ha habido suerte con lo tuyo, ciudad? )

no, nadie está ayudando, sólo regañando

 
Quien sepa algo de aproximación polinómica o armónica ¡¡¡POR FAVOR!!!
 
mytarmailS:

no se necesita ningún paquete, ¿dónde está escrito?

Entradas no finitas en la matriz de entrada>>> Entradas no finitas en la matriz de entrada

Probablemente tiene un inf.

Te has equivocado con los datos, tal vez debas ocuparte de la sintaxis simple, y sólo después de eso debes entrenar los modelos.

¿Qué he hecho mal? He dado la columna con los precios de cierre

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){
Adjunto los datos para ayudar a darle sentido, por favor.
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
Archivos adjuntos:
Save_OHLC.zip  5363 kb
 
Aleksey Vyazmikin:

¿Qué he hecho mal? He dado una columna con los precios de cierre

Debo haber metido la pata(( en los comandos que di

 
mytarmailS:

Debo haber hecho algo mal(( teclear los comandos que te di.

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

¿Pero tal vez lo puse en el lugar equivocado?

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)

¿Qué significa el 0,001?

 
Aleksey Vyazmikin:

¿Pero tal vez lo puse en el lugar equivocado?

Lugar equivocado )))

Quieres manipular "X" antes de que se creara

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

hazlo así.


Aleksey Vyazmikin:

¿Qué significa el 0,001?

el tamaño de la rodilla ZZ en puntos o lo que sea, dependiendo del número de dígitos.


no sabes qué es qué, mira:

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 es un paquete TTR.

escribirlo en la consola.

?TTR::ZigZag

obtener ayuda

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:

No hay ))

Quieres manipular "X" antes de que se creara

ir así


el tamaño de la rodilla de la X en puntos o lo que sea, dependiendo del número de dígitos.


si no sabes qué es qué, mira:

vemos que se trata de un paquete TTR.

escribirlo en la consola.

obtener ayuda.

Sí, fue un poco más lejos y consiguió esto

> 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

Si tengo un paso de precio de 1, ¿debo cambiar 0,001 por ejemplo, 100?

Lo he cambiado a 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:

Sí, siguió y siguió, y llegó a esto

Si tengo un paso de precio de 1, ¿debo cambiar 0,001 por ejemplo, 100?


Jugar con el parámetro de cambio

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


Juega con el parámetro de cambio

Tengo esta imagen de los últimos resultados - 4 racimos claros

Antes hablabas de algunos valores numéricos para estimar los resultados, ¿qué cifras sugieres que veamos?