Indikatoren: PCA Synthetics - Recycle Legacy

 

PCA Synthetics - Recycle Legacy:

Ein Indikator für eine automatische Auswahl von Koeffizienten für jedes Symbol in einem pseudostationären Portfolio, das nach Gleichgewicht in Null strebt.

Autor: Andy Sanders

 

Danke)) Ich habe die alte Version aus dem Kointegrations-Thread für mehr als 2 Paare verwendet)

Sie können den Kommentar in der ersten Zeile leicht korrigieren, nicht N, sondern N-1

 

Sie haben einen Verweis auf R.

1. Welches Paket (welche Funktion) wurde verwendet?

2. Was in R entspricht im Indikator?

 
ivanivan_11:

Ich habe es zur Überprüfung geschickt, danke

SanSanych Fomenko:

für einen Balken war die Berechnung ungefähr so, für jeden Balken der Geschichte sollte dieser Code in eine Schleife verpackt werden

lines <- readLines("quotes.csv")
skips <- lines[-1]
sources <- read.csv(textConnection(skips), header = T, sep = ",", quote = "'", dec = ".", fill = F, stringsAsFactors = F, colClasses = c("NULL", NA, NA, NA), check.names = F)
components <- princomp(sources, cor = F)
summary(components)
components$loadings

Die Daten in quotes.csv haben ungefähr dieses Format

'X','GBPUSD.m','EURUSD.m','AUDUSD.m'
1,1.24472,1.24467,1.24475
2,1.24474,1.24470,1.24465
3,1.24475,1.24473,1.24457
4,1.24484,1.24462,1.24474
5,1.24488,1.24456,1.24481
 
Andy Sanders:

Ich habe es zur Überprüfung geschickt, danke.

Für einen Balken sah die Berechnung ungefähr so aus, für jeden Balken der Geschichte sollte dieser Code in eine Schleife eingeschlossen werden

lines <- readLines("quotes.csv")
skips <- lines[-1]
sources <- read.csv(textConnection(skips), header = T, sep = ",", quote = "'", dec = ".", fill = F, stringsAsFactors = F, colClasses = c("NULL", NA, NA, NA), check.names = F)
components <- princomp(sources, cor = F)
summary(components)
components$loadings

Die Daten in quotes.csv haben ungefähr dieses Format.

'X','GBPUSD.m','EURUSD.m','AUDUSD.m'
1,1.24472,1.24467,1.24475
2,1.24474,1.24470,1.24465
3,1.24475,1.24473,1.24457
4,1.24484,1.24462,1.24474
5,1.24488,1.24456,1.24481в

Verstehe ich das richtig: Sie haben mit Hilfe der PCA eine synthetische Kurve erstellt und sehen dann die Abweichung von dieser synthetischen Kurve für ein bestimmtes Währungspaar?

 
СанСаныч Фоменко:
über Strategien - keine

1. Ich habe versucht, es als Oszillator zu verwenden, d.h. wenn es unten ist, Koeffizienten berechnen, kaufen und halten, bis wir einen Gewinn erhalten, wenn es keinen Gewinn gibt, die OOS-Linie verschieben, Koeffizienten neu berechnen, die Position ausgleichen
2. dann habe ich die Idee von Master - Slave ausprobiert, weil Hrenfiks es in Resikl erwähnt hat, z.B. um eine Währung mit einem etwas niedrigeren Koeffizienten vom Maximum zu kaufen oder zu verkaufen, irgendwie hat es auch nicht funktioniert

wie man das Gleiten auffängt - ich weiß nicht, der Korb sollte sich in Richtung des stärksten Vektors bewegen (das Paar mit dem höchsten Koeffizienten), aber durchschnittlich, abweichend zu anderen Paaren, so dass das reale Paar und das synthetische immer noch nicht konvergieren, und bis das Problem mit dem Vorzeichenwechsel gelöst ist, kann das synthetische einfach auf den Kopf gestellt werden, so dass es immer noch unklar ist, wann man kaufen und wann man verkaufen sollte.
 
Andy Sanders:
über Strategien - keine

1. Ich habe versucht, es als Oszillator zu verwenden, d.h. wenn es unten ist, Koeffizienten berechnen, kaufen und halten, bis wir einen Gewinn erhalten, wenn es keinen Gewinn gibt, die OOS-Linie verschieben, Koeffizienten neu berechnen, die Position ausgleichen
2. dann habe ich die Idee von Master - Slave ausprobiert, weil Hrenfiks es in Resikl erwähnt hat, z.B. um eine Währung mit einem etwas niedrigeren Koeffizienten vom Maximum zu kaufen oder zu verkaufen, irgendwie hat es auch nicht funktioniert

wie man das Gleiten auffängt - ich weiß nicht, der Korb sollte sich in Richtung des stärksten Vektors bewegen (das Paar mit dem höchsten Koeffizienten), aber durchschnittlich, abweichend zu anderen Paaren, so dass das reale Paar und das synthetische immer noch nicht konvergieren, und bis das Problem mit dem Vorzeichenwechsel gelöst ist, kann das synthetische einfach auf den Kopf gestellt werden, so dass es immer noch unklar ist, wann man kaufen und wann man verkaufen sollte.
Ich gehe davon aus, dass Sie, im Gegensatz zu vielen anderen in diesem Forum, mit R vertraut sind. Warum nutzen Sie nicht seine Möglichkeiten. Immerhin lassen sich damit alle oben genannten Probleme lösen. Man nennt es Kointegration. Sie ist weit verbreitet...
 
СанСаныч Фоменко:
Ich gehe davon aus, dass Sie, im Gegensatz zu vielen anderen in diesem Forum, mit R vertraut sind. Warum nutzen Sie nicht seine Möglichkeiten. Schließlich lassen sich damit alle oben genannten Probleme lösen. Man nennt es Kointegration. Sie ist weit verbreitet...

im Allgemeinen ist R in diesem Fall nicht notwendig.

Das gesamte notwendige Minimum für den Paarhandel ist bereits in den Bibliotheken von µl vorhanden - das übliche MNC, PCA, Korrelation, adf-Test, ggf. Skeewness und Kurtosis.

 
ivanivan_11:

Im Allgemeinen wird in diesem Fall R nicht benötigt.

Das gesamte erforderliche Minimum für den Paarhandel ist bereits in den Bibliotheken auf µl vorhanden - das übliche MNC, PCA, Korrelation, adf-Test, ggf. Skeewness und Kurtosis.

Warum hat das niemand? Und das in mehreren Zweigen gleichzeitig. Was ich nicht verstehe, ist Folgendes
 
СанСаныч Фоменко:
Warum hat das sonst niemand? Und das in mehreren Filialen gleichzeitig. Das ist es, was ich nicht verstehe

Verwenden Sie keinen Paarhandel, verwenden Sie diese Methoden nicht, diskutieren Sie sie nicht öffentlich - es gibt viele Varianten.

Ich habe eine ähnliche EA, die durch R berechnet, aber es ist schwer zu testen.

Später werde ich versuchen, die Berechnung über mcl-Bibliotheken zu ersetzen, vielleicht wird es schneller zu testen sein.

[Gelöscht]  

Lieber Andy,

ich habe den Parameter Normalize nicht gefunden. Vielleicht sind die Ausdrucke von einer anderen Version?