Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1852

 
Mihail Matkovskij #:

Pero aumenta el riesgo. Así lo hace Martin, así lo hace el promedio y otras estrategias similares. Aunque todos pueden ser utilizados sabiamente por aquellos que lo entienden.

Por el contrario, reduce el riesgo. Aquí hay que elegir el activo de cobertura adecuado y podemos dormir tranquilos. Pero con la media el sueño se ve a menudo perturbado.

 
Mihail Matkovskij #:

Depende de qué lote con qué beneficio... Creo que es mejor clasificar las posiciones por beneficios. ¡Y cerrar primero los más gordos!

Depende de para qué :-) para dibujar una bonita curva en las señales y para cortar el "factor de recuperación" igual...

 
Vitaly Muzichenko #:

Por el contrario, reduce el riesgo. Aquí hay que elegir correctamente el activo de cobertura y se puede dormir bien. Pero con la media, el sueño suele verse alterado.

Oh... ¿así que necesitas un activo adicional para eso? Interesante... Suena a diversificación de riesgos y pérdidas...

Siempre he pensado que la cobertura se refiere a posiciones opuestas en el mismo instrumento.

 
Mihail Matkovskij #:

Ah... ¿entonces necesitas un activo adicional para eso? Interesante... Suena a diversificación de riesgos y pérdidas...

Siempre pensé que la cobertura se refería a posiciones opuestas en el mismo instrumento.

Es el cierre, de la palabra cerradura.

 
Tretyakov Rostyslav #:
Consulte

¡¡¡Buenos días Rostislav!!!

Podrías comentar los cambios de ayer no puedo entender su 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 #:

¡¡¡Buenos días Rostislav!!!

Podrías comentar los cambios de ayer no puedo entender su lógica


Si no hay órdenes abiertas flag_close obtiene "0"

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

Cuando flag_close=0; la petición a ClosseAll() se detiene

 
Tretyakov Rostyslav #:

Si no hay órdenes abiertas, flag_close recibirá "0".

Cuando flag_close=0; la petición de ClosseAll() se detiene

Sí, lo tengo.

Se necesita cuando se borran objetos.

Lo interesante es que si la bandera está bloqueada en este lugar, el Asesor Experto se pone raro

 
EVGENII SHELIPOV #:

Sí, lo entiendo.

Por qué es necesario cuando se borran objetos.

Lo interesante es que si bloqueas la bandera en este lugar, el Asesor Experto empieza a hacer cosas raras.

Esto no tiene nada que ver con la eliminación de objetos

Es una determinación de la ausencia de órdenes

   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");
        }
     }

Puede realizar cualquier operación interna que no requiera la ausencia de órdenes

Además, hay muchas cosas innecesarias en esta parte del código,

Esta variante hará lo mismo que la anterior

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

¿Qué tiene que ver la retirada de objetos con

se trata de determinar si no hay órdenes

y en su interior se puede realizar cualquier operación que no requiera órdenes

Además, hay muchas cosas innecesarias en esta parte del código,

Esta variante hará lo mismo que la anterior

Lo entiendo, Rostislav.

No entiendo por qué, si bloqueo la bandera en esta función, el EA comienza a abrir y cerrar 100-200 órdenes a la vez

 
Vitaly Muzichenko #:

Es el cierre, de la palabra cerradura.

Sí. Pero una cerradura se abre con el mismo lote. Y se abren simultáneamente dos órdenes dirigidas de forma diferente. Una cobertura es cuando una operación entró en drawdown, y el trader abre una posición con un lote más grande en la misma dirección (me confundí con diferentes direcciones) implicando que el precio se invertirá para obtener una ganancia en una operación con un lote más grande y cubrir la pérdida en una operación con un lote más pequeño o promediar a 0. Si tengo algo mal, corrígeme.