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

 
m8akca:

PUEDE programarse este algoritmo. ¡Mi cabeza está hirviendo por tercera semana!

Hola, estoy intentando programar el algoritmo, funciona, pero no abre la orden de venta al comparar los precios. Llevo una tercera semana trabajando con este algoritmo. No te enviaré mi código ya que he intentado escribirlo pero no funciona. Por favor, dígame si es posible aplicar este programa. ¡Y si no te importa, por favor envíame el código te estaré muy agradecido!

El programa: Abrimos una orden de compra, tomamos el precio de apertura de la orden de compra y lo comparamos con el precio de oferta y cuando el precio de apertura de la orden de compra es igual al precio de oferta, abrimos una orden de venta al precio de apertura de la orden de compra.

Se puede programar casi todo, y este algoritmo más.

Sólo hay un problema en el algoritmo (en negrita), puede ocurrir que no sea igual durante mucho tiempo (pueden ser varios años). Por eso en este caso no debemos poner la condición de comprobación igual ==, sino igual o mayor que =>. Al mismo tiempo, después de abrir una orden, debemos prohibir la apertura de más órdenes, lo que hace que la cabeza hierva.

 
AlexeyVik:

Casi todo se puede programar, y este algoritmo aún más.

Sólo hay un problema en el algoritmo (resaltado en negrita), puede ocurrir que no sea igual durante mucho tiempo (quizás varios años). Por eso en este caso no debemos poner la condición de comprobación igual ==, sino igual o mayor que =>. Al mismo tiempo, después de abrir una orden, debemos prohibir la apertura de más órdenes, lo que hace que la cabeza hierva.

La cuestión es que necesito una comparación exacta ==, no cuantos años hay que esperar por qué si saco por ejemplo en mi comentario el precio de la orden de Compra y el precio de la Oferta y estas variables coinciden en algunos momentos pero la condición de comparación == no se cumple: ¿Es POSIBLE programar este algoritmo? ¡Mi cabeza está hirviendo por tercera semana!
 

el archivo ha sido tratado. ¿Puede decirme, por favor:

1. ¿es posible incluir más de un EA en el mismo gráfico?

2. ¿o asesor+script?

3. ¿Es necesario poner en el gráfico del instrumento exactamente el TF que utiliza el Asesor Experto?

4. ¿Es necesario poner en la ventana del instrumento el indicador utilizado por el Asesor Experto?

5. si el EA utiliza multidivisas, ¿es necesario abrir todas las ventanas con estos pares de divisas?

 
m8akca:
La cuestión es que necesito una comparación exacta ==, no cuántos años hay que esperar por qué si por ejemplo en el comentario saco un precio de orden de compra y un precio de oferta y estas variables coinciden en algunos puntos, pero la condición de comparación == no se cumple: ¿Es POSIBLE programar este algoritmo? ¡Mi cabeza está hirviendo por tercera semana!
Porque el precio puede ser _Punto más o menos y ya no es igual.
 

¿Podría sugerir una función que cuente la cantidad de la última serie de operaciones perdedoras seguidas? Si se activa el TakeProfit, se pondrá el contador a cero.

 

Hola a todos, Estimados! Por favor, díganme si hay una red, o tal vez alguien tiene tiempo para escribir un asesor, para los siguientes parámetros. 1) especificar la dirección de compra (venta), y el precio de esta compra (venta). 2) Especifico el tamaño del tope. 3) Pongo, por ejemplo, tres niveles de precios, en los que se debe cerrar una parte del tamaño del lote. Por ejemplo, expongo la orden de venta a 1$, en los parámetros del asesor se especifica cuánto % (o cuánto volumen) cerrar a 1,2, cuánto % (o cuánto volumen) a 1,3 y el resto a 1,4.

 
ara66676:
Digamos que para mí era importante determinar el tiempo, 10 segundos antes del cierre de cada cinco minutos, y como el análisis incluye 28 pares de divisas, esta barra será para cualquier par, y el número de ticks en mi caso no importa.

Entonces es más sencillo así:

datetime TSec; // Hora actual en segundos desde el inicio de los últimos cinco minutos

TSec = TimeCurrentl() % 300; // Resto de la división. Se puede comparar con 290 = 5 minutos - 10 segundos.

En caso de desconexión del servidor, la última hora conocida TimeCurrent no cambiará, retrasándose con respecto a la hora real. Si hay confianza en el temporizador del sistema que se ejecuta en el ordenador terminal, por ejemplo, cuando la hora del ordenador se sincroniza automáticamente con la hora astronómica del sistema operativo (error de 1-2 segundos) o de otro modo, es mejor no utilizar la última hora conocida del servidor (la hora de la última llegada de las cotizaciones), sino la hora del ordenador datetimeTimeLocal(). Este tiempo también se cuenta desde 1970.01.01 0:00:00 en segundos y es adecuado para medir 5 minutos y 10 segundos, la diferencia entre las zonas horarias del ordenador y del servidor no es importante. Entonces

TSec = TimeLocal() % 300;

 
Vlad143:

Entonces es más sencillo así:

datetime TSec; // Hora actual en segundos desde el inicio de los últimos cinco minutos

TSec = TimeCurrentl() % 300; // Resto de la división. Se puede comparar con 290 = 5 minutos - 10 segundos.

En caso de desconexión del servidor, la última hora conocida TimeCurrent no cambiará, retrasándose con respecto a la hora real. Si hay confianza en el temporizador del sistema que se ejecuta en el ordenador terminal, por ejemplo, cuando se sincroniza automáticamente con la hora astronómica del sistema operativo (error de 1-2 segundos) o de otro modo, es mejor no utilizar la última hora conocida del servidor (hora de la última llegada de las cotizaciones), sino la propia hora del ordenador datetimeTimeLocal(). Este tiempo también se cuenta desde 1970.01.01 0:00:00 en segundos y es adecuado para medir 5 minutos y 10 segundos, la diferencia entre las zonas horarias del ordenador y del servidor no es importante. Entonces

TSec = TimeLocal() % 300;

gracias, también es útil .
 
Por favor, indique cómo interrumpir la suma de posiciones no rentables
    Подскажите, пожалуйста, как прервать суммирование убыточных позиций при срабатывании Тейкпрофита. После заново считать.
    
    Использую функцию Кimа 
    
     double GetProfitFromDateInCurrency(string sy="", int op=-1, int mn=-1,  datetime dt=0)
{
  p=0;
  int    i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (dt<OrderCloseTime()) {
             
             if(OrderProfit()<0){
              p+=OrderProfit();
            }
          }
        }
      }
    }
  }
 }
  
  return(p);
 
Neron_plus34:
Por favor, indique cómo interrumpir la suma de posiciones no rentables
if(dt<OrderCloseTime()) {
   if(OrderProfit()<0) p+=OrderProfit(); 
   else break;
   }