Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1851

 
Mihail Matkovskij #:

Depende de que lote com que lucro... Acho que é melhor classificar as posições por lucro. E feche primeiro os mais gordos!

Depende de para quê :-) traçar uma curva agradável em sinais e cortar o "fator de recuperação" da mesma forma...

 
Vitaly Muzichenko #:

Pelo contrário, reduz o risco. Aqui você precisa escolher o ativo de cobertura correto mais ou menos corretamente e você pode dormir bem. Mas com a média, o sono é frequentemente perturbado.

Oh... então você precisa de um ativo adicional para isso? Interessante... Soa como diversificação de risco/perda...

Eu sempre pensei que a cobertura era sobre posições opostas no mesmo instrumento.

 
Mihail Matkovskij #:

Ah... então você precisa de um ativo adicional para isso? Interessante... Soa como diversificação de risco/perda...

Eu sempre pensei que a cobertura era sobre posições opostas no mesmo instrumento.

É um bloqueio, a partir da palavra bloqueio.

 
Tretyakov Rostyslav #:
Verifique

Bom dia Rostislav!!!

Você poderia comentar as mudanças de ontem? Não consigo entender sua lógica?

//-------------------------------------------------------------------+
   Spread       = MarketInfo(Symbol(),MODE_SPREAD)*Point;
   MinLot       = MarketInfo(Symbol(),MODE_MINLOT);
   Balance      = AccountInfoDouble(ACCOUNT_BALANCE);
   FreeMargin   = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
   avg_buy      = ObjectGetDouble(0,"AveragePriceLine0",OBJPROP_PRICE);
   avg_sell     = ObjectGetDouble(0,"AveragePriceLine1",OBJPROP_PRICE);
   Drawdown     = (Balance - FreeMargin)/Balance*100;
//-------------------------------------------------------------------+  Команда на удаление линий отображающую среднюю цену и текста
   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      if(ObjectFind(0,"signal4")==0&&CountTrade(0)<1)//для бай
        {
         ObjectDelete(0,"signal4");
        }
      if(ObjectFind(0,"signal3")==0&&CountTrade(1)<1)//для селл
        {
         ObjectDelete(0,"signal3");
        }
     }
 
EVGENII SHELIPOV #:

Bom dia Rostislav!!!

Você poderia comentar as mudanças de ontem? Não consigo entender sua lógica?


Se não houver ordens abertas, a bandeira_close recebe "0".

   if(CountTrade() == 0)
     {
      flag_close=0;

Quando flag_close=0; o pedido para ClosseAll() pára

 
Tretyakov Rostyslav #:

Se não houver ordens abertas, o flag_close receberá "0".

Quando flag_close=0; o pedido de ClosseAll() pára

Sim, eu entendi.

Você precisa dele ao apagar objetos.

O interessante é que se a bandeira estiver trancada neste lugar, o Expert Advisor fica esquisito

 
EVGENII SHELIPOV #:

Sim, eu entendo isso.

Por que é necessário quando se apaga objetos.

O interessante é que se você bloquear a bandeira neste lugar, o Expert Advisor começa a agir de forma estranha.

Isto não tem nada a ver com a eliminação de objetos

É uma determinação da ausência de ordens

   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      if(ObjectFind(0,"signal4")==0&&CountTrade(0)<1)//для бай
        {
         ObjectDelete(0,"signal4");
        }
      if(ObjectFind(0,"signal3")==0&&CountTrade(1)<1)//для селл
        {
         ObjectDelete(0,"signal3");
        }
     }

Você pode realizar qualquer operação interna que não exija a ausência de ordens

Além disso, há muitas coisas desnecessárias nesta parte do código,

Esta variante fará a mesma coisa que a anterior

   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      ObjectDelete(0,"signal4");
      ObjectDelete(0,"signal3");
     }
 
Tretyakov Rostyslav #:

O que a remoção de objetos tem a ver com

trata-se de determinar se não há ordens

e dentro de você pode realizar qualquer operação que não requeira ordens

Além disso, há um monte de coisas desnecessárias nesta parte do código,

Esta variante fará a mesma coisa que a anterior

Eu entendo isso, Rostislav.

Não entendo porque, se eu bloquear a bandeira nesta função, a EA começa a abrir e fechar 100-200 pedidos de cada vez

 
Vitaly Muzichenko #:

É um bloqueio, a partir da palavra bloqueio.

Sim. Mas uma fechadura se abre com o mesmo lote. E duas ordens dirigidas de forma diferente são abertas simultaneamente. Um hedging é quando um negócio entrou em drawdown, e o trader abre uma posição com um lote maior na mesma direção (eu misturei com direções diferentes) implicando que o preço irá reverter para obter lucro em um negócio com um lote maior e cobrir a perda em um negócio com um lote menor ou média a 0. Se eu misturei algo, então me corrija.

 
EVGENII SHELIPOV #:

Eu entendo, Rostislav

Não entendo por que se eu bloquear a bandeira nesta função, o Expert Advisor começa a abrir e fechar 100-200 pedidos de cada vez

Porque se a bandeira não for igual a "0", ela chama constantemente a função ClosseAll()