Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 212
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
R é um sistema incrível que me abriu pessoalmente os olhos para o quão longe estávamos no MetaTrader/MQL das necessidades reais de "fazer cálculos complexos simples e agora mesmo".
Nós (desenvolvedores C++) temos a abordagem "você mesmo pode fazer tudo e nós lhe damos a base de baixo nível e a velocidade dos cálculos" em nosso sangue. Somos fanáticos por desempenho e somos bons nisso - MQL5 é ótimo em 64 bits.
Quando comecei a trabalhar em R eu mesmo percebi que precisava do maior número possível de funções poderosas numa só linha e de ser capaz de fazer investigação em geral.
Então, demos uma volta brusca e começámos a actualizar o MetaTrader 5:
É claro que estamos no início do caminho, mas o vetor certo dos esforços já está claro.
Sua motivação é ótima! Se for exatamente como você diz, você vai morder rapidamente o ninja até o osso c multichart))))
No entanto, IMHO, aqui temos que criar algo radicalmente novo, ou seja, além do que você escreveu, Sr. Reshetov, você precisa apenas de um estúdio de pesquisa, para trabalhar com conjuntos de dados arbitrários, não apenas descarregáveis do mercado, porque muitas coisas precisam tentar exemplos muito triviais e sintéticos para entender o que acontece, bem, você deve me entender como um programador programador) Eu precisaria de desenhar gráficos diferentes, gráficos de dispersão, mapas de distribuição e assim por diante. Em geral, seria muito legal se tal conjunto de ferramentas estivesse disponível diretamente no MetaEditor, mas francamente falando, eu não tenho esperança...
Mas em geral, é claro, eu gosto da tendência dos seus pensamentos))
Foi uma resposta educada, sem detalhes ou verificação. E a resposta não correspondeu a Wolfram Alpha e Matlab, o que é um problema.
Não há necessidade de contornar - a questão da raiz foi claramente afirmada.
Como assim, a resposta dele não coincidiu com a Wolfram? Não correspondeu na medida em que a resposta da pessoa não era "zero"? O homem respondeu que não pensava que no ponto zero, onde integral = 0, a densidade deve necessariamente ser zero (coloquei-lhe a questão dessa forma). Ele disse-o explicitamente. E acrescentou que o valor da densidade em qualquer ponto é irrelevante (eu li "irrelevante" como irrelevante para a pergunta em questão). Esta é uma afirmação matemática bastante clara.
Na pergunta em questão, a matemática é importante.
Nós temos a integral da função mais ou menos (função de densidade de probabilidade de distribuição gama). Todos estão habituados a que possa dar a equação de Wolfram com parâmetros: especifique parâmetros de área de integração e de função, e ela irá integrar e dar a resposta. Mas você já pensou que se você mesmo se sentasse e calculasse esse integral em um determinado domínio, você obteria 0 a zero e 1 sobre todo o domínio, e algum valor [0,1] sobre alguma sub-área. Simplesmente resolvendo a equação!
O fato de que o limite da função de densidade de probabilidade da distribuição gama vai para algum lugar na região positiva é uma propriedade dessa função. Não tem nada a ver com o que se obtém ao integrar essa função. Foi sobre isso que o homem escreveu.
Não estou a esquivar-me aos problemas de raiz. Vou reiterar que o nosso ponto foi confirmado por uma pessoa fora do nosso controle - que densidade a zero é irrelevante (irrelevante).
Sua motivação é ótima! Se tudo for exatamente como você diz, você vai morder rapidamente até o osso ninja c multichart))))
No entanto, IMHO, aqui temos que criar algo radicalmente novo, ou seja, além do que você escreveu, Sr. Reshetov, você precisa de um estúdio de pesquisa para trabalhar com conjuntos de dados arbitrários, não apenas descarregáveis do mercado, porque muitas coisas precisam tentar exemplos muito triviais e sintéticos para entender o que acontece, bem, você deve me entender como um programador programador) Eu precisaria de desenhar gráficos diferentes, gráficos de dispersão, mapas de distribuição e assim por diante. Em geral, seria muito legal se tal conjunto de ferramentas estivesse disponível diretamente no MetaEditor, mas francamente falando, eu não tenho esperança...
Mas em geral, é claro, eu gosto da tendência dos seus pensamentos)))
Está a referir-se a este "tiro" de Reshetov?
"Este R é uma espécie de bicicleta podre com rodas quadradas. O que dizer de alguns dos seus pacotes, quando a base, ou seja, o núcleo em R está torto e precisa de ser afinado seriamente com um "arquivo de lápis"? Que credibilidade podem ter aqueles que há tantos anos nem sequer se preocupam em verificar se as funções básicas em R estão correctas? Qual pode ser a "força" na fraqueza do R - a incorrecção dos cálculos através dele?
É bom que a MetaQuotes tenha aberto os olhos de alguns usuários para o fato e testes com código aberto, para que todos pudessem checar e ter certeza, de forma independente, de que não seriam infundados. Nem todos de código aberto, claro, porque alguns fanáticos religiosos da seita destrutiva de R continuarão a acreditar cegamente na "infalibilidade" dos cálculos na sua linguagem e pacotes tortuosos, em vez de se voltarem para os testes apresentados e verificá-los de forma independente, em vez de fazerem besteiras fanaticamente, defendendo a tortuosidade de R como "padrão geralmente aceite".
Agora é bastante óbvio que seria melhor usar a funcionalidade MQL para criar estratégias de negociação, pois o resultado será mais correto, ao invés de tentar fazê-lo via curva e inclinação R.
Agradecimentos especiais aos desenvolvedores da MetaQuotes por sua abordagem construtiva, testes e suas fontes, bem como por revelar o "rei nu - R"!
É a isto que se refere o "remate" Reshetov?
Não, esta é a mensagem:
R, assim como muitos outros idiomas, é até agora mais conveniente para a aprendizagem da máquina do que o MQL porque tem uma funcionalidade inerente para processar dados em arrays. O problema é que uma amostra para aprendizagem da máquina é, na maioria das vezes, uma matriz de dados bidimensional, por isso precisa de uma funcionalidade para trabalhar com arrays:
Até que a MQL tenha implementado a funcionalidade acima mencionada necessária para o manuseio de amostras em arrays, a maioria dos desenvolvedores de algoritmos de aprendizagem de máquinas preferirá outras linguagens de programação que já tenham tudo isso disponível. Ou usarão o MLP (algoritmo dos anos 60) não pretensioso da biblioteca AlgLib onde, se bem me lembro, por conveniência, as matrizes bidimensionais são representadas como unidimensionais.
Naturalmente, as funções para densidades de distribuições aleatórias também são uma funcionalidade necessária. Mas tais funções nem sempre são necessárias em tarefas de aprendizagem de máquinas, e em algumas tarefas não são utilizadas de todo. Mas operações com amostras como arrays multidimensionais são o que a implementação de algoritmos de aprendizagem de máquinas é sempre necessária para qualquer tarefa, a menos, claro, que seja uma tarefa de ensinar uma grelha a aprender dados obviamente normalizados a partir de CWR triviais.
É a isto que se refere o "remate" Reshetov?
"Este R é podre - uma bicicleta com rodas quadradas. O que dizer de alguns de seus pacotes, quando a base, ou seja, o núcleo em R está torto e precisa de melhorias sérias "com um arquivo de lápis"? Que credibilidade podem ter aqueles que há tantos anos nem sequer se preocupam em verificar se as funções básicas em R estão correctas? Qual pode ser a "força" na fraqueza do R - a incorrecção dos cálculos através dele?
É bom que a MetaQuotes tenha aberto os olhos de alguns usuários para o fato e testes com código aberto, para que todos pudessem checar e ter certeza, de forma independente, de que não seriam infundados. Nem todos de código aberto, claro, porque alguns fanáticos religiosos da seita destrutiva de R continuarão a acreditar cegamente na "infalibilidade" dos cálculos na sua linguagem e pacotes tortuosos, em vez de se voltarem para os testes apresentados e verificá-los de forma independente, em vez de fazerem besteiras fanaticamente, defendendo a tortuosidade de R como "padrão geralmente aceite".
Agora é bastante óbvio que seria melhor usar a funcionalidade MQL para criar estratégias de negociação, pois o resultado será mais correto, ao invés de tentar fazê-lo via curva e inclinação R.
Agradecimentos especiais aos desenvolvedores da MetaQuotes pela sua abordagem construtiva, testes e suas fontes, bem como pela identificação do "Rei Nu - R"!
Já apagou o seu post sobre o "MQL minky"? Estão a esfregar os vossos postos da mesma forma que as figuras radovianas esfregam os seus livros de rosto depois de Trump ter sido eleito.
Aqui está um exemplo de uma distribuição gama na Wolfram Alpha por diversão.
É-lhe dada uma função, uma função de densidade de distribuição gama ligeiramente simplificada.
A questão está no denominador x. O limite à direita, como você pode ver, em x->0 Wolfram estima corretamente: inf.
Ou seja, no limite à direita a densidade a zero está no infinito (esta é exatamente a resposta para dgamma).
Vamos integrar esta função no grande saport:
O integral é 1 (arredondado, é claro, porque não é tomado o sapport completo).
Conclusão, apesar de a função ir ao infinito no ponto extremo, a integral desta função conta bem como deveria.
Aqui está um exemplo da distribuição gama na Wolfram Alpha, só por diversão.
A conclusão é que mesmo que a função vá ao infinito no ponto extremo, a integral dessa função conta bem como deveria.
Obrigado pelo exemplo, você está certo. Esta integral é convergente.
O extremo no ponto x=0 também pode ser usado para determinar a densidade e não levará à divergência.
Obrigado pelo exemplo, você está certo. Essa integral é convergente.
Os valores limite em x=0 também podem ser usados para determinar a densidade e isso não levará a divergências.
Obrigado! Respeito.
Exemplo de R com pacotes de processamento rápido.
library(data.table)
library(ggplot2)
start <- Sys.time()
set.seed(1)
dummy_coef <- 1:9
x <- as.data.table(matrix(rnorm(9000000, 0, 1), ncol = 9))
x[, (paste0('coef', c(1:9))):= lapply(1:9, function(x) rnorm(.N, x, 1))]
print(colMeans(x[, c(10:18), with = F]))
x[, output:= Reduce(`+`, Map(function(x, y) (x * y), .SD[, (1:9), with = FALSE], .SD[, (10:18), with = FALSE])), .SDcols = c(1:18)]
x[, sampling:= sample(1000, nrow(x), replace = T)]
lm_models <- x[,
{
lm(data = .SD[, c(1:9, 19), with = F], formula = output ~ . -1)$coefficients
},
by = sampling]
lm_models[, coefs:= rep(1:9, times = 1000)]
avg_coefs <- lm_models[, mean(V1), by = coefs]
plot(dummy_coef, avg_coefs$V1)
lm_models[,
print(shapiro.test(V1)$p.value)
, by = coefs]
ggplot(data = lm_models, aes(x = V1)) +
geom_histogram(binwidth = 0.05) +
facet_wrap(~ coefs, ncol = 3)
Sys.time() - start
Tempo de duração: 5 segundos. Foram construídos 1.000 modelos lineares. Cada uma em 1000 observações.
[1] 0.8908975
[1] 0.9146406
[1] 0.3111422
[1] 0.02741917
[1] 0.9824953
[1] 0.3194611
[1] 0.606778
[1] 0.08360257
[1] 0.4843107
Todos os coeficientes são normalmente distribuídos.
E ggplot-ic para visualização.
E outro exemplo. Também está relacionado com a grande rotação de amostras para simulação estatística.
########## simulate diffference between mean density with different sample size
library(data.table)
library(ggplot2)
rm(list=ls());gc()
start <- Sys.time()
x <- rnorm(10000000, 0, 1)
y <- rnorm(10000000, 0, 1)
dat <- as.data.table(cbind(x, y))
dat[, (paste0('sampling_', c(100, 1000, 10000))):= lapply(c(100, 1000, 10000), function(x) sample(x, nrow(dat), replace = T))]
dat_melted <- melt(dat, measure.vars = paste0('sampling_', c(100, 1000, 10000)))
critical_t <- dat_melted[,
{
mean(x) - mean(y)
}
, by = .(variable, value)]
ggplot(critical_t, aes(x = V1, group = variable, fill = variable)) +
stat_density(alpha = 0.5)
Sys.time() - start
gc()
Tempo de funcionamento 3,4 segundos.
Normalmente são criadas amostras distribuídas centradas a zero:
1.000 por 10.000 pares de valores
10 000 sobre 1 000 pares de valores
100.000 de 100 pares de valores
A diferença entre as médias (MO == 0) para cada amostra é contada.
As densidades de distribuição das médias de amostragem para amostras de diferentes tamanhos são derivadas.
Somente aqui a amostragem_100 significa que você precisa de 10.000.000 / 100 para obter o tamanho da amostra. Ou seja, para amostras menores, o erro padrão é maior...