Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 261

 
tiiga:

Bem, há muitos tópicos com quais índices e quais parâmetros usar para eles - então decidi fazer um programa que seleciona seu próprio conjunto de índices.

É uma rede neural de cerca de 100 neurônios (você pode mudar o número, mas mesmo com 10 ainda funciona lentamente) cada um tem seu próprio conjunto de índices diferentes de 2 a 20. Se um neurônio é morto por falha, ele recebe um novo conjunto de índices.

Otimizar primeiro o algoritmo, depois otimizar o código.
 
O algoritmo funciona perfeitamente, o mesmo algoritmo, quando eu não estava trabalhando com perus, mas alocando paternas eu mesmo, permitiu analisar milhões de neurônios com rapidez suficiente. (cerca de uma hora por um par de anos de história) são as mesas giratórias que estão desacelerando.
 
e com um dinamômetro também funcionou mais ou menos rapidamente, mas assim que aumentei o número de dinamômetros, ele diminuiu muito
 
tiiga:
E funcionou mais ou menos rápido com apenas um indicador dinâmico, mas quando aumentei o número de indicadores, tudo desacelerou drasticamente.

Devo polvilhá-lo com água benta?

Que outros conselhos posso lhe dar? Você se agarrou ao fato de ter acertado. A lógica é excelente, o algoritmo é super. Tudo é aperfeiçoado, não há erros em nenhum lugar, o código inteiro é otimizado para a velocidade de execução.

Posso dar-lhe o número de telefone do Hottabych.

 

a questão era

1) o trabalho do indicador difere se ele é chamado através do iCastom

2) É razoável tentar arrancar os cálculos do indicador e colá-los no Expert Advisor?

Também tenho uma idéia - quando clico em ajuda, ela mostra a construção 509 - li que há construções mais novas e a nova pode funcionar mais rapidamente - talvez isso ajude?

 
tiiga:

a questão era

1) o trabalho do indicador difere se ele é chamado através do iCastom

2) É razoável tentar arrancar os cálculos do indicador e colá-los no Expert Advisor?

Também tenho um pensamento - quando clico em ajuda, mostra que tenho a construção 509 - pensei ter lido que existem construções mais novas e que a nova pode funcionar mais rapidamente - talvez isso ajude?

No seu caso (teoricamente), considerando que quando você chama o indicador com novos parâmetros, o terminal carrega uma nova cópia do indicador e recalcula todo o volume do histórico no gráfico, faz sentido "cortar os cálculos do indicador". Não esqueça de adicionar o parâmetro do número de barras calculadas. Mas o bastão é sempre "duplo": um indicador correto em cada tick recalcula 1-2 barras, o código no Expert Advisor calculará um certo número de barras para cada tick (e geralmente o cálculo do algoritmo do indicador requer mais do que as 1-2 barras mencionadas anteriormente).

Tais sistemas complexos (adaptativos) devem ser executados na chegada de um novo bar. A nova construção (por enquanto experimental) não vai ajudar.

P.S. Um exemplo de "arrancar" um código indicador pode ser visto aqui.

 

Obrigado, isso soa muito bem.

Eu só preciso entender um pouco o código:)

É bom que tenha sido bem comentado.

 
TarasBY:

No seu caso (teoricamente), considerando que quando você chama o indicador com novos parâmetros, o terminal carrega uma nova cópia do indicador e recalcula todo o volume do histórico no gráfico, faz sentido "rasgar os cálculos do indicador". Não esqueça de adicionar o parâmetro do número de barras calculadas. Mas o bastão é sempre "duplo": um indicador correto em cada tick recalcula 1-2 barras, o código no Expert Advisor calculará um certo número de barras para cada tick (e geralmente o cálculo do algoritmo do indicador requer mais do que as 1-2 barras mencionadas anteriormente).

Tais sistemas complexos (adaptativos) devem ser executados na chegada de um novo bar. A nova construção (por enquanto, uma experimental) não ajudará.

P.S. Um exemplo de "arrancar" o código indicador pode ser visto aqui.


Mas existe uma opção alternativa - organizar-se com base nos amortecedores dinâmicos da EA, como no indicador, e transferir toda a lógica para a EA. Neste caso, a única coisa que o programador precisa cuidar é do tamanho dos amortecedores, que se ajustam automaticamente ao número de barras no histórico (o mesmo que o terminal faz para o indicador). Em outros aspectos, obtemos as vantagens do Expert Advisor e do indicador em um pacote (mais o número de buffers é quase ilimitado).


Como organizar buffers dinâmicos em um EA, mostrei uma vez, posso repeti-lo, se você precisar.

 
Ouvi dizer que os induladores padrão também podem ser modificados - é possível fazê-los ler um número limitado de barras em vez de toda a história?
 
tiiga:
Pensei ter ouvido que os indicadores padrão também podem ser modificados - é possível fazê-los ler um número limitado de barras ao invés de toda a história?

É claro que basta estabelecer uma condição apropriada, nos exemplos padrão é um limite variável