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

 
Alexey Burnakov:

Você não tem idéia de como seu modelo funciona durante longos períodos: não há nenhum grande teste para frente e nenhum teste para caminhar para frente. O seu modelo pode ser um conjunto de ruídos de aprendizagem que você confundiu com sinais em algumas fotos bem escolhidas.

Sugiro que reconsidere a sua abordagem e faça testes extensivos primeiro. Você verá cochos e montanhas e talvez, mas improvável, você superará um pouco a expectativa de maturidade zero. E tudo isto pode ser feito antes de começares a perder dinheiro a sério.

Acima de tudo, estou surpreendido com a sua confiança no meu sistema. Bem, vamos ver no final da semana, vou mostrar-te como funciona... Está bem?
 
Mihail Marchukajtes:
O que mais surpreende é a sua confiança no meu sistema. Bem, vamos ver no final da semana, eu mostro-te como funciona... Está bem?

Não o faças. Uma semana mais, uma semana menos. Não é nenhuma indicação.

Não estou 100% certo sobre o seu sistema. Há uma declaração de fato: você não sabe como vai se comportar durante um período mais ou menos longo. Este é um fio para compartilhar experiências. Eis a minha experiência de que os seus resultados até agora podem ser ou um acaso ou um padrão, mas um acaso com uma chance muito maior. E eu estou a dar-te conselhos.

 

Olá!

Estou tentando rodar uma rede convolucional a partir do pacote mxnethttp://tjo-en.hatenablog.com/entry/2016/03/30/233848, mas não é muito claro como rodá-la com "nossos" dados, ou seja, na forma de strings, porque a rede funciona principalmente com fotos e os dados são tirados na forma de um array multidimensional com matrizes, em suma, se alguém entende e sabe como rodá-la, eu ficaria muito grato por um exemplo da rede com, digamos, "irises".

{mxnet} R package from MXnet, an intuitive Deep Learning framework including CNN & RNN - Data Scientist TJO in Tokyo
{mxnet} R package from MXnet, an intuitive Deep Learning framework including CNN & RNN - Data Scientist TJO in Tokyo
  • 2016.03.30
  • tjo-en.hatenablog.com
Actually I've known about MXnet for weeks as one of the most popular library / packages in Kaggler, but just recently I heard bug fix has been almost done and some friends say the latest version looks stable, so at last I installed it. Convolutional Neural Network (CNN) I believe almost all readers of this blog already know well about Deep...
 
Mihail Marchukajtes:
Nem pensar... Você precisa observar o número de erros fora do número total e se os erros subirem, você deve reciclar a rede. Por exemplo, se tiver 4 erros em 20 sinais, não há problema, se o número de erros aumentar, é necessário re-treinar a rede. Outra questão surge ... que modelo escolher para que se possa confiar nele para 10 sinais. Bem, o Yuri descreveu-o. Vamos escolher o modelo que mostra o nível máximo de generalização tanto dos modelos binários como trinários e começar a trabalhar com ele. E para aumentar qualitativamente o tempo de trabalho de uma estratégia, devemos aumentar o intervalo de treinamento, e para aumentá-lo precisamos aumentar o número de entradas. Ou seja, 10 entradas podem ver 100 sinais a zero. 15 entradas podem lidar com 225 entradas, o que é 6 semanas de sinais, portanto o tempo de rede fora de amostra será maior, não uma semana, mas duas semanas. Com uma taxa de erro adequada. Não é possível trabalhar sem erros. Gostaria, mas não é possível. O principal é reduzir a influência deste erro no seu depósito e você está no negócio).

Por favor, tenha cuidado com a libVMR ou jPredictor, eles mostram um desempenho inflacionado em forex. Para forex é muito importante testar os dados fora da amostra de treinamento. libVMR ou jPredictor pega dados de um arquivo fonte, seleciona aleatoriamente metade das linhas para treinar um modelo, depois constrói um modelo sobre esses dados, e os testa nas linhas restantes. Isto pode ser adequado para avaliar o reconhecimento de imagens, ou texto, ou qualquer outra tarefa simples. Mas não vai ser bom para o forex.

Faça uma experiência simples: Você tem, tipo, 200 linhas no arquivo de treinamento e você tem um intervalo de previsão de 30%. Então divida o arquivo em dois - o primeiro arquivo terá 150 primeiras linhas, o segundo arquivo terá as 50 últimas linhas restantes. Treine o jPredictor no novo arquivo com 150 linhas. Depois use "use modelo" para fazer uma previsão para as 50 linhas restantes (você terá que inserir os dados um por um, vai levar algum tempo). Conte o número de respostas corretas, não será 90%, acho que será cerca de 60%, na melhor das hipóteses.
Você ainda está em lucro apenas por causa do seu indicador principal, parece ser mais ou menos lucrativo como ele é, e graças ao filtro adicional no neurônio você apenas o melhora ligeiramente.

 
Alexey Burnakov:

Não o faças. Uma semana mais, uma semana menos. Não é um indicador.

Não estou 100% certo sobre o seu sistema. Há uma declaração de fato: você não sabe como vai se comportar durante um período mais ou menos longo. Este é um fio para compartilhar experiências. Eis a minha experiência de que os seus resultados até agora podem ser ou um acaso ou um padrão, mas um acaso com uma chance muito maior. E eu estou a dar-te conselhos.

Então, queres um graal. Treinaste uma vez e vais cortar cupões para o resto da tua vida? Ai sim? Estou surpreso, em que ano você está no mercado? Se não é segredo...... Você sabe que o mercado está mudando constantemente e depois de um tempo o modelo simplesmente desaparece. Se você quer que o modelo funcione por muito tempo, use um gráfico mensal, neste caso é a melhor opção. E assim, durante 5 minutos por semana é um resultado bastante normal, então você está treinando demais ..... E se você trabalhar por uma quinzena, então é ótimo....
 
Dr. Trader:

Por favor, tenha cuidado com a libVMR ou jPredictor, eles mostram um desempenho inflacionado em forex. Para forex é muito importante testar os dados fora da amostra de treinamento. libVMR ou jPredictor pega dados de um arquivo fonte, seleciona aleatoriamente metade das linhas para treinar um modelo, depois constrói um modelo sobre esses dados, e os testa nas linhas restantes. Isto pode ser adequado para avaliar o reconhecimento de imagens, ou texto, ou qualquer outra tarefa simples. Mas não vai funcionar em forex.

Vamos fazer uma experiência simples: acho que você tem 200 linhas no arquivo de treinamento e o intervalo de previsão é de 30%. Então divida o arquivo em duas - o primeiro arquivo terá 150 primeiras linhas, o segundo arquivo terá as 50 últimas linhas restantes. Treine o jPredictor no novo arquivo com 150 linhas. Depois use "use modelo" para fazer uma previsão para as 50 linhas restantes (você terá que inserir os dados um por um, levará algum tempo). Conte o número de respostas corretas, não será 90%, acho que será cerca de 60%, na melhor das hipóteses.
Você ainda está em lucro apenas por causa do seu indicador principal, provavelmente é mais ou menos lucrativo de qualquer maneira, e graças ao filtro adicional no neurônio você está apenas ligeiramente melhorando-o.

Você simplesmente não sabe como preparar os dados :-) Não tenho qualquer alcance de previsão, não estou a prever nada. 30% é um intervalo de confiança, o intervalo em que se pode confiar no modelo, se não todos os 50%. Isto é, se você foi treinado por três semanas, deve funcionar por uma semana. Trabalho com o preditor do Yury há mais de um ano e entendo muitas coisas, bem como como preparar dados, o que pode (preditor) e o que simplesmente não pode (preditor). Você pode me enviar um arquivo com seus dados, eu vou treinar o modelo e você vai ver como ele funciona no futuro, se você quiser, é claro ...

E se o fizer, nós faremos o seguinte. Tira uma semana atrás... (esta semana será uma semana de teste, fora da amostra) Salvar os dados à taxa de 10 entradas = 100 registros, de modo a não treinar por muito tempo. Eu vou treinar o modelo, vocês aplicam-no ao vosso TS, descrevem preliminarmente o princípio da sua construção e mostram o resultado da última semana, e depois veremos.... O que você acha?

 
Mihail Marchukajtes:

Isto é, se você foi treinado por três semanas, você deve trabalhar por uma semana.

E eu estava a pensar onde está o senão? Bem, não havia ninguém no fórum que realmente ganhasse com o artesanato da Reshetov. Mas lá está ele! A captura, claro).
 
Combinador:
Estava a pensar onde está o senão. Bem, ainda não houve um homem no fórum que realmente ganhasse dinheiro com o artesanato da Reshetov. E aqui está ela! O senão, claro ).
Depende de como..... Gostei muito do seu trabalho manual, tem um grão racional, mas quem não pode usá-lo corretamente, de modo que nada vai ajudar. Dê-me um sistema que funcione durante um ano sem um único erro, e eu acredito nisso. É tudo uma treta. Fico espantado com esses gajos, como aqueles que perguntam, bem, para onde vai o preço, ou quantos pontos este sinal vai ganhar. Você é ingénuo. O mercado é tal que é impossível conhecer o futuro...... Mas você não pode entender tudo isso....
 
Mihail Marchukajtes:

Bem, o exemplo actual que funciona na fotografia que tenho agora é feito a partir deste ficheiro

Como se calcula o lucro de 100 pontos após o sinal?

Por exemplo, você pode pegar n candelabros no futuro e medir suas sombras. Se algum castiçal tem uma diferença entre a sua sombra e o preço actual na direcção do sinal de pelo menos 100 pontos, então nós definimos um. Se a condição não funcionar para nenhum dos castiçais, o resultado é 0.

A segunda variante: faça um EA com um StopLoss e Takeaway a 100 pontos da vela atual e abra as negociações pelo sinal e memorize o padrão. Depois da posição estar fechada, nós olhamos para ela. Se fechar sobre um lucro, marcamos este padrão na amostra com 1, se mostrar uma perda, marcamos com zero.

Claro, você pode enviar o código de um script ou de um Expert Advisor que coleta dados para amostragem, por exemplo, para mim na minha área pessoal. Vou resolver isto sozinha.

Atualmente estou tentando adaptar o jPrediction para que eu não tenha que extrair o código e compilá-lo em MQL. O EA irá despejar um padrão em um arquivo e a ferramenta Java, um classificador ternário, irá ler tais arquivos e, se confirmar o sinal, exibirá um alerta com aviso e um sinal sonoro. IMHO isto vai ser mais fácil?

Mais tarde, podemos fazer um modo totalmente automático para que o classificador e o Expert Advisor possam trocar arquivos e abrir negociações automaticamente por conta própria.

 
Yury Reshetov:

O que eu preciso saber, como se calcula o lucro de 100 pips após o sinal?

Por exemplo, você pode pegar n candelabros no futuro e medir suas sombras. Se algum castiçal tiver uma diferença entre a sombra e o preço actual na direcção do sinal de pelo menos 100 pips, então defina um. Se a condição não funcionar para nenhum dos castiçais, o resultado é 0.

A segunda variante: faça um EA com um StopLoss e Takeaway a 100 pontos da vela atual e abra as negociações pelo sinal e memorize o padrão. Depois da posição estar fechada, nós olhamos para ela. Se fechar sobre um lucro, marcamos este padrão na amostra com 1, se mostrar uma perda, marcamos com zero.

Claro que você pode me enviar em sua mensagem pessoal o código do script ou do Expert Advisor que coleta dados para amostragem. Vou resolver isto sozinha.

Atualmente estou tentando adaptar o jPrediction para que eu não tenha que extrair o código e compilá-lo em MQL. O EA irá despejar um padrão em um arquivo e a ferramenta Java, um classificador ternário, irá ler tais arquivos e, se confirmar o sinal, exibirá um alerta com aviso e um sinal sonoro. IMHO seria mais fácil?

Mais tarde, podemos fazer um modo totalmente automático para que o classificador e o Expert Advisor possam trocar arquivos e abrir negócios automaticamente por conta própria.

É muito mais simples do que isso. Calculo a diferença entre o clone do sinal corrente e o clone do sinal anterior, se esta diferença for positiva tendo em conta a direcção do sinal e a positividade da diferença for superior a 100 pips, então o sinal anterior é "um", se menos - "zero". Eu guardo tudo com a ajuda do Loafer, aquele escrito para a neuroshell. Eu tenho uma boa idéia de salvar qualquer dado de qualquer indicador no arquivo ksv, então é assim..... Eu não uso EAs, eu troco à mão e coloco modelos no indicador, é por isso que eu não preciso de nenhum EA. A coisa mais fácil a fazer é manter o modelo Ternary junto com o binário. Por exemplo, para um modelo binário prefixo _2 ao nome do arquivo, para um modelo ternário _3 e será suficiente..... IMHO. Tudo brilhante é simples, não há necessidade de complicar as coisas.

Aqui está uma EA que guarda os dados de quaisquer indicadores, olha a função durante 5 minutos, eu tenho os meus indicadores lá. No entanto é tudo para o MT4, eu só trabalho nele... adeus....

Arquivos anexados: