Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 73

 
trader117:
Buenas tardes. ¿Cómo puedo calcular un único Stop Loss para una serie de órdenes con números mágicos exactos, para que esta serie de órdenes pueda cerrar en el punto de equilibrio? Por ejemplo, hay 3 órdenes: 1 lote de compra 1,3320 con magia 1, 1 lote de compra 1,3345 con magia 2 y 1 lote de compra 1,3360 con magia 3. ¿Cómo debo calcular el Stop Loss total de todas las órdenes para que si hay un movimiento en contra del precio las órdenes se cierren sin perder?
¿Cuál es la razón de promediar el Stop Loss? ¡En cuanto una posición se cierra con un SL, todas las demás posiciones se cierran inmediatamente con Close! ¡No hay necesidad de perder preciosos pips!
 
borilunad:
¿Para qué sirve el promedio de StopLoss? ¡En cuanto cierro una posición en SL, las otras se cierran inmediatamente en Close! ¡No hay necesidad de perder preciosos pips!

Por un lado, sí, pero por otro lado veo una vulnerabilidad inmediata: una orden puede no ser cerrada por un EA por muchas razones, y un Stop Loss se cerrará de todos modos, de lo contrario esto es una razón seria para quejarse al broker. + La desconexión no permite cerrar una orden. ¿Alguien tiene alguna idea para implementar este algoritmo para la SL total de la pirámide de órdenes?
 
trader117:

Por un lado sí, pero veo una vulnerabilidad inmediata en el hecho de que el cierre de una orden por parte de un EA puede no ejecutarse por diversos motivos, y un stop loss se cerrará de todas formas, de lo contrario esto ya es un motivo serio para reclamar al broker. + La desconexión no permite cerrar una orden. ¿Quién más tiene ideas para implementar este algoritmo para la SL común para una pirámide de órdenes?
No estoy diciendo que no pongas SL a los demás. Cerrarán y usted perderá incluso menos que la media de las SL. Por lo tanto, en el Real, no se cerrará al mismo tiempo, sino uno por uno. Por lo tanto, ¡es económico cerrar el resto de Close después de cerrar una posición en SL! Sí, y sopesar el código uchuchitimo, porque SL establecido en varias ocasiones, y cada vez para llevar a cabo el cálculo de la media? Y cada vez que añadas una posición, vuelve a recalcular y a poner a cero el SL, y repito, ¡sólo perderás con ello, no ganarás!
 

No puedo entenderlo, no sé cuál es el problema. La tarea es la siguiente: encontrar la barra de una hora determinada en los minutos. Si aún no ha llegado el momento, búsquelo en el día de ayer, de lo contrario búsquelo en el día de hoy. He escrito el siguiente script:

#property show_inputs

extern string time = "15:25";
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   string comment = StringConcatenate(" TimeCurrent = ", TimeCurrent(),
      "\n TimeToStr(TimeCurrent) = ", TimeToStr(TimeCurrent(), TIME_DATE|TIME_MINUTES));
   datetime d_time = StrToTime(time);
   comment = StringConcatenate(comment,
      "\n d_time = ", d_time,
      "\n TimeToStr(d_time) = ", TimeToStr(d_time, TIME_DATE|TIME_MINUTES));
   int delta_time = TimeCurrent() - d_time;
   comment = StringConcatenate(comment,
      "\n delta_time = ", delta_time);
   if(delta_time < 0){
      d_time -= 60*60*24;
      comment = StringConcatenate(comment,
         "\n\n delta_time < 0");
   }else{
      comment = StringConcatenate(comment,
         "\n\n delta_time > 0");
   }
   //
   comment = StringConcatenate(comment,
      "\n\n d_time = ", d_time,
      "\n TimeToStr(d_time) = ", TimeToStr(d_time, TIME_DATE|TIME_MINUTES));
   delta_time = TimeCurrent() - d_time;
   comment = StringConcatenate(comment,
      "\n delta_time = ", delta_time);
   double d_delta_time = delta_time;
   double value = d_delta_time/60;
   int start = MathCeil(value);
   datetime sought_time = iTime(Symbol(),PERIOD_M1,start);
   comment = StringConcatenate(comment,
      "\n\n value = ", DoubleToStr(value, 3),
      "\n start = ", start,
      "\n sought_time = ", sought_time,
      "\n TimeToStr(sought_time)= ", TimeToStr(sought_time, TIME_DATE|TIME_MINUTES));
   Comment(comment);
//----
   return(0);
  }

Esto es lo que produce:

El algoritmo es el siguiente. Miramos la diferencia entre la hora actual y la hora dada, y si es menor que cero, retrocedemos un día. Luego dividimos la diferencia por 60 y redondeamos hacia arriba, este será el número de la barra en M1 y miramos su tiempo. No coincide con el establecido en los externos. ¿Dónde está este error algorítmico?

 
gyfto:

No puedo entenderlo, no sé cuál es el problema. La tarea es la siguiente: encontrar la barra de una hora determinada en los minutos. Si aún no ha llegado el momento, búsquelo en el día de ayer, de lo contrario búsquelo en el día de hoy. He escrito el siguiente script:

Esto es lo que produce:

El algoritmo es el siguiente. Miramos la diferencia entre la hora actual y la hora dada, y si es menor que cero, retrocedemos un día. Luego dividimos la diferencia por 60 y redondeamos hacia arriba, este será el número de la barra en M1 y miramos su tiempo. No coincide con el establecido en los externos. ¿Dónde está este error algorítmico?

La volatilidad es baja por la noche, hay minutos en los que no pasa ni una sola operación, por lo que no hay barra. Mira el historial para ver si todas las barras están presentes.
 
Roger:
Mira el historial para ver si todas las barras están presentes.


Puede pasar del valor encontrado en while() a la barra que está buscando. Lo intentaré.
 
gyfto:

No puedo entenderlo, no sé cuál es el problema. La tarea es la siguiente: encontrar la barra de una hora determinada en los minutos. Si aún no ha llegado el momento, búsquelo en el día de ayer, de lo contrario búsquelo en el día de hoy. He escrito el siguiente script:

Esto es lo que produce:

El algoritmo es el siguiente. Miramos la diferencia entre la hora actual y la hora dada, y si es menor que cero, retrocedemos un día. Luego dividimos la diferencia por 60 y redondeamos hacia arriba, este será el número de la barra en M1 y miramos su tiempo. No coincide con el establecido en los externos. ¿Dónde está este error algorítmico?

¿Está practicando, o iBarShift() no le ha gustado?
 
TarasBY:
¿Practicando, o no te gusta iBarShift()?
Soy un idiota.
 
Por favor, dame el número/dirección del servidor de demostración para MT4 de MetaQuotes. Acabo de descargar MT4 de la página web de MetaQuotes y está en TeleTrade-Demo (Empresa Teletrade D.J.), pero quiero conectarme a MQ y trabajar con sus cotizaciones.
 
Saludos a todos, una pregunta: ¿es posible abrir una posición al cierre de la barra (trabajando en barras de 15 minutos), si es así, cómo hacerlo con mt4?