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

 
anonym:

und transponieren nach Bedarf entsprechend der Matrixdimension

Verwenden Sie einfach die beiden Funktionen kohonen::classvec2classmat, kohonen::classmat2classvec. Sie können diese Funktionen einfach auf sich selbst kopieren und sie bei Bedarf verwenden.

> classvec2classmat
function (yvec) 
{
    if (!is.factor(yvec)) 
        yvec <- factor(yvec)
    nclasses <- nlevels(yvec)
    outmat <- matrix(0, length(yvec), nclasses)
    dimnames(outmat) <- list(NULL, levels(yvec))
    for (i in 1:nclasses) outmat[which(as.integer(yvec) == i), 
        i] <- 1
    outmat
}
> classmat2classvec
function (ymat, threshold = 0) 
{
    class.names <- dimnames(ymat)[[2]]
    if (is.null(class.names)) 
        class.names <- 1:ncol(ymat)
    classes <- apply(ymat, 1, function(x) which(x == max(x))[1])
    classes[apply(ymat, 1, max) < threshold] <- NA
    factor(class.names[classes], levels = class.names)
}

Viel Glück!

 
elibrarius:

Ein weiteres Problem mit R.

Auf dem einen Computer ist das in Ordnung, auf dem anderen Computer gibt es erhöhte Anforderungen an die Korrektheit des Codes.

Zum Beispiel

darch.unitFunction = linearUnit - führte zum Absturz von Rterm.exe

geändert in

darch.unitFunction ="linearUnit"

dieser Punkt begann vor dem nächsten Fehler zu vergehen.

Außerdem musste ich library(darch) in require(darch) ändern

Jetzt ist es das Lernen selbst, das ein Manko ist.

R_NN <- darch(
darch = NULL,
x = MatrixLearnX ,
y = MatrixLearnY ,
paramsList = params
)

Ich habe viele Varianten ausprobiert, Rterm.exe stürzt immer ab

Verfügt R über eine Art Fehlerkontrolle? Vielleicht hatte ich auf dem zweiten PC eine Fehlerstufe, die ich ausrechnen musste, wenn ich bei jeder Warnung anhielt?

Auf beiden Computern habe ich R mit den Standardeinstellungen installiert, ich habe alle Pakete installiert.
Wie kann ich es reparieren?

Machen Sie einen Schnappschuss von der Sitzung auf dem einen und dem anderen PC und vergleichen Sie sie. Zum Beispiel

> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils    
[5] datasets  methods   base     

other attached packages:
[1] kohonen_3.0.4        RevoUtils_10.0.6    
[3] RevoUtilsMath_10.0.1

loaded via a namespace (and not attached):
[1] MASS_7.3-47    compiler_3.4.2
[3] tools_3.4.2    Rcpp_0.12.13  

viel Glück

 
Vladimir Perervenko:

Machen Sie einen Schnappschuss von der Sitzung auf dem einen und dem anderen Computer und vergleichen Sie sie. Zum Beispiel

viel Glück

Nicht mit dieser Methode, aber ich habe es herausgefunden - eher durch Versuch und Irrtum.
Dankeschön

 

Übrigens kenne ich den Ausdruck "Hardcode" für ein Netzwerk.
Offenbar geht es darum, eine Funktion mit Gewichten und Offsets zu erhalten und die Ausgaben zu berechnen.

Beispiel: So erhalten Sie die Gewichte der ersten Schicht aus Darch: print(NN@layers[[1]]$weights)

Gibt es ein vorgefertigtes Skript, um eine solche fest kodierte Funktion zu erstellen?

 

Erstellung grundlegender Funktionen für den Handel mit Kryptowährungen über R. Crypto Exchange ist bittrex, einmal bestanden alle Kontrollen gibt, so konnte ich jetzt Code in Aktion auf einmal zu überprüfen.
Im Code sollten Sie die Werte API_KEY und API_SECRET in die Werte ändern, die Ihnen die Börse persönlich in den Profileinstellungen gibt.

Weniger von diesem Tauscher - ihre api haben keine Funktion, um ohlc Werte zu erhalten, müssen Zecken selbst zu sammeln und von ihnen zu bauen ohlc Bars (oder laden Sie sie von externen Ressourcen). Und für den Zugriff auf die API und Trolling durch sie (und durch R) müssen Identität Überprüfung passieren, und aktivieren Sie 2fa.

Wahrscheinlich sollte ein Austausch, der ohlc über api gibt, und erfordert keine Identitätsprüfung zu handeln, alle Börsen arbeiten mit api im Allgemeinen ähnlich ist, kann dieses Skript leicht für eine andere neu gemacht werden.

 
Maxim Dmitrievsky:

Aber ja, 90 % davon sind Data Mining und 10 % Modellauswahl.

+100!
 
Yuriy Asaulenko:

Sie werden also bald eine Minenfarm für Minenstrategien benötigen.


Nun, jetzt ist die Situation folgende: der Bot, den ich vorher gemacht habe, hat eine sehr coole Optik auf eine kleine Distanz, auf der Vorwärtsseite arbeitet er 50/50, d.h. wenn sich der Markt nicht verändert hat, geht er hoch, wenn er sich verändert hat, geht er runter. Es kann modifiziert werden, mehr Reshetovs Neuronen können hineingequetscht werden, oder es gibt eine Version, die auf Fuzzy-Logik basiert, sie ist sogar noch abrupter, aber sie erhöht die optimierbaren Gewichte ... also im Grunde genommen, wenn ich es einen Tag lang in der Cloud trainiere und etwa ... ich weiß nicht ... 100 Pfund dafür bezahle, sollte es wahrscheinlich lange halten und guten Profit bringen, aber ich bin mental nicht bereit für so lange Trainings. Die zweite Variante ist ein selbstoptimierendes System, es ist noch nicht fertig, es kann sich selbst ohne Optimierer neu trainieren. Mir gefällt diese Variante besser, aber es ist noch nicht klar :)

 
Maxim Dmitrievsky:

Nun, jetzt ist die Situation wie folgt: der Bot, den ich vorher gemacht habe, ist sehr cool optimal auf einer kleinen Strecke, auf dem Terminmarkt arbeitet er 50/50, d.h. wenn der Markt sich nicht verändert hat, geht er hoch, wenn er sich verändert hat, geht er runter. Es kann modifiziert werden, mehr Reshetovs Neuronen können hineingequetscht werden, oder es gibt eine Version, die auf Fuzzy-Logik basiert, sie ist sogar noch abrupter, aber sie erhöht die optimierbaren Gewichte ... also im Grunde genommen, wenn ich es einen Tag lang in der Cloud trainiere und etwa ... ich weiß nicht ... 100 Pfund dafür bezahle, sollte es wahrscheinlich lange halten und guten Profit bringen, aber ich bin mental nicht bereit für so lange Trainings. Die zweite Option ist ein selbstoptimierendes System, es ist noch nicht fertig, es wird sich selbst ohne den Optimierer neu trainieren ... Diese Variante gefällt mir besser, aber es ist noch nicht klar :)

Ich verstehe nicht, was der Optimierer ist?

Wenn ich Optimierer höre, habe ich schlechte Assoziationen mit einem Tester-Optimierer MT.

 
Yuriy Asaulenko:

Ich verstehe nicht, was ist ein Optimierer?

Wenn ich Optimierer höre, habe ich eine schlechte Assoziation mit einem MT-Tester-Optimierer.


ja, warum nicht gut? MO ist im Grunde genommen Optimierung, bevor KI erfunden wurde.

Auch die Genetik ist ein MO

 
Maxim Dmitrievsky:

ja, warum nicht gut? Bis zur Erfindung der KI ist MO im Wesentlichen Optimierung.

Auch die Genetik ist ein Teil der KI.

Bei der Optimierung geht es um Kriterien. Die Optimierung nach dem maximalen Gewinn ist kein sehr gutes Kriterium. Gleichzeitig gibt es keinen Grund zu glauben, dass es in Zukunft irgendwie funktionieren wird, was wir in der Praxis, insbesondere in diesem Forum, oft sehen.