uma estratégia comercial baseada na Teoria da Onda de Elliott - página 67

 
Provavelmente em tempo real tais números são aceitáveis (embora não haja limite para a perfeição :), mas com testes de história, pelo que entendo, a situação é bastante difícil, mesmo com uma pequena amostra. Espero que você não suspeite que eu seja um adversário do uso de cálculos computadorizados? :). Logo após a leitura da linha, tive a impressão de que seria desejável acelerar consideravelmente o algoritmo.

É claro que não há dúvida de que gostaríamos de obter um algoritmo mais rápido para cálculos, especialmente para testes de história, mas, por outro lado, esta metodologia não requer uma execução multimilionária no testador, como é exigido para o ajuste tradicional em dados históricos, que a maioria dos usuários de MT4 gosta de usar assiduamente atacando os criadores deste produto (Dê mais comprimidos gananciosos!!!!); o) É necessário perceber que uma série de Expert Advisor, criada por esta metodologia em termos de aplicabilidade de resultados, será intencionalmente superior à otimizada por 10000000000 executa EA, cujos resultados seu autor é capaz de esperar para sempre nesta vida;o)))) Estou apenas dizendo isso com base em minha experiência de criar um sistema de adivinhação aleatória descrito acima neste tópico logo no início. A otimização de um Expert Advisor com base em métodos de estatísticas matemáticas consiste principalmente em uma melhoria lógica do algoritmo com parâmetros mínimos a serem ajustados (cada parâmetro tem uma área limitada para variação também), mas não na busca de alguns valores "ótimos" de diferentes osciladores e média móvel e algumas proporções encontradas no máximo global no espaço n-dimensional, conforme necessário para o ajuste padrão do histórico. O resultado atual mostrado nos postos acima foi obtido pela realização de provavelmente não mais de cinqüenta corridas completas do algoritmo sobre o histórico disponível. Após cada execução, o algoritmo foi refinado e melhorado. E no momento atual eu ainda estou fazendo a mesma coisa. Eu faço 2-3 execuções por dia, analiso os resultados e melhoro o algoritmo. Ainda não depurei completamente o algoritmo, mas já lancei a primeira versão, mais ou menos funcional, sobre a conta real. Ainda não fiz nenhum acordo sobre isso. O Conselheiro Especialista está esperando que o euro seja rejeitado.
 
solandr, a fim de acelerar/optimizar o tempo de teste - você usou um indicador personalizado ou matrizes contendo X,X^2, e assim por diante?
 
Eu não uso os indicadores personalizados, pois escrevi que cada chamada é perfurada no registro do testador. Eu introduzi um indicador de níveis de Murray no próprio Expert Advisor. Ainda não inventei arrays que especificamente acelerem os cálculos do Expert Advisor. Francamente falando, eu não sei o que pode ser inventado. As informações sobre o cálculo das barras anteriores (bordas do canal) são naturalmente armazenadas em matrizes e não são recalculadas em uma nova barra. Acho que já esgotei praticamente todo o meu algoritmo em termos de velocidade e não serei capaz de acelerá-lo mais rapidamente. Mas não estou muito claro sobre as arrays contendo X,X^2. Até que ponto encontrar valores sobre uma grande variedade de X,X^2 pode reduzir o tempo de computação (quadratura)? Você tem dados de comparação computacional? Seria interessante dar uma olhada neles.
 
Isto é para Y=A*X+B em cada nova barra para cada novo canal ?

Agora comecei a procurar e percebi - é possível otimizar a EA. O ganho deve ser (N+1)/2 , onde N é o comprimento máximo do canal (sua versão atual usa 300 - portanto, o ganho deve ser 150 vezes).
 
Tanto quanto sei, você está se propondo organizar uma matriz cúbica, cada fileira será de alguns milhões e nela procurar respostas prontas Y com 3 parâmetros diferentes A,X,B? Ou eu não estou entendendo bem a idéia?
 
Não, eu só proponho fazer o cálculo em cada barra apenas uma vez, e depois usar esse valor N vezes (uma matriz é formada, sem dúvida :))
 
Como isso é possível, se temos canais em cada barra movendo-se ligeiramente, mudando seus limites?
 
Não posso substituir o algoritmo completamente (ainda preciso fazer algum trabalho sério), mas posso colar um pouco de um algoritmo otimizado em um algoritmo normal. Isso significa que todos os cálculos preliminares para o algoritmo otimizado são feitos, mas o canal é calculado da maneira usual. Aqui está o registro:
2006.07.04 23:04:37 ChannelStDev3 GBPCHF,M15: Execute deinit()<br / translate="no"> 2006.07.04 23:04:37 ChannelStDev3 GBPCHF,M15: Tempo normal de script+optimização579 ms
2006.07.04 23:04:36 ChannelStDev3 GBPCHF,M15: a=-0.0001 b=2.2628 lastBar1 firstBar=105 StDev=0.001
2006.07.04 23:04:36 ChannelStDev3 GBPCHF,M15: 140 canais correspondentes ao critério foram encontrados em 1000 barras
2006.07.04 23:04:36 ChannelStDev3 GBPCHF,M15: Eles estão em 1 série
2006.07.04 23:04:36 ChannelStDev3 GBPCHF,M15: inicializado
2006.07.04 23:04:35 ChannelStDev3 GBPCHF,M15: carregado com sucesso
2006.07.04 23:04:28 ChannelStDev GBPCHF,M15: removido
2006.07.04 23:04:28 ChannelStDev GBPCHF,M15: deinicializado
2006.07.04 23:04:28 ChannelStDev GBPCHF,M15: execução do deinit()
2006.07.04 23:04:28 ChannelStDev GBPCHF,M15: Tempo normal do roteiro 547 ms
2006.07.04 23:04:27 ChannelStDev GBPCHF,M15: a=-0.0001 b=2.2628 lastBar1 firstBar=105 StDev=0.001
2006.07.04 23:04:27 ChannelStDev GBPCHF,M15: 140 canais que correspondem ao critério foram encontrados mais de 1000 barras


Assim, o tempo do algoritmo otimizado deve ser aproximadamente (579-547)=32 milissegundos. Grosso modo, o ganho é 547/32=17 vezes. Isto certamente não é 500 vezes como eu presumi, você ainda precisa verificar. Talvez eu não tenha levado em conta procedimentos incompressíveis que levam mais tempo do que eu pensava. Vou tentar verificar amanhã.
 
Mediu os dois blocos de cálculos separadamente.
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: deinicializado<br/ translate="no"> 2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: Execute deinit()
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: a=0,0071 b=146.7474 lastBar1 firstBar=50 StDev=0,1056
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: Encontrados 820 canais que atendem ao critério acima de 1000 barras
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: Estão em 8 séries
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: Hora do algoritmo convencional390 ms
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: Tempo de algoritmo otimizado0 ms
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: inicializado
2006.07.05 14:34:15 ChannelStDev3 EURJPY,M15: carregado com sucesso


Resta saber se o bloco otimizado irá calcular corretamente. Ao mesmo tempo, descobri que trabalhar com objetos leva muito tempo (quase um terço da variante não otimizada) - desenhar no backtest é indesejável. Embora
 
Rediscuta, com a impressão
<br/ translate="no"> 14:54:04 ChannelStDev3 EURJPY,M15: k=64 a=0,002 b=146.8379 sigma=-1370529.6008
14:54:04 ChannelStDev3 EURJPY,M15: k=63 a=0.0025 b=146.829 sigma=-1348950.2071
14:54:04 ChannelStDev3 EURJPY,M15: k=62 a=0,0029 b=146.8197 sigma=-1327370.2369
14:54:04 ChannelStDev3 EURJPY,M15: k=61 a=0,0033 b=146.8105 sigma=-1305795.8008
14:54:04 ChannelStDev3 EURJPY,M15: k=60 a=0,0038 b=146.8016 sigma=-1284233.323
14:54:04 ChannelStDev3 EURJPY,M15: k=59 a=0,0042 b=146.7921 sigma=-1262664.9732
14:54:04 ChannelStDev3 EURJPY,M15: k=58 a=0,0046 b=146.7844 sigma=-1241133.5221
14:54:04 ChannelStDev3 EURJPY,M15: k=57 a=0,005 b=146.7769 sigma=-1219610.1431
14:54:04 ChannelStDev3 EURJPY,M15: k=56 a=0.0055 b=146.7678 sigma=-1198064.4492
14:54:04 ChannelStDev3 EURJPY,M15: k=55 a=0,0058 b=146.7611 sigma=-1176563.0841
14:54:04 ChannelStDev3 EURJPY,M15: k=54 a=0,0062 b=146.754 sigma=-1155059.1345
14:54:04 ChannelStDev3 EURJPY,M15: k=53 a=0,0066 b=146.7469 sigma=-1133558.635
14:54:04 ChannelStDev3 EURJPY,M15: k=52 a=0,007 b=146.7398 sigma=-1112061.7881
14:54:04 ChannelStDev3 EURJPY,M15: k=51 a=0,0073 b=146.7342 sigma=-1090593.6002
14:54:04 ChannelStDev3 EURJPY,M15: k=50 a=0,0074 b=146.7327 sigma=-1069186.857
14:54:04 ChannelStDev3 EURJPY,M15: k=49 a=0,0074 b=146.733 sigma=-1047808.1245
14:54:04 ChannelStDev3 EURJPY,M15: k=48 a=0.0073 b=146.7346 sigma=-1026446.748
14:54:04 ChannelStDev3 EURJPY,M15: k=47 a=0,0069 b=146.7404 sigma=-1005141.2611
14:54:04 ChannelStDev3 EURJPY,M15: k=46 a=0,0064 b=146.7494 sigma=-983876.6836
14:54:04 ChannelStDev3 EURJPY,M15: Tempo de algoritmo otimizado 31 ms
14:54:05 ChannelStDev3 EURJPY,M15: Tempo de algoritmo comum 875 ms
14:54:05 ChannelStDev3 EURJPY,M15: Estão em 6 séries
14:54:05 ChannelStDev3 EURJPY,M15: Encontrados 824 canais que atendem aos critérios, mais de 1000 barras
14:54:05 ChannelStDev3 EURJPY,M15: a=0.0064 b=146.7494 últimoBar1 primeiroBar=46 StDev=0.1044
14:54:05 ChannelStDev3 EURJPY,M15: Execute deinit()
14:54:05 ChannelStDev3 EURJPY,M15: deinicializado
14:54:05 ChannelStDev3 EURJPY,M15: removido


Problema com a sigma no entanto :)
Razão: