[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 583

 
alsu:
El billete se queda como estaba


????

¿Cómo puedo comprobar si el pedido está cerrado o no?

 
Cruc:

Muchas gracias por la recomendación, casi lo he resuelto, sólo que no recuerdo si la orden se dispara, ¿el ticket toma un valor de -10?
El billete no cambia. Sólo el OrderCloseTime se hace mayor que cero
 
ilunga:
El billete no cambia. Sólo tiene un OrderCloseTime mayor que cero


Y si se dispara un stop o beneficio, también se convierte en menos de cero, si no me equivoco -1 ?

¿Cómo configuro la condición correctamente? Por favor, avisa.

 
Cruc:


Y si se dispara un stop o beneficio, será menor que cero, si no me equivoco -1 ?

¿Cómo puedo establecer la condición correctamente? Por favor, dame una pista.

No se convertirá en algo diferente, seguirá siendo lo mismo. Las posiciones cerradas pasan a la lista del historial de operaciones con las mismas entradas.

Revise esta misma lista del historial de transacciones y busque el pedido allí.

 
artmedia70:

¿Por qué? Emitir todas las banderas a la vez en un Comentario`.

Ahí mismo:




no había ninguna subida en el ADX, lo que significa que la condición

// comprueba si el ADX ascendente > 20, o simplemente el ADX ascendente ---- comprueba la fuerza del movimiento.
if (x<20 && x0>20) {f3 = 1; }

no se cumple, pero la operación está abierta

 
Ivn:


no había ninguna subida en el ADX, es decir, la condición

// comprueba si el ADX alcista > 20, o simplemente el ADX alcista ---- comprueba la fuerza.
if (x<20 && x0>20) {f3 = 1; }

no se cumple y la operación está abierta.

A juzgar por el comentario de la captura de pantalla, estás controlando la barra de cero para tomar decisiones.

Esto no es bueno... En una barra cero, los indicadores pueden ir y venir muchas veces durante la formación de la barra, creando así señales falsas (chatter).

Para evitarlo, compruebe la primera barra ya formada.

 
Llevo mucho tiempo trabajando en esto. A menudo observo en el gráfico que el precio parece llegar a un determinado nivel, por regla general el máximo o el mínimo de las velas son casi iguales entre sí. Pero no sé cómo hacerlo matemáticamente. Llevo 3 días indagando en el foro y en la base de datos pero no encuentro nada de eso.
 

¡Saludos!

Estoy intentando mostrar información sobre una vela anterior (barra no nula) - vela alcista o bajista, tamaño de su cuerpo y sombras y relación de las sombras con el cuerpo de la vela.

Pero no sale una flor de piedra. Da salida a valores erróneos.

int start()
  {
   int counted_bars=IndicatorCounted();
   if (counted_bars<0) return(-1);        //---- check for possible errors
   if (counted_bars>0) counted_bars--;    //---- last counted bar will be recounted
   int limit=Bars-counted_bars;
   
   double kerzen_typ;                  //тип свечи
   string kerzen_name;                 //наименование свечи
   double kerzen_body;                 //размер тела свечи
   double kerzen_shadow_up;            //размер верхней тени
   double kerzen_shadow_down;          //размер нижней тени
   double kerzen_shadow2body_up;       //отношение верхней тени к размеру тела
   double kerzen_shadow2body_down;     //отношение нижней тени к размеру тела

//---- main loop
   for(int bar=0; bar<limit; bar++)
      {
//определение контрольной свечки - белая, черная или додж и сбор информации
   if (Close[bar]>Open[bar])
      {
         kerzen_typ=1;
         kerzen_name="бычья или белая свеча";
         kerzen_shadow_up=High[bar]-Close[bar];
         kerzen_shadow_down=Open[bar]-Low[bar];
         kerzen_body=Close[bar]-Open[bar];
      }
   if (Open[bar]>Close[bar])
      {
         kerzen_typ=-1;
         kerzen_name="медвежья или черная свеча";
         kerzen_shadow_up=High[bar]-Open[bar];
         kerzen_shadow_down=Close[bar]-Low[bar];
         kerzen_body=(Open[bar]-Close[bar]);
      }
   if (Open[bar]==Close[bar])
      {
         kerzen_typ=0;
         kerzen_name="додж";}  
         kerzen_shadow_up=High[bar]-Open[bar];
         kerzen_shadow_down=Close[bar]-Low[bar];
      }
//определение соотношения тени к телу свечки      
if (kerzen_body==0)
      {
         kerzen_shadow2body_up=kerzen_shadow_up;
         kerzen_shadow2body_down=kerzen_shadow_down;
         }
if (kerzen_body!=0)
      {
         kerzen_shadow2body_up=kerzen_shadow_up/kerzen_body;
         kerzen_shadow2body_down=kerzen_shadow_down/kerzen_body;
      }     
 
//---- done
   Comment  (
               "Контрольный бар типа ",kerzen_name,"\n",
               "Верхняя тень - ",kerzen_shadow_up*10000," в ",kerzen_shadow2body_up, " раз больше","\n",
               "Тело - ",kerzen_body*10000,"\n", 
               "Нижняя тень - ",kerzen_shadow_down*10000," в ",kerzen_shadow2body_down, " раз больше"
            );
   return(0);
  }
 
gabba:

Saludos.

Estoy intentando mostrar información sobre una vela anterior (barra no nula) - vela alcista o bajista, tamaño de su cuerpo y sombras y relación de las sombras con el cuerpo de la vela.

Pero no sale una flor de piedra. Da salida a valores erróneos.


¿Por qué usar un ciclo si sólo se toma 1 barra? Sólo usa 1 en lugar de "barra". Sólo comprueba las nuevas barras para no tener que recalcular todo en cada tick.
 
Cruc:


Y si se dispara un stop o un beneficio, se pondrá por debajo de cero, si no me equivoco - -1 ?

¿Cómo puedo establecer la condición correctamente? ¿Puedes darme una pista?

una vez más.

La variante más sencilla (esquema)

if (ticket > 0)
{
   OrderSelect(ticket, SELECT_BY_TICKET);
   if (OrderCloseTime() > 0)
   {
      // ордер закрылся
   }
   else
   {
      // ордер пока еще открыт
   }
}
else
{
   //первый запуск советника 
}
Razón de la queja: