Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 532

 
anónimo:

e transpor conforme necessário de acordo com a dimensão da matriz

Basta usar as duas funções kohonen::classvec2classmat, kohonen::classmat2classvec. Você pode simplesmente copiar essas funções para si mesmo e usá-las conforme necessário.

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

Boa sorte.

 
elibrarius:

Outro problema com o R.

Em um computador está tudo bem, no outro há alguns requisitos acrescidos para a correção do código.

Por exemplo

darch.unitFunction = linearUnit - causou a queda do Rterm.exe

transformado em

darch.unitFunction ="linearUnit" (unidade linear)

este ponto começou a passar antes do próximo erro.

Também teve que mudar de biblioteca(darch) para requerer(darch)

Agora é a própria aprendizagem que é uma chatice.

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

Eu tentei muitas variantes, o Rterm.exe sempre falha.

O R tem algum tipo de controle de nível de erro? Talvez no segundo PC eu acabasse com um nível de erro para resolver quando parasse em cada aviso?

Em ambos os computadores eu instalei R com as configurações padrão, instalei todos os pacotes.
Como é que eu o arranjo?

Tire uma foto da sessão em um e outro PC e compare-os. Por exemplo

> 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  

boa sorte

 
Vladimir Perervenko:

Tire uma foto da sessão em um e no outro computador e compare-os. Por exemplo

boa sorte

Não por esse método, mas eu descobri-o - mais por tentativa e erro.
Obrigado.

 

A propósito, vi a expressão "hardcode" uma rede.
Aparentemente é para obter a função com pesos e compensações e calcular as saídas.

Por exemplo, como obter pesos da darch para a primeira camada: print(NN@layers[[1]]$weights)

Existe algum script pronto para criar uma função tão hardcoded?

 

Funcionalidade básica para negociação de moedas criptográficas via R. A troca de criptogramas é bittrex, uma vez passei todos os cheques lá, então agora eu poderia verificar o código em ação de uma só vez.
No código você deve alterar os valores API_KEY e API_SECRET para o que a troca lhe dará pessoalmente nas configurações de perfil.

Menos deste permutador - as suas api não têm nenhuma função para obter valores ohlc, os carrapatos precisam de se recolher e por eles construir barras ohlc (ou descarregá-las a partir de recursos externos). E para acessar a api e trolling através dela (e através de R) precisa passar a verificação de identidade, e ativar o 2fa.

Provavelmente, deve encontrar uma troca que dê ohlc via api, e não exija verificação de identidade para negociar, todas as trocas trabalham com api em geral é semelhante, este script pode ser facilmente refeito para outro.

Arquivos anexados:
 
Maxim Dmitrievsky:

Mas sim, 90% são dados de mineração 10% de seleção de modelos

+100!
 
Yuriy Asaulenko:

Por isso, em breve terá de ter uma quinta mineira para estratégias de mineração.


Bem, agora a situação é esta: o bot que eu fiz antes é muito legal em uma pequena distância, no lado da frente funciona 50/50, ou seja, se o mercado não mudou, é +, se mudou, é menos. Ele pode ser modificado, mais neurônios Reshetov podem ser espremidos, ou há uma versão baseada em lógica fuzzy, é ainda mais abrupta, mas aumenta os pesos otimizáveis ... então basicamente se eu treiná-lo na nuvem por um dia e pagar cerca de ... Eu não sei ... 100 libras por ele, provavelmente deve durar muito tempo e trazer bom lucro, mas eu não estou mentalmente pronto para treinamentos tão longos. A segunda variante é um sistema auto-optimizador, ainda não está pronto, pode se retrair sem otimizador. Eu gosto mais desta variante, mas ainda não está claro :)

 
Maxim Dmitrievsky:

Bem, agora a situação é a seguinte: o bot que eu fiz antes é muito legal em uma pequena distância, no mercado a termo funciona 50/50, ou seja, se o mercado não mudou ele sobe, se mudou ele desce. Ele pode ser modificado, mais neurônios Reshetov podem ser espremidos, ou há uma versão baseada em lógica fuzzy, é ainda mais abrupta, mas aumenta os pesos otimizáveis ... então basicamente se eu treiná-lo na nuvem por um dia e pagar cerca de ... Eu não sei ... 100 libras por ele, provavelmente deve durar muito tempo e trazer bom lucro, mas eu não estou mentalmente pronto para treinamentos tão longos. A segunda opção é um sistema auto-optimizador, ainda não está pronto, vai se retrair sem o otimizador ... Eu gosto mais desta variante, mas ainda não está claro :)

Eu não entendo qual é o otimizador?

Quando ouço um optimizador, tenho más associações com um testador-optimizador MT.

 
Yuriy Asaulenko:

Eu não entendo, o que é um optimista?

Quando ouço um optimista, tenho uma má associação com um MT testador-optimista.


Sim, porque não bom? O MO é em essência a optimização antes da IA ter sido inventada.

A genética também é um MO

 
Maxim Dmitrievsky:

Sim, porque não bom? O MO é essencialmente optimização até que a IA seja inventada.

A genética também faz parte da IA.

Otimização é sobre critérios. A otimização de acordo com o lucro máximo não é um critério muito bom. Ao mesmo tempo, não há razão para acreditar que, de alguma forma, funcione no futuro, o que muitas vezes vemos na prática, em particular no fórum.