Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1932

 
mytarmailS:

kein Paket benötigt wird, wo steht das geschrieben?

Nicht endliche Einträge in der Eingabematrix>>> Nicht endliche Einträge in der Eingabematrix

Wahrscheinlich hat er einen Inf.

Sie haben es mit den Daten vermasselt, vielleicht sollten Sie versuchen, eine einfache Syntax zu erarbeiten und dann Ihre Modelle zu trainieren.

Versuchen Sie, dies auf die Daten anzuwenden, bevor Sie das Modell trainieren

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

X ist eine Matrix mit Prädiktoren

Maxim Dmitrievsky:

5k Ansichten, ala Dorf

Hatten Sie damit Erfolg, Stadt? )

 
mytarmailS:

versuchen, dies auf die Daten anzuwenden, bevor das Modell trainiert wird

X ist eine Matrix mit Prädiktoren

Hattest du Glück mit deiner eigenen Sache, Stadt? )

nein, niemand hilft, sondern nörgelt nur

 
Wer weiß etwas über polynomiale oder harmonische Annäherung BITTE!!!
 
mytarmailS:

kein Paket benötigt wird, wo steht das geschrieben?

Nicht endliche Einträge in der Eingabematrix>>> Nicht endliche Einträge in der Eingabematrix

Wahrscheinlich hat er einen Inf.

Sie haben es mit den Daten vermasselt, vielleicht sollten Sie sich mit einer einfachen Syntax befassen, und erst danach sollten Sie Modelle trainieren.

Was habe ich falsch gemacht - ich habe die Spalte mit den Schlusskursen

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){
Ich füge die Daten als Anhang bei, damit Sie sie besser verstehen können.
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
Dateien:
Save_OHLC.zip  5363 kb
 
Aleksey Vyazmikin:

Was habe ich falsch gemacht - ich habe eine Spalte mit Schlusskursen angegeben

Ich muss bei der Eingabe der Befehle einen Fehler(( gemacht haben

 
mytarmailS:

Ich muss etwas falsch gemacht haben(( die Befehle eingegeben haben, die ich Ihnen gegeben habe.

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

Aber vielleicht habe ich es an die falsche Stelle gesetzt?

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)

Was ist die 0,001 - was bedeutet sie?

 
Aleksey Vyazmikin:

Aber vielleicht habe ich es an die falsche Stelle gesetzt?

Falscher Ort )))

Sie möchten "X" manipulieren, bevor es erstellt wurde

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

machen Sie es so.


Aleksey Vyazmikin:

Was ist die 0,001 - was bedeutet sie?

die Größe des ZZ-Knies in Punkten oder was auch immer es ist, abhängig von der Anzahl der Ziffern.


Sie wissen nicht, was was ist, schauen Sie:

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

sehen wir, dass es sich um ein TTR-Paket handelt.

schreiben Sie es in die Konsole.

?TTR::ZigZag

Hilfe bekommen

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:

Nicht da ))

Sie möchten "X" manipulieren, bevor es erstellt wurde

so gehen


die Größe des X-Knies in Punkten oder was auch immer, abhängig von der Anzahl der Ziffern.


Wenn Sie nicht wissen, was was ist, schauen Sie zu:

sehen wir, dass es sich um ein TTR-Paket handelt.

schreiben Sie es in die Konsole.

Hilfe holen.

Ja, es ging noch ein bisschen weiter und ergab dies

> 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

Wenn ich einen Preisschritt von 1 habe, sollte ich dann 0,001 in z.B. 100 ändern?

Sie wurde auf 100 geändert.

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:

Ja, es ging weiter und weiter, und am Ende stand das hier

Wenn ich einen Preisschritt von 1 habe, sollte ich dann 0,001 in z.B. 100 ändern?


Mit Parameter ändern spielen

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


Spielen Sie mit dem Änderungsparameter

Dieses Bild stammt von den letzten Ergebnissen - 4 klare Cluster

Vorhin sprachen Sie von einigen numerischen Werten, um die Ergebnisse abzuschätzen - welche Zahlen schlagen Sie uns vor?