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

 
законопослушный гражданин:

los búhos deben abrir operaciones según su algoritmo

si el stop, entonces la siguiente operación con un martin, y así sucesivamente hasta el número de multiplicaciones que he especificado (función -OrdersClose = .....;).

Además, si el búho está desactivado junto con el terminal, basta con pulsar el botón "auto-trade" con otro búho, entonces la siguiente operación comenzará con el lote inicial, no con el último incrementado por una martingala.

También estaría bien adjuntarle un horario, pero esta idea se me acaba de ocurrir.

Por ejemplo: se activó a las 10-00 del lunes con lote de salida, luego se apagó durante el día cuando se consiguió algún resultado, y el martes por la mañana se activó de nuevo a las 10-00 y volvió a empezar con lote de salida.

todo.

¿cómo tratar este tema hasta el final?

 
законопослушный гражданин:

¿cómo se llega al fondo de esta cuestión?

Si respondes, lo haces,

pero desapareces y luego vuelves a tener las mismas preguntas.

 
MakarFX:

Si respondes, respondes,

pero desapareces y luego vuelves a tener las mismas preguntas.

Me has enseñado a crear una variable global, lo he intentado pero luego tengo una duda

No soy bueno en esto todavía. ya tengo un datetime OpenTime; - ¿debo reemplazarlo conun datetimeStart o además?

"y luego si no hay órdenes abiertas/cerradas más tarde "Inicio "Lotes=Lote;"- no está nada claro a dónde referirse?

A continuación, pidió una breve descripción de la lógica del búho, lo que quiero de él.

su pregunta sobre cómo restablecer automáticamente el lote al apagar no ha sido respondida todavía.

 
законопослушный гражданин:

Me has enseñado a crear una variable global, lo he intentado pero luego tengo una duda

No soy bueno en esto todavía. ya tengo datetime OpenTime; - ¿debo reemplazarlo condatetimeStart o además?

"y luego si no hay órdenes abiertas/cerradas más tarde "Inicio "Lotes=Lote;"- no está nada claro a dónde referirse?

Luego me pidió una breve descripción de la lógica del búho, lo que quiero de él.

Cuando pregunté cómo hacer que el lote se restablezca automáticamente al apagar, no obtuve respuesta.

Cuando pedí una descripción de la lógica del EA, no me refería al problema encontrado, sino a las acciones generales

por ejemplo:

si hay una señal, abrimos una orden

si la orden se cierra con beneficio, esperaremos una nueva señal

si la orden se ha cerrado con pérdidas, entonces se aumenta el lote y se espera una nueva señal


No necesito su estrategia, sólo necesito entender qué debe hacer el EA.

 
законопослушный гражданин:

Me has enseñado a crear una variable global, lo he intentado pero luego tengo una duda

No soy bueno en esto todavía. ya tengo datetime OpenTime; - ¿debo reemplazarlo condatetimeStart o además?

"y luego si no hay órdenes abiertas/cerradas más tarde "Inicio "Lotes=Lote;"- no está nada claro a dónde referirse?

Luego me pidió que describiera brevemente la lógica del búho, lo que quiero de él.

No he obtenido respuesta a mi pregunta de cómo hacer un reinicio automático del lote al apagar.

Aquí está la función para empezar:

//+----------------------------------------------------------------------------+
//|  Размер лота/профита и время последней закрытой позиции                    |
//|  1 - возвращает размер лота                                                |
//|  2 - возвращает размер профита с учетом комиссии и свопа                   |
//|  3 - возвращает время закрытия ордера                                      |
//+----------------------------------------------------------------------------+
double GetInfoLastPos(int a=1)
  {
   datetime t=0;
   double result=0,l=0,p=0;
   int i=OrdersHistoryTotal();

   for(int pos=0; pos<i; pos++)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if((OrderSymbol()==_Symbol)&&(OrderMagicNumber()==Magic))
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); l=OrderLots(); p=OrderProfit()+OrderCommission()+OrderSwap();}
              }
           }
        }
     }
   if(a==1) {result=l;} else
   if(a==2) {result=p;} else
   if(a==3) {result=(double)t;}
   else     {result=0;}
   return(result);
  }

