L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 1932

 
mytarmailS:

aucun paquet n'est nécessaire, où est-ce que c'est écrit ?

Entrées non finies dans la matrice d'entrée>>> Entrées non finies dans la matrice d'entrée

Il a probablement un inf.

Vous vous êtes trompé dans les données, vous devriez peut-être essayer d'élaborer une syntaxe simple et ensuite entraîner vos modèles.

Essayez de l'appliquer aux données avant de former le modèle.

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

X est une matrice avec des prédicteurs

Maxim Dmitrievsky:

5k vues, ala village

Vous avez réussi votre construction personnalisée, en ville ? )

 
mytarmailS:

essayer d'appliquer cela aux données avant de former le modèle

X est une matrice avec des prédicteurs

Vous avez eu de la chance avec votre propre truc, la ville ? )

Non, personne n'aide, on ne fait que harceler.

 
Qui s'y connaît en approximation polynomiale ou harmonique S'IL VOUS PLAÎT! !!
 
mytarmailS:

aucun paquet n'est nécessaire, où est-ce que c'est écrit ?

Entrées non finies dans la matrice d'entrée>>> Entrées non finies dans la matrice d'entrée

Il a probablement un inf.

Vous vous êtes trompé dans les données, vous devriez peut-être essayer de travailler avec une syntaxe simple, et seulement après cela vous devriez entraîner vos modèles.

Qu'est-ce que j'ai fait de mal - j'ai donné la colonne avec les prix de clôture

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){
Je joins les données pour vous aider à y voir plus clair, s'il vous plaît.
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
Dossiers :
Save_OHLC.zip  5363 kb
 
Aleksey Vyazmikin:

Qu'est-ce que j'ai fait de mal ? J'ai donné une colonne avec les prix de clôture.

J'ai dû me tromper de type dans les commandes que j'ai données.

 
mytarmailS:

J'ai dû faire quelque chose de mal(( dans les commandes que je t'ai données.

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

Mais peut-être que je l'ai mis au mauvais endroit ?

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'est-ce que le 0.001 - qu'est-ce que ça veut dire ?

 
Aleksey Vyazmikin:

Mais peut-être que je l'ai mis au mauvais endroit ?

Mauvais endroit ))))

Vous voulez manipuler "X" avant qu'il ne soit créé.

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

faites-le comme ça.


Aleksey Vyazmikin:

Qu'est-ce que le 0.001 - qu'est-ce que ça veut dire ?

la taille du genou ZZ en points ou autre, en fonction du nombre de chiffres.


tu ne sais pas ce qui est quoi, regarde :

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)
}

nous voyons que c'est un paquet TTR.

l'écrire dans la console.

?TTR::ZigZag

obtenir de l'aide

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:

Pas là ))

Vous voulez manipuler "X" avant qu'il ne soit créé.

allez comme ceci


la taille du genou de l'X en points ou autre, en fonction du nombre de chiffres.


si vous ne savez pas ce qui est quoi, regardez :

nous voyons que c'est un paquet TTR.

l'écrire dans la console.

obtenir de l'aide.

Yup, il est allé un peu plus loin et a obtenu ceci

> 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 j'ai un échelon de prix de 1, dois-je remplacer 0,001 par 100, par exemple ?

Je l'ai changé en 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:

Ouais, ça a continué encore et encore, et ça a abouti à ça

Si j'ai un échelon de prix de 1, dois-je remplacer 0,001 par 100, par exemple ?


Jouer avec le paramètre de changement

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


Jouez avec le paramètre de changement

J'ai obtenu cette photo à partir des derniers résultats - 4 clusters clairs.

Vous parliez tout à l'heure de valeurs numériques pour estimer les résultats - quels chiffres suggérez-vous de prendre en compte ?