Quando faz sentido manter parte do código do robô em um indicador? - página 34

 
TheXpert:

Má concepção #1: você pode fazer sem o IndicatorCounted()

Um indicador com ele:

Sem ele, com base no princípio de hrenfx

Em seguida, aplicamos os índices ao gráfico e imitamos a perda de conexão enquanto o autômato está em funcionamento. Resultado:




É assim. Portanto, evito utilizar recursos que não serão úteis mais tarde (ao desenvolver uma EA).

Eu não acredito na eletricidade e prefiro fazer tudo sozinho. E esta função eu não entendo.

 
sergeev:


E você pode postar a pesquisa e verificar esta conjectura?

Apenas algumas experiências com a quebra da conexão. Eu não fiz uma análise completa das porcarias dos desenvolvedores. Foi ao mesmo tempo irritante e longo (tive que fazê-lo não por um minuto ou dois, mas por pelo menos uma dúzia ou duas). Minha versão da EA trata de breves interrupções de conexão sem nenhum problema. Entretanto, pesquisas mostraram que a curto prazo (para M1) não são horas, mas minutos (< 10).

Você pode se aprofundar totalmente neste tópico com experimentos simples. Ainda não posso reivindicar 100%. Talvez não devêssemos chamar um indicador vazio no início, mas o indicador com a chamada de IndicatorCounted().

Eu descobri uma maneira rápida de investigar: para operar vários terminais ao mesmo tempo (precisarei de menos de cinco) e em cada terminal uma variante diferente de investigação. Cortar a comunicação por uma hora e depois restaurar. Obtenha algumas variantes diferentes ao mesmo tempo. A partir destes você terá a imagem correta.

P.S. Você precisa de terminais diferentes, não de gráficos diferentes. Deve-se excluir a variante que IndicatorCounted() é calculada uma vez para todos os indicadores no terminal.

P.P.S. Esta mesma porcaria foi muito modificada em construções > 380. E, a julgar pelas respostas, ela será alterada muitas vezes. Portanto, é quase inútil realizar um estudo. Devemos perguntar diretamente aos desenvolvedores o que acontece com o indicador (que contém a chamada de IndicatorCounted()) durante o primeiro tique após uma longa interrupção da comunicação.

P.P.P.S. Pedido.

 
Integer:


Não seja ridículo. Você simplesmente ainda não aprendeu a escrever indicadores.

Depois de tal heresia:

poderia muito bem abster-se de ter uma opinião nesta linha.


Bem, quem e o que aprendeu a escrever, penso eu, será visto de fora, quanto à heresia - o nível de seu pensamento, parece, por todas as indicações, assemelha-se à lógica dos fanáticos religiosos, com quem é inútil e absolutamente desnecessário discutir. Mesmo com tal heresia, os especialistas trabalham três vezes mais rápido. Mas eu pessoalmente não tenho nenhum desejo de ir a extremos, de provar algo a alguém, e ainda mais de me justificar. A qualificação da minha mente é muito cara para desperdiçá-la de forma tão miserável e ineficaz.
 
Os respeitados gurus (todos eles) gostariam de pedir que vocês se tratem uns aos outros com mais respeito. O que você vai ensinar aos jovens?
 
TheXpert:

Falácia de debunking #1: você pode fazer sem o IndicatorCounted()

Um indicador com ele:

Sem ele, com base no princípio de hrenfx

Em seguida, aplicamos os índices ao gráfico e imitamos a perda de conexão enquanto o autômato está em funcionamento. Resultado:




IMHO: A comparação não é correta: um algoritmo com recorrência, sendo todas as outras coisas iguais, sempre funcionará mais lentamente. Para o bem da pureza da experiência, é melhor usar o mesmo algoritmo no indicador e no Expert Advisor.

O que impede o Expert Advisor de calcular a última barra calculada e, se a diferença entre o número atual de barras e a última barra calculada for superior a 1, recalcular a partir da posição apropriada, como o indicador faz?

 
GODZILLA:

Bem, quem e o que aprendeu a escrever, penso eu, será mais claro de fora, sobre heresia - o nível de seu pensamento, penso eu, por todas as indicações, assemelha-se vivamente a uma lógica de fanáticos religiosos, com quem é inútil e absolutamente desnecessário discutir. Mesmo com tal heresia, os especialistas trabalham três vezes mais rápido. Mas eu pessoalmente não tenho nenhum desejo de ir a extremos, de provar algo a alguém, e ainda mais de me justificar. A qualificação da minha mente é muito cara para ser desperdiçada de uma forma tão miserável e desperdiçadora.

É com esta coisa

