Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 74
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Yuri, eu decidi usar o santo dos santos e fazer um graal, mas consegui uma inscrição que previa valores que não podem ser mais do que 10. Isto é uma restrição deliberada ou um limite do algoritmo ???? Porque mais de 10 é extremamente relevante so....
Após 10 pode haver um overflow do tipo int, e tem apenas 32 bits, ou seja, antes do overflow pode conter números que não excedam o valor 2^32=2147483648. É só um pouco mais do que dois biliões. É claro, você pode implementar contadores com maior capacidade de dígitos, mas a velocidade de cálculo será várias vezes mais lenta.
É por isso que o Dr.Trader não pôde executar a libVMR completa reescrita em R - demasiados cálculos e come muita memória.
Após 10 pode haver um overflow do tipo int, e tem apenas 32 bits, ou seja, cabe em números sem um overflow não superior a 2^32=2147483648. É só um pouco mais do que dois biliões. Claro, você pode escrever contadores com maior profundidade de bit, mas a velocidade de cálculo será várias vezes mais lenta.
Após 10 pode haver um overflow do tipo int, e tem apenas 32 bits, ou seja, antes do overflow contém números que não excedem o valor 2^32=2147483648. É só um pouco mais do que dois biliões. Claro que você pode escrever contadores com maior capacidade de dígitos, mas a velocidade dos cálculos vai cair várias vezes.
É por isso que o Dr. Trader não pôde executar a libVMR completa reescrita em R - demasiados cálculos e demasiado consumo de memória.
Deixe-me contar-lhe uma história - eu lembro-me, perguntei-lhe sobre cálculos paralelos. Para poder contar mais informações sobre o coprocessador de matemática. Apenas um idiota apareceu, ele reescreveu a LibVMRx em C++ e a comparou de alguma forma. Ele tinha um computador muito poderoso e levou cerca de 40 minutos para processar 8 colunas, como ele disse. Ele nem sequer me enviou o programa ou qualquer outra coisa, só me atormentou com desculpas e tretas. Embora eu lhe tenha fornecido todos os dados e estivesse pronto para compartilhar o sistema e as considerações para a construção do modelo. Mas ele recusou-se a ajudar-me. Essas pessoas existem. Sopre para dentro e para fora ....
Eu comparei tudo na última versão 6.01. Nada mais funciona. Se fosse possível, eu teria feito mais um paralelo. Estava a fazê-lo por mim, ou seja, preciso que tudo seja calculado mais depressa.
Agora eu inventei um algoritmo para calcular os preditores fracos para que eles possam ser removidos. Levará muito tempo para calcular, mas valerá a pena, porque em vez de um preditor fraco, você pode substituí-lo por um mais forte. Ou livrar-se dos fracos preditores, aumentando tanto a velocidade de cálculo como a capacidade de generalização. Porque, para negociar, você precisa executar constantemente um recálculo dos modelos assim que o mercado começar a fazer batota. E é assim que o mercado é, assim que outros comerciantes são fundidos, eles mudam suas estratégias e você tem que se ajustar a eles novamente.
Eu comparei tudo na última versão 6.01. Nada mais funciona. Se fosse possível, eu teria feito mais um paralelo. Estava a fazê-lo por mim mesmo, ou seja, preciso de calcular tudo mais depressa.
Agora eu inventei um algoritmo, como calcular os preditores fracos, para que eles possam ser removidos. Levará muito tempo para calcular, mas valerá a pena, porque em vez de um preditor fraco, podemos substituir os mais fortes. Ou livrar-se dos fracos preditores, aumentando tanto a velocidade de cálculo como a capacidade de generalização. Porque, para negociar, você precisa executar constantemente um recálculo dos modelos assim que o mercado começar a fazer batota. É assim que o mercado é, assim que outros traders se fundem, eles mudam suas estratégias e você tem que se adaptar a eles novamente.
É isso mesmo. Estou ansioso pelas mudanças.
É possível passar manualmente pelos preditores um a um, mas é longo e doloroso, embora seja também a direcção certa. Você precisa de muito tempo, mas deve ser automático e em tempo razoável e não tão excruciante.
Mihail Marchukajtes:
Estamos do mesmo lado da cerca, eu também acredito que o mercado está em constante mudança e precisa ser ajustado cada vez que algo acontece ou notícias são divulgadas. Não procure por um graal em 5 anos, como algumas pessoas fazem. Isto é utopia, mas eu já estou exausto de explicar...É possível encontrar graos fracos de jogo longo. Eu tinha alguns deles. Mas o meu lucro está à beira da falta, o meu lucro é de um centavo, mesmo que eu tenha um bom depósito.
Teoricamente é possível encontrar um graal forte de longa duração, mas a probabilidade é provavelmente zero ponto zero?
Da maneira mais segura:
HM... Olha, agora que eu treinei o modelo, ambos os modelos têm os mesmos valores de nível de generalização, ou seja, o segmento de mercado é serrado da mesma forma pelos dois modelos. Acho que esta é a chave para escolher o modelo apropriado. Eu continuo treinando, procurando por insumos, etc.
Vê no ficheiro java. Se há linhas "Variable got under reduction", elas indicam preditores fracos. Tais preditores são excluídos do código modelo - eles não são calculados em nenhum lugar no código de classificador binário.
É verdade, se todos os preditores forem aproximadamente os mesmos, tais linhas não aparecem.
Aqui está um exemplo (destacado em negrito). O sexto preditor v5 (contado de zero) - a sétima coluna em CSV pode ser substituída por outra mais forte:
Vê no ficheiro java. Se há linhas "Variable got under reduction", elas indicam preditores fracos. Tais preditores são excluídos do código modelo - eles não são calculados em nenhum lugar no código de classificador binário.
É verdade, se todos os preditores forem aproximadamente os mesmos, tais linhas não aparecem.
Aqui está um exemplo (destacado em negrito). O sexto preditor v5 (contado de zero) - a sétima coluna do CSV pode ser substituída por outra mais forte:
double getBinaryClassificator1(double v0, double v1, double v2, double v3, double v4, double v5) {
duplo x0 = 2,0 * (v0 + 1,0) / 2,0 - 1,0;
duplo x1 = 2,0 * (v1 + 1,0) / 2,0 - 1,0;
duplo x2 = 2,0 * (v2 + 1,0) / 2,0 - 1,0;
duplo x3 = 2,0 * (v3 + 1,0) / 2,0 - 1,0;
duplo x4 = 2,0 * (v4 + 1,0) / 2,0 - 1,0;
//Variável v5 ficou em redução
dupla decisão = -0,23641879194630872 -0,10890380313199105 * x2
-0,14546040268458456376 * x0 * x2
+ 0,07270693512304251 * x1 * x2
-0.07182997762863534 * x3
-0,07383982102908278 * x0 * x1 * x2 * x3
-0.4362541387024608 * x4
;
decisão de retorno;
}