[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 928

 
Techno:

¿qué errores da cuando no abre una posición? Puedes probar esto

No da ningún error, esa es la cuestión.
De acuerdo, lo intentaré, gracias.
 
Vinin:

Si al menos una posición está abierta (cualquiera - a mano, por otro EA) este EA no funcionará


Ya lo sé, no soy tonto, entonces no habría puesto total<1, estoy intentando programarlo yo mismo,

Naturalmente estoy tratando de entender lo que estoy escribiendo en el EA, pero gracias por eso)

 
Roman.:

Tal vez su empresa de corretaje no permite especificar explícitamente las posiciones de toma y parada, compruébelo - ponga ceros en sus lugares en la función de orden de apertura.

Tampoco es mala idea, lo comprobaré sin duda, gracias
 

La documentación dice que:

double PrecioCierreOrden( )
Devuelve el precio de cierre de la orden seleccionada.
El pedido debe ser preseleccionado mediante la función OrderSelect().

Ejemplo:
  if(OrderSelect(10,SELECT_BY_POS,MODE_HISTORY)==true) { datetime ctm=OrderOpenTime(); if(ctm>0) Print("Hora de apertura del pedido 10 ", ctm;
     ctm=OrderCloseTime(); if(ctm>0) Print("Hora de cierre de la orden 10 ", ctm); } else Print("El código de error de OrderSelect falló es",GetLastError();

¿Pero no hay ningún ejemplo de "OrderClosePrice()" propiamente dicho?

Digamos que devuelve el valor de cierre de una orden seleccionada, pero ¿cómo sé si era una posición de stop o de beneficio?

 
gheka:

La documentación dice que:

double PrecioCierreOrden( )
Devuelve el precio de cierre de la orden seleccionada.
El pedido debe ser preseleccionado mediante la función OrderSelect().
Ejemplo:

¿Pero no hay ningún ejemplo de "OrderClosePrice()" propiamente dicho?

Supongamos que devuelve los valores de cierre de una orden seleccionada, pero ¿cómo sé que era una posición de stop o de beneficio?

Aquí está la respuesta a muchas de sus preguntas http://www.vedikhin.ru/2006/06/expert-advisors-overview.html

El tráiler es el mismo pero en formato Word.

Archivos adjuntos:
 
gheka:

La documentación dice que:

double PrecioCierreOrden( )
Devuelve el precio de cierre de la orden seleccionada.
El pedido debe ser preseleccionado mediante OrderSelect().
Ejemplo:

¿Pero no hay ningún ejemplo de "OrderClosePrice()" propiamente dicho?

Digamos que devuelve los valores de cierre de una orden seleccionada, pero ¿cómo sé que era una posición de stop o de beneficio?

¡¡¡Esto es un desastre!!! Lo siento, pero es la primera vez que veo una desatención tan monstruosa, una pereza para pensar y una falta total de pensamiento lógico. No creo que debas hacer programación... En mi opinión, por supuesto. No te ofendas, pero en la página anterior, al principio de la misma, inserté el código que requerías, que devuelve la bandera de cierre de la última posición por un stop. Anticipándome a su pregunta sobre qué es la página anterior, se la daré aquí:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по стопу.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, osl;
  int      dg, i, j=-1, 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=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    osl=NormalizeDouble(OrderStopLoss(), dg);
    if (ocp==osl) return(True);
  }
  return(False);
}

Si puedes, puedes resolverlo. Hay una búsqueda de una orden y su selección, y una comparación del precio de cierre con su valor de StopLoss...

Aunque... No creo que ayude...

 
artmedia70:

¡¡Es un puto desastre total!! Perdóname, pero es la primera vez que veo una desatención tan monstruosa, una pereza para pensar y una falta total de pensamiento lógico. No creo que debas hacer programación... En mi opinión, por supuesto. No te ofendas, pero en la página anterior, al principio de la misma, inserté el código que requerías, que devuelve la bandera de cierre de la última posición por un stop. Anticipándome a su pregunta sobre qué es la página anterior, se la daré aquí:

Si puedes, puedes resolverlo. Hay una búsqueda de una orden y su selección, y una comparación del precio de cierre con su valor de StopLoss...

Aunque... Supongo - no ayuda...


Todo el mundo ha empezado una vez y no ha sido tan estúpido todavía, puede que el compañero no esté despierto todavía...

Aunque se te ha olvidado añadir que devuelve una bandera, pero no la que ondea en edificios y barcos... :-)

 

Aquí vamos.... Será mejor que lo baje antes de que siga durante ocho páginas.

 

Siempre me interesaría saber cuál es el agradecimiento por la ayuda. Ciertamente lo he recibido un par de veces, quizás más. ¿Quién sabe qué tipo de agradecimientos hay?

 

Una frase clásica: Mi gratitud será ilimitada dentro de lo razonable.

Hola, amigos.

He buscado y no he encontrado nada, pido ayuda.

Necesidad de calcular el promedio de velas para el período y el promedio de oscilación en zigzag.

Necesito un enlace. He estado buscando... Este es el único que pude encontrar.

Me gustaría tener algunos pavos...

Archivos adjuntos:
elu.zip  3101 kb