L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 1932

 
mytarmailS:

nessun pacchetto è necessario, dove è scritto?

Voci non finite nella matrice di ingresso>>> Voci non finite nella matrice di ingresso

Probabilmente ha un inf.

Hai fatto un casino con i dati, forse dovresti cercare di elaborare una sintassi semplice e poi allenare i tuoi modelli.

Prova ad applicarlo ai dati prima di addestrare il modello

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

X è una matrice con predittori

Maxim Dmitrievsky:

5k views, ala village

Hai avuto fortuna con la tua costruzione personalizzata, città? )

 
mytarmailS:

provare ad applicare questo ai dati prima di addestrare il modello

X è una matrice con predittori

Hai avuto fortuna con le tue cose, città? )

no, nessuno sta aiutando, solo assillando

 
Chi sa qualcosa di approssimazione polinomiale o armonica PER FAVORE!!!
 
mytarmailS:

nessun pacchetto è necessario, dove è scritto?

Voci non finite nella matrice di ingresso>>> Voci non finite nella matrice di ingresso

Probabilmente ha un inf.

Hai fatto un casino con i dati, forse dovresti provare a lavorare con una sintassi semplice, e solo dopo dovresti allenare i tuoi modelli.

Cosa ho fatto di sbagliato - ho dato la colonna con i prezzi di chiusura

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){
Allego i dati per aiutare a dare un senso alla cosa, per favore.
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
File:
Save_OHLC.zip  5363 kb
 
Aleksey Vyazmikin:

Cosa ho fatto di sbagliato - ho dato una colonna con i prezzi di chiusura

Devo aver sbagliato(( tipo nei comandi che ho dato

 
mytarmailS:

Devo aver fatto qualcosa di sbagliato(( digitare i comandi che vi ho dato.

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

Ma forse l'ho messo nel posto sbagliato?

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)

Cos'è lo 0,001 - cosa significa?

 
Aleksey Vyazmikin:

Ma forse l'ho messo nel posto sbagliato?

Posto sbagliato )))

Volete manipolare "X" prima che sia stato creato

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

fare così.


Aleksey Vyazmikin:

Cos'è lo 0,001 - cosa significa?

la dimensione del ginocchio ZZ in punti o quello che è, a seconda del numero di cifre.


non sai cosa è cosa, guarda:

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

vediamo che si tratta di un pacchetto TTR.

scriverlo nella console.

?TTR::ZigZag

chiedere aiuto

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:

Non c'è ))

Volete manipolare "X" prima che sia stato creato

fare così


la dimensione del ginocchio della X in punti o altro, a seconda del numero di cifre.


Se non sapete cosa è cosa, guardate:

vediamo che questo è un pacchetto TTR.

scriverlo nella console.

chiedere aiuto.

Sì, è andato un po' oltre e ha ottenuto questo

> 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 ho un passo di prezzo di 1, devo cambiare 0,001 in per esempio 100?

Cambiato 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ì, è andata avanti e si è arrivati a questo

Se ho un passo di prezzo di 1, devo cambiare 0,001 in per esempio 100?


Gioca con il parametro change

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


Gioca con il parametro change

Ho ottenuto questa immagine dagli ultimi risultati - 4 cluster chiari

Prima stavi parlando di alcuni valori numerici per stimare i risultati - quali cifre suggerisci di guardare?