Verificação da parada mínima nos EAs publicados no mercado. - página 2

 
Vladislav Andruschenko:

Eu concordo - não dê controle, mas você sabe como é necessário, como: eu quero fazer minha própria parada. fazer um ajuste.

E sobre a saída da mensagem - obrigado, vou pensar sobre isso.

Utilizo ambas as opções em todos os EAs. Se o stop loss for ajustado a zero nas configurações de parâmetros, eu o calculo no Expert Advisor; se for ajustado a mais de zero, eu verifico a exatidão e defino o stop loss já ajustado. Exceções podem ser feitas para Consultores Especialistas, onde o stop loss não é usado de forma alguma.
 
Vitalii Ananev:
Eu uso ambos em todos os EAs. Se o stop loss for ajustado a zero nos parâmetros, eu o calculo no Expert Advisor; se for mais do que zero, eu o verifico para a exatidão e defino o valor de stop loss já ajustado. Exceções podem ser feitas para Consultores Especialistas, onde o stop loss não é usado de forma alguma.

Sim, mas em macret não funciona com exatidão se o stopmin do servidor = 0.

Este não era o caso antes - eu tinha este cheque.

Agora os moderadores no Mercado colocam intencionalmente StopLoss 1 - com MinStop = 0 e sai o erro 130 - produto não aceito no Mercado.

 
Vladislav Andruschenko:

Sim, isto é apenas para o mercado - mas não há universalidade para nenhum corretor.

a maneira como funciona é preciso fazer uma parada mínima em 3 spreads para ser aceito no mercado,

A única diferença é que o mercado os aceita - você tem que fazer uma parada min e 3 spreads, mas na verdade isto é errado - se um broker min stop = 1 spread - então o usuário não será capaz de colocar menos de 3 spreads.

Baffle.

E de que adianta colocar uma parada tão superficial. Ele será tirado por movimento de ruído aleatório.
 
Vitalii Ananev:
Para que serve colocar uma parada tão superficial? Ele será tirado por movimento de ruído aleatório.
Não se trata do que os usuários colocam, é claro que o stoploss não é 1 ponto - trata-se de verificar no mercado, eles colocam especificamente stoploss = 1.
 
Vladislav Andruschenko:

Sim, mas em macret não funciona com exatidão se o stopmin do servidor = 0.

Este não era o caso antes - eu tinha este cheque.

Agora os moderadores no mercado colocam propositadamente stoploom 1 - com minstop = 0 e erro 130 sai - produto não aceito no mercado. ...

Ao verificar a exatidão, eu quis dizer o que disse acima sobre a primeira opção. Defina seu próprio valor de distância de parada mínima.
 
Vladislav Andruschenko:

Sim, isto é apenas para o mercado - mas não há universalidade para nenhum corretor.

a maneira como funciona é preciso fazer uma parada mínima em 3 spreads para ser aceito no mercado,

A única diferença é que o mercado os aceita - você tem que fazer uma parada min e 3 spreads, mas na verdade isto é errado - se um broker min stop = 1 spread - então o usuário não pode colocar menos de 3 spreads.

Baffle.

verifique, se o nivelador de parada retornou sem zero então use-o, e se retornou zero então Ask-Bid

 
Alexander Bereznyak:

verifique, se o stop-Level retornou sem zero, então use-o, e se ele retornou zero, então Ask-Bid

mas nem sempre min stop = spread,

é compreensível que se verifique. :-) eu verifico,

 
Vitalii Ananev:
Ao verificar a exatidão, eu quis dizer o que disse acima sobre a primeira opção. Defina seu próprio valor para a distância mínima de parada.
está apontando dedos no céu ou verificando cuidadosamente as condições comerciais do instrumento, eu escrevi acima como
 
Vladislav Andruschenko:

Obrigado. Mas você tem a mesma construção que eu tenho,

Desculpe, mas não vi onde em seu código o valor da variável StopLevel é mencionado? No código que você citou, não há nenhuma mudança no valor de tal variável. Há uma mudança nos valores de Stop e Profit. Como resultado, se você os aumentar uma vez, será impossível devolver esses valores aos valores iniciais. Portanto, você estará perseguindo grandes paradas e lucros, enquanto o Nível de Parada diminuiu há muito tempo.

Somente você multiplicou em min stop = 0 apenas por spread*2, mas como sabemos em muitos corretores min stop = 3 spreads, por que você fez 2?

Não tenho informações sobre muitos corretores (dúzias, centenas). Com esses corretores com os quais tenho que lidar (como os clientes têm contas lá), vejo uma figura de 2 spreads. Talvez haja um valor diferente em algum lugar.

Na minha opinião, esta é fundamentalmente a abordagem errada para que um corretor forneça informações. Existe um mecanismo padrão para obter restrições sobre as rolhas. Se recebermos 0 a pedido, mas na realidade não é zero. Em seguida, troque-a a cada tick, dependendo do valor de spread, conforme a necessidade. Por esta razão, compro contas reais somente naqueles corretores que representam corretamente o valor do nível de parada.

Eu verifico se há uma parada mínima em cada tique.

Eu fiz uma conclusão baseada no nome da função - OnInitLevels. Ela está associada a uma única ação.
 
Vladislav Andruschenko:
Não se trata do que os usuários colocam, é claro que a perda de carga não é de 1 pip - o ponto está na verificação no mercado, eles colocam propositalmente perda de carga = 1.

Eu fiz isso

   if ((StopLimit<10 && StopLimit!=0)  || (StopLoss<10 && StopLoss!=0))
   {
      Alert("Error in parameters. Too small size of a parametr of 'Stop loss' or 'Stop Loss limit'");
      return(INIT_PARAMETERS_INCORRECT);
   }

O Expert Advisor tem a capacidade de ajustar a parada de 3 maneiras. Ajustar manualmente o tamanho de parada (StopLoss) ou zerá-lo.

Se StopLoss for igual a zero, seu tamanho é calculado com base nas condições de mercado, mas limitado pela variável StopLimit.

E no OnInit() estes parâmetros são verificados quanto à exatidão, pois não faz sentido colocar um fim a menos de 10 pontos.

Razão: