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

 
Zhunko:

A otimização tem que ser feita primeiro. A velocidade MQL4 é adequada para a maioria das tarefas.

Há um exemplo de DLL na pasta MT4.


Refiro-me a tarefas individuais, onde uma execução do roteiro leva várias horas. O que você quer dizer com otimização?
 
Bem, algumas horas é muito, geralmente há opções para fazer com que os cálculos trabalhem mais rápido, redesenhando o algoritmo de cálculo, tirando ações repetitivas do loop, evitando construções lentas, matrizes multidimensionais, etc.
 
splxgf:
Bem, algumas horas é muito. Normalmente, existem variantes para fazer cálculos mais rápidos, modificando o algoritmo dos cálculos, movendo ações repetitivas para fora do loop, evitando construções lentas, matrizes multidimensionais, etc.

Você tem uma resposta para a pergunta: é melhor armazenar características de pedidos abertos em uma matriz multidimensional ou em várias matrizes unidimensionais, uma por característica? Eu tentei de ambas as maneiras. Eu não notei nenhuma diferença na velocidade. Qual é a melhor maneira (ordens diferentes, tanto de mercado como pendentes, e talvez até ordens de perda dirigidas de forma diferente)?

Provavelmente, "de acordo com as exigências do problema"?

 
splxgf:
Bem, algumas horas é muito, geralmente há opções para fazer com que os cálculos trabalhem mais rápido, redesenhando o algoritmo de cálculo, tirando ações repetitivas do loop, evitando construções lentas, arrays multidimensionais, etc.

Se não for difícil, você pode mostrar um exemplo de tal otimização. Por exemplo, considera todos os períodos do indicador Alligator iAlligator de 1-100 (7 períodos), as próprias operações matemáticas são simples (adição, subtração).

 
snail09:

Você tem uma resposta para a pergunta: é melhor armazenar características de pedidos abertos em uma matriz multidimensional ou em várias matrizes unidimensionais, uma por característica? Eu tentei de ambas as maneiras. Eu não notei nenhuma diferença na velocidade. Qual é a melhor maneira (ordens diferentes, tanto de mercado como pendentes, e talvez até ordens de perda dirigidas de forma diferente)?

Provavelmente, seria "de acordo com a declaração do problema", não seria?


Eu ainda não o encontrei, não sei. Mas se seu código estiver correto e fizer a tarefa, acho que não faz diferença em que conjunto.
 
khorosh:
Existe algum indicador de patrimônio líquido que permita definir uma data em sua variável externa, de modo que todas as ordens abertas antes dessa data não sejam levadas em conta no cálculo do patrimônio líquido?


Olhe para estes... Iniciar_Monitoramento e Draw_Begin...

Arquivos anexados:
 
FelixFX:

Estou me referindo a tarefas individuais, onde a execução de um roteiro leva várias horas. O que você quer dizer com otimização?
Pretendo modificar o código para que ele funcione mais rapidamente. Há algumas características especiais da MQL4, conhecendo-as, você pode acelerar os cálculos várias vezes. Sem seu código, você não pode dizer o que pode ser otimizado.
 
Zhunko:
Isto significa modificar o código para que ele funcione mais rapidamente. Há peculiaridades da MQL4, conhecendo-as, você pode acelerar os cálculos várias vezes. Sem seu código, é impossível dizer o que pode ser otimizado.

Por exemplo, considere todos os períodos do indicador Alligator iAlligator de 1-100 (7 parâmetros variáveis), as operações matemáticas são simples (adição, subtração - por exemplo, pode-se tomar a soma das diferenças de preços máximos e mínimos de cada barra, cujo preço de fechamento é superior a todas as linhas do indicador).
 
FelixFX:

Eu ainda não me deparei com isso, não sei. Mas se seu código estiver correto e fizer o que deve fazer, acho que não faz diferença em qual matriz.
Ambas as opções estão corretas. Foi por isso que eu perguntei. E como você rastreia "suas" ordens? Por favor, compartilhe.
 
FelixFX:

Se não for difícil, você pode mostrar um exemplo de tal otimização. Por exemplo, considera todos os períodos do indicador jacaré iAlligator de 1-100 (7 períodos), as próprias operações matemáticas são simples (adição, subtração).

Por exemplo, o problema é quantas vezes o preço cruzou um determinado nível nos últimos dois anos.

1. Você pode examinar cada nível e verificar os dados durante dois anos. Os custos: o número de barras multiplicado pelo número de níveis.

2. Você pode criar um conjunto separado de níveis. É suficiente rever todas as barras verificando e incrementando os elementos necessários da matriz. Neste caso, os cálculos serão mais rápidos.

Razão: