Especialistas: Martin - página 2

 
Vladimir Karputov:

Tenho exatamente a experiência oposta. ...

Você deveria ter dito apenas que sua experiência oposta é sua falta de experiência.

Nesses casos, geralmente no fórum e em correspondência pessoal, eles perguntam sobre a melhor maneira e a maneira correta de fazer isso.

E você apresenta tudo isso como a única solução verdadeira e correta - o que, infelizmente, não é verdade.


Se o tempo for usado em um Expert Advisor como uma função para limitar o trabalho do EA, então, se estiver escrito corretamente, definir o tempo como "-1" ou "25" horas não terá efeito sobre o trabalho do EA e será interpretado pelo EA como "nenhuma limitação" de tempo.

Mas ao otimizar as horas, a etapa é necessária, pois há uma diferença entre otimizar "a cada hora", "a cada quatro horas" etc.

 

se você o definir:

input int InpStartHour               = -1;           // Hora inicial
input int InpEndHour                 = 25;           // Hora final

com esse registro, o EA não funcionará corretamente?

 
Andrey F. Zelinsky:

Você deveria ter dito imediatamente que sua experiência oposta é a experiência que faltava.

Nesses casos, geralmente no fórum e em correspondência pessoal, eles perguntam como fazer melhor e como fazer certo.

E você apresenta tudo isso como a única solução verdadeira e correta - que, infelizmente, não é.


Se o tempo for usado em um Expert Advisor como uma função para limitar o trabalho do EA, então, se estiver escrito corretamente, definir o tempo como "-1" ou "25" horas não terá efeito sobre o trabalho do EA e será interpretado pelo EA como "nenhuma limitação" de tempo.

Mas, ao otimizar as horas, é necessária uma etapa, pois há uma diferença entre otimizar "a cada hora", "a cada quatro horas" etc.


O que pode ser dito aqui? O autor é livre para escrever o código a seu gosto. Eu, por exemplo, uso enum para tempo e acho essa forma muito conveniente. E, em geral, um Expert Advisor ideal é aquele que não tem parâmetros de entrada :) .

 
Andrey F. Zelinsky:

se você o definir:

o Expert Advisor não funcionará corretamente com essa entrada?


Sim, ele emitirá um erro imediatamente. Já que não existem horas como "-1" e "25".

E se o usuário inserir "125" durante a otimização? Serão cem passagens extras (ou descartadas). E se houver vários desses parâmetros e cada um tiver um erro? Então serão cem * cem * cem * cem * cem = toda a otimização irá por água abaixo, porque estará cheia de rejeições.

Mas com o enum isso não pode acontecer a priori. Haverá no máximo 24 passagens para um relógio.

 
Vladimir Karputov:

Sim, você receberá uma mensagem de erro. Porque os relógios "-1" e "25" não existem.

E se o usuário inserir "125" durante a otimização? Serão cem passagens extras (ou descartadas). E se houver vários desses parâmetros e cada um tiver um erro? Então serão cem * cem * cem * cem * cem = toda a otimização irá por água abaixo, porque estará cheia de rejeições.

Mas com o enum isso não pode acontecer a priori. Haverá no máximo 24 passagens para um relógio.


Você está realmente escrevendo tudo isso agora?

Não é possível remover um overrun errôneo em OnInit()?

Você tem que sacrificar a etapa de otimização.

Calculei que você tenha publicado 10% dos códigos da base de código.

Existe um provérbio alemão (procurei o equivalente a um provérbio russo bem conhecido de propósito para não implicar com ele):"A diligência cega só faz mal".

 

De tempos em tempos, o Expert Advisor abre (ao executar o histórico) várias dezenas de ordens idênticas ao mesmo preço para toda a margem livre e, no final, ele falha. Qual é o motivo disso?

 
rfarr:

De tempos em tempos, o Expert Advisor abre (ao executar o histórico) várias dezenas de ordens idênticas ao mesmo preço para toda a margem livre e, no final, ele falha. Qual é a razão para isso?


A lógica é a seguinte: se houver uma posição e seu lucro for maior que zero e for possível abri-la por tempo, outra posição será aberta na mesma direção. E isso pode ser feito em cada tick. Isso pode ser limitado se

  1. deixar de trabalhar com ticks e trabalhar apenas uma vez no momento do nascimento de uma nova barra.
  2. introduzir um limite no número de posições
  3. introduzir um tempo mínimo a partir da abertura da última posição em uma determinada direção - uma espécie de pausa

 
Por favor, atualize esse EA, Sr. Vladimir, pois ele tem potencial.
 
Você pode adicionar o intervalo de passos de pip para a nova posição aberta quando o multiplicador?
 
DICKY YANIHANDY WIDJAYA :
É possível adicionar o intervalo de etapas de pip para a nova posição aberta quando o multiplicador é usado?

Não.