si una orden tiene pérdidas

   if(GetInfoLastPos(2)<0)
     {Lots=NormalizeDouble(GetInfoLastPos(1)*K_Martin,DigitsLot);}
   else 
     {Lots=NormalizeDouble(Lot,DigitsLot);}
 

En cuanto a

datetime Start;

int OnInit()
{
   Start=TimeCurrent();
.....................
}
void OnTick()
{
   if (!IsTradeAllowed()) 
   {
      DrawLABEL("Торговля",0,0,0,Red,"Торговля запрещена");
      Start=TimeCurrent();
      return;
   } 
.....................
}

si la hora de la última orden cerrada es inferior a la hora de inicio del asesor

   if(GetInfoLastPos(3)<Start)
     {Lots=NormalizeDouble(Lot,DigitsLot);}
 
MakarFX:

Cuando pedí una descripción de la lógica del EA, no me refería al problema encontrado, sino a las acciones generales

por ejemplo:

si hay una señal, abrimos una orden

si la orden se cierra con beneficio, esperaremos una nueva señal

si la orden se ha cerrado con pérdidas, entonces se aumenta el lote y se espera una nueva señal


No necesito su estrategia, sólo necesito entender qué debe hacer el EA.

si hay una señal, entonces abrimos una orden con el primer lote

si la orden cerró en beneficio, esperaremos una nueva señal

si la orden se ha cerrado con pérdidas, entonces se aumenta el lote y se espera una nueva señal

si el beneficio alcanza xxxx (en la moneda del depósito), el asesor cierra todas las operaciones y restablece el lote al inicial

si la pérdida alcanza yuu (en la moneda del depósito) el asesor cierra todas las operaciones y restablece el lote al inicial

si el asesor se apagó y se volvió a encender - si hay una señal, abrimos una orden con el lote inicial

¿verdad?

 
законопослушный гражданин:

si hay una señal, abrimos una orden con un lote inicial

si la orden se cerró con beneficio, esperamos una nueva señal

Si la orden se cerró con pérdidas, entonces se aumenta el lote y se espera una nueva señal

si el beneficio alcanza xxxx (en la moneda del depósito), el asesor cierra todas las operaciones y restablece el lote al inicial

si la pérdida alcanza yuu (en la moneda del depósito) el asesor cierra todas las operaciones y restablece el lote al inicial

si el asesor se apagó y se volvió a encender - si hay una señal, abrimos una orden con el lote inicial

¿así?

Sí, así.

¿Qué pasa si el EA fue desactivado y luego activado de nuevo, y hay una orden abierta?

 
MakarFX:

Sí, lo es.

¿Qué pasa si el EA se apaga y se vuelve a encender y hay una orden abierta?

Si el EA se desconecta, antes de que se desconecte, cierra todas las órdenes abiertas, independientemente de si están en beneficios o en pérdidas,

Cuando el búho se encienda de nuevo, el "campo en blanco", el lote de salida, se cerrará.

Indicador que da una señal para abrir, en el ejemplo era RSI, pero supongo que para probar tres búhos diferentes en diferentes indicadores.

Así que si tengo un código de ejemplo para la lógica anterior, espero ser capaz de reelaborar otros códigos de EA, que son de código abierto y disponible de forma gratuita.

 
законопослушный гражданин:

Si los búhos se desconectan, antes de que se desconecten cierran todas las órdenes abiertas, independientemente de si están en beneficios o en pérdidas,

El indicador que da las señales de apertura era el RSI, pero supongo que no lo ha hecho.

Indicador que da señal de apertura, en el ejemplo era el RSI pero supongo que para probar tres búhos diferentes en diferentes indicadores.

Así que si tengo un código de ejemplo para la lógica anterior, espero poder rehacer yo mismo los códigos de otros EAs, espero que sean de código abierto y estén disponibles de forma gratuita.

y owl.se apaga cuando cambias de horario, problemas de comunicación, y 100500 y una razón más...

el EA se recarga es su naturaleza natural

Razón de la queja: