Indicadores: PCA Synthetics - Recycle Legacy

 

PCA Synthetics - Recycle Legacy:

Indicador para seleção automática de coeficientes para cada instrumento - numa carteira pseudo-estacionária - que busca equilibrar a zero.

Autor: Andy Sanders

 

Obrigado)) Usei a versão antiga do tópico de cointegração para mais de 2 pares)

você pode corrigir um pouco o comentário na primeira linha, não N, mas N-1

 

Você tem uma referência ao R.

1. Qual pacote (função) foi usado?

2. O que no R corresponde ao indicador?

 
ivanivan_11:

Enviei-o para revisão, obrigado

SanSanych Fomenko:

Para uma barra, o cálculo foi aproximadamente assim; para cada barra do histórico, esse código deve ser envolvido em um loop

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

Os dados em quotes.csv estão aproximadamente neste formato

'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:

Enviei-o para análise, obrigado.

Para uma barra, o cálculo foi aproximadamente assim; para cada barra do histórico, esse código deve ser envolvido em um loop

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

Os dados em quotes.csv estão aproximadamente nesse formato.

'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в

Entendi corretamente: com a ajuda do PCA, você criou um sintético e depois viu o desvio desse sintético de um determinado par de moedas?

 
СанСаныч Фоменко:
sobre estratégias - não

1. Tentei usá-lo como um oscilador, ou seja, quando estiver em baixa, calcular os coeficientes, comprar e manter até obter lucro; se não houver lucro, mover a linha OOS, recalcular os coeficientes, nivelar a posição
2. Em seguida, tentei a ideia de mestre-escravo, porque Hrenfiks a mencionou no Resikl, por exemplo, para comprar ou vender moedas com um coeficiente ligeiramente inferior ao máximo; de alguma forma, isso também não funcionou

como pegar o deslizamento - não sei, a cesta deve se mover em direção ao vetor mais forte (o par com o coeficiente mais alto), mas de forma média, desviando-se para outros pares, de modo que o par real e o sintético ainda não convergirão e, até que o problema com a mudança de sinal seja resolvido, o sintético pode simplesmente ser exibido de cabeça para baixo, de modo que ainda não está claro quando comprar e quando vender.
 
Andy Sanders:
sobre estratégias - não

1. Tentei usá-lo como um oscilador, ou seja, quando estiver em baixa, calcular os coeficientes, comprar e manter até obter lucro; se não houver lucro, mover a linha OOS, recalcular os coeficientes, nivelar a posição
2. Em seguida, tentei a ideia de mestre-escravo, porque Hrenfiks a mencionou no Resikl, por exemplo, para comprar ou vender moedas com um coeficiente ligeiramente inferior ao máximo; de alguma forma, isso também não funcionou

como pegar o deslizamento - não sei, a cesta deve se mover em direção ao vetor mais forte (o par com o coeficiente mais alto), mas de forma média, desviando-se para outros pares, de modo que o par real e o sintético ainda não convergirão e, até que o problema com a mudança de sinal seja resolvido, o sintético pode simplesmente ser exibido de cabeça para baixo, de modo que ainda não está claro quando comprar e quando vender.
Sei que você, ao contrário de muitos outros neste fórum, está familiarizado com o R. Por que não usar seus recursos? Afinal de contas, ele resolve todos os problemas mencionados acima. É chamado de co-integração. Ele é amplamente utilizado...
 
СанСаныч Фоменко:
Sei que você, ao contrário de muitos outros neste fórum, está familiarizado com o R. Por que não usar seus recursos? Afinal de contas, ele resolve todos os problemas mencionados acima. Isso se chama cointegração. Ele é amplamente usado...

Em geral, nesse caso, o R não é necessário.

Todo o mínimo necessário para a negociação de pares já está disponível nas bibliotecas do µl - o MNC usual, PCA, correlação, teste adf, se necessário, skeewness e kurtosis.

 
ivanivan_11:

Em geral, nesse caso, o R não é necessário.

Todo o mínimo necessário para a negociação de pares já está disponível nas bibliotecas do µl - o MNC usual, PCA, correlação, teste adf, se necessário, skeewness e kurtosis.

Por que ninguém tem isso? E em várias filiais ao mesmo tempo. Aqui está o que eu não entendo
 
СанСаныч Фоменко:
Por que ninguém mais tem isso? E em várias filiais ao mesmo tempo. Isso é o que eu não entendo

não use pair trading, não use esses métodos, não os discuta publicamente - há muitas variantes.

Criei um EA semelhante que calcula por meio do R, mas é difícil de testar.

Mais tarde, tentarei substituir o cálculo por bibliotecas mcl, talvez seja mais rápido testar.

[Excluído]  

Prezado Andy,

Não encontrei o parâmetro Normalize. Talvez as impressões sejam de outra versão?