//---- ЭМУЛЯЦИЯ ИНДИКАТОРНЫХ БУФЕРОВ
  int NewSize = iBars(symbol, timeframe);
  //----  Проверка на смену нулевого бара
  if(ArraySize(Ind_Buffer0) < NewSize)
    {
      //---- Установить прямое направление индексирования в массиве 
      ArraySetAsSeries(Ind_Buffer0, false);
      ArraySetAsSeries(Ind_Buffer1, false);
      ArraySetAsSeries(Ind_Buffer2, false);
      //---- Изменить размер эмулируемых индикаторных буферов 
      ArrayResize(Ind_Buffer0, NewSize); 
      ArrayResize(Ind_Buffer1, NewSize); 
      ArrayResize(Ind_Buffer2, NewSize); 
      //---- Установить обратное направление индексирования в массиве 
      ArraySetAsSeries(Ind_Buffer0, true);
      ArraySetAsSeries(Ind_Buffer1, true);
      ArraySetAsSeries(Ind_Buffer2, true); 
    } 
//----

você tem os especialistas trabalhando rápido? Quem é um fanático depois disso? Há muito tempo verificado, você pode usar a busca no fórum.

 
granit77:
Os respeitados gurus (todos eles) gostariam de pedir que vocês se tratem uns aos outros com mais respeito. O que você vai ensinar aos jovens?

Pessoalmente, não estou nada ofendido com a acusação de fanatismo religioso, porque sei muito bem quem e o que sou. Além disso, tal acusação é um bom indicador do nível de pensamento do outro lado, um indicador exaustivo.
 
GODZILLA:
Bem, quem e o que aprenderam a escrever, eu acho, de fora será mais visível

Sim, eu posso ver isso perfeitamente. Sua credibilidade aos meus olhos está caindo três vezes mais rápido do que antes :)

VladislavVG:

IMHO: A comparação não é correta: um algoritmo com recorrência, sendo todas as outras coisas iguais, sempre funcionará mais lentamente. Para o bem da pureza da experiência, é melhor usar o mesmo algoritmo no indicador e no Expert Advisor.

A comparação é correta, pois não é feita para comparação de velocidade, mas para mostrar claramente a incorreção do trabalho.

O que impede o Expert Advisor de calcular a última barra calculada e, se a diferença entre o número atual de barras e a última barra calculada for superior a 1, recalculá-la a partir da posição apropriada, como o indicador faz?

Por que você não tenta?


A EA no primeiro tick após o link aparece se comportando de maneira bem diferente do indicador derivado da EA.

A foto acima mostra que a EA (não o indicador da EA) se compara ao iCustom após a interrupção da conexão. A falha de conexão passa sem problemas.

Você está errado novamente. O Expert Advisor se comporta de forma semelhante. Você simplesmente não pode analisar corretamente seus próprios registros. Eu já expliquei o erro, não quero repeti-lo.

Dica: Procure por alguns valores após o intervalo.

granit77:

Respeitados gurus (todos eles) gostaria de pedir-lhes que se tratem uns aos outros com mais respeito. O que você vai ensinar aos jovens?

Os maîtres não devem carregar heresias, isso é um, e devem ser capazes de admitir erros, isso é dois.
 
TheXpert:

Você está errado novamente. O conselheiro está se comportando de maneira semelhante. Você simplesmente não pode analisar corretamente seus próprios registros. Eu já expliquei qual é o erro, não quero repeti-lo.

Dica: Veja vários valores após a lacuna.

Sim, eu só dei uma captura de tela por um valor após o intervalo. Claro, eu vi todos os valores e mais além (eu não faço batota, muito menos essa batota idiota). A coincidência é completa (não chegou à captura de tela).

Infelizmente, os desenvolvedores ainda não compreendem a possível utilidade do IndicatorCounted() para EAs (a julgar por sua resposta).

O indicador e a EA no primeiro tick após o intervalo (especialmente um longo) não se comportam da mesma maneira. Você pode verificar isto facilmente se quiser.

 
Integer:

Pessoalmente, não me ofendo de forma alguma por me acusar de fanatismo religioso, porque sei muito bem quem e o que sou. Além disso, tal acusação é um bom indicador do nível de pensamento do outro lado, um indicador exaustivo.

Bem, você considera que seu pensamento é adequado e não fanático, aliás? Não é suficiente que você não tenha conseguido provar sua crença na hipótese de que o mesmo código em um indicador será sempre mais rápido do que em uma EA, mas ao invés disso você iniciou uma competição absolutamente obscura e sem sentido (a propósito, foi boa, porque levou a uma solução interessante de quebra de comunicação na EA). A propósito, não notei em nenhum lugar em nosso site que o código do conselheiro deve ser escrito de preferência em um indicador de aceleração de desempenho, por isso esta afirmação soa estranha, pelo menos, e acho que você concordará com ela.

Minha suposição foi baseada na lógica simples de que chamar uma função externa com a passagem de uma cópia do buffer e dos parâmetros leva mais tempo do que sem ela; por que você tentaria negar que eu não tenho certeza.