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

 
Fox_RM:

Resultó no ser tan sencillo. He añadido un número al nombre, se crean 3 (por ejemplo) líneas, pero no se mueven a ninguna parte:( Resulta que tengo que hacer un bucle cerrado y asignar un nuevo número cada vez, pero aquí la situación es idéntica con la asignación de

nombre de la línea de tiempo. Es simplemente horrible...


Mira este indicador
Archivos adjuntos:
_linestat.mq4  6 kb
 
alsu:
indicar al principio del programa
Muchas gracias.
 
void flatline(string labebe,datetime time1,double price1,datetime time2,double price2,color colir, int W)
  {
     ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2);
   ObjectSet(labebe, OBJPROP_COLOR, colir);
   ObjectSet(labebe, OBJPROP_STYLE,0);
   ObjectSet(labebe, OBJPROP_RAY,0);
   ObjectSet(labebe, OBJPROP_WIDTH,W);   
   ObjectSet(labebe, OBJPROP_BACK, true);
   }
Código de función para dibujar líneas. Muchas gracias a todos los que han respondido.
 

Ayuda de los chicos,

La cuestión es la siguiente, hay un indicador gráfico hecho por uno mismo, pero el problema es el siguiente, cuando llega un punto determinado, digamos la hora actual

if ((k>=15 && k<16) || (Hour()>=15)) // где k- по прошлым дням (для рисования не только в одном дне, но и по всей истоии)

Debería dibujar un extremo en una sesión de negociación antigua (es conveniente determinar dónde está la operación ahora), pero la pega es que el indicador no dibuja el gráfico, sólo si se cambia de marco temporal hacia adelante y hacia atrás ...

Este es un trozo de código de dibujo

if (Close[iHighest(NULL,0,MODE_CLOSE,8*p_t,i-15*p_t)]> Open[iHighest(NULL,0,MODE_OPEN,8*p_t,i-15*p_t)])
{

max_eu=Close[iHighest(NULL,0,MODE_CLOSE,8*p_t,i-15*p_t)];
Name="max2";
ObjectCreate(Name,OBJ_TREND,0,Time[iHighest(NULL,0,MODE_OPEN,8*p_t,i-15*p_t)],max_eu,Time[i]+l,max_eu);
ObjectSet(Name, OBJPROP_COLOR, Navy);
ObjectSet(Name,OBJPROP_RAY,false);
ObjectSet(Name, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_M30| OBJ_PERIOD_M15 | OBJ_PERIOD_M5);
ObjectSet(Name, OBJPROP_WIDTH, 1);

Label="надпись2";
ObjectCreate(Label,OBJ_TEXT,0,Time[i]+l,max_eu);
ObjectSetText(Label,"Max Европа ", 8, "Arial", Navy);
ObjectSet(Label, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_M30| OBJ_PERIOD_M15 | OBJ_PERIOD_M5);

WindowRedraw();
}

Estoy confundido...

 

DOCTORS:

casero

está bien


Estoy confundido...

Para desenredar, puedes poner Print( ) después de if(...) y ver si la condición incluye
 
alsu:
es lo correcto


Para desenredar, puedes poner Print() después de if(...) y ver si la condición está incluida
Hay varias condiciones allí... Esta es una de las opciones. Pondré la impresión...
 

Dígame si hay programas similares para recopilar estadísticas.

}
 
Fox_RM:
Código de función para dibujar líneas. Muchas gracias a todos los que han respondido.
void flatline(string nm,datetime t1,double p1,datetime t2,double p2,color clr, int W){
   ObjectDelete(nm);// это не обязательно.
   ObjectCreate(nm, OBJ_TREND, 0,0,0,0,0);
   ObjectSet(nm, OBJPROP_PRICE1,p1);
   ObjectSet(nm, OBJPROP_TIME1,t1);
   ObjectSet(nm, OBJPROP_PRICE2,p2);
   ObjectSet(nm, OBJPROP_TIME2,t2);
   ObjectSet(nm, OBJPROP_COLOR, clr);
   ObjectSet(nm, OBJPROP_STYLE,0);
   ObjectSet(nm, OBJPROP_RAY,false);
   ObjectSet(nm, OBJPROP_WIDTH,W);   
   ObjectSet(nm, OBJPROP_BACK, true);
   WindowRedraw();// если обновлять на каждом тике, лучше поставить в самом конце старта
   return;   
}
 

Alerta ("número de barras alcistas = ", vverh, " - ", vverh/(Konec/100), " % " );


¿Pueden decirme por qué me sale un entero sin coma en la expresión vverh/(Konec/100)? Debería haber dígitos después del punto decimal hasta el cuarto dígito, pero sólo sale un número entero. =(

Alert ("número de barras cero = ", nul, " - ", DoubleToStr(nul/(Konec/100),2), " % " ); esta expresión tampoco funciona.

 
ChAnton:

Alerta ("número de barras alcistas = ", vverh, " - ", vverh/(Konec/100), " % " );


¿Pueden decirme por qué me sale un entero sin coma en la expresión vverh/(Konec/100)? Después del punto decimal, los dígitos deberían llegar hasta el cuarto dígito, pero sólo sale un número entero. =(

escondido en algún lugar
Razón de la queja: