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

 
ikatsko:
¿Por qué el comando Print(TimeToStr(Time[0],TIME_MINUTES)); da un resultado como 12:00[sl]? La cuestión aquí es el prefijo entre corchetes. ¿Y cómo puedo obtener un resultado sin paréntesis? (Gracias por adelantado.)

¿Está seguro? Esto se suele añadir al comentario de la orden cuando se cierra en la parada. Se añade [tp] al cerrar en la toma.

Puse tu línea en una plantilla de EA vacía y la ejecuté en el probador en M15 abriendo precios:


No tu [sl].
 
Sepulca:


Cierto, no dividir por cero))))
Deberías proporcionar una condición que prohíba la división por cero, eso es todo. Aunque no soy un programador de alto nivel, no me olvido de estas cosas, a pesar de que exel sólo tiene 7 saltos condicionales posibles.
 
ikatsko:
¿Por qué el comando Print(TimeToStr(Time[0],TIME_MINUTES)); da un resultado como 12:00[sl]? La cuestión aquí es el prefijo entre corchetes. ¿Y cómo puedo obtener un resultado sin paréntesis? (Gracias de antemano).

Saludos, recuerdo que en algún lugar hemos colaborado y nos hemos tocado y has cumplido con mi petición. Gracias.
 
artmedia70:

¿Está seguro? Esto se suele añadir al comentario de la orden cuando se cierra en la parada. [tp] se añade al cerrar en la toma.

He pegado tu línea en una plantilla de EA vacía y la he ejecutado en el probador en M15 en precios abiertos:


No tu [sl]


Sí, tienes razón. Efectivamente, el comando se puso después de SL. Ya veo. Gracias.

 

¡¡¡Hola a todos!!! Tengo un EA que abre órdenes contra el movimiento, ¿cómo puedo cambiar o aconsejar dónde cambiar?

void modify_orders( int type )
{
int i;
datetime time_last = 0, time_first = TimeCurrent();
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*MarketInfo(Symbol(),MODE_POINT), op_pr_last, op_pr_first, level;

for( i = OrdersTotal() - 1; i >= 0; i-- )
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == type )
{
if ( OrderOpenTime() > time_last )
{
op_pr_last = OrderOpenPrice();
time_last = OrderOpenTime();
}
if ( OrderOpenTime() < time_first )
{
op_pr_first = OrderOpenPrice();
time_first = OrderOpenTime();
}
}
}


si ( tipo == 0 )nivel = op_pr_last + MathAbs(op_pr_last-op_pr_first) * (SL/100);
si ( tipo == 1 )nivel = op_pr_last - MathAbs(op_pr_last-op_pr_first) * (SL/100);

for( i = OrdersTotal() - 1; i >= 0; i -- )
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if( OrderMagicNumber() == ID && OrderType() == type && NormalizeDouble(OrderTakeProfit(),Digits) != NormalizeDouble(level,Digits) )OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),level,0);
}
}

double last_trade( int t )
{

 
KeinRich:

¡¡¡Hola a todos!!! Mi EA está abriendo órdenes contra el movimiento, ¿cómo puedo cambiar o aconsejar dónde cambiar?


¿Qué tiene esto que ver con la función de modificación, que tampoco está muy bien escrita?
 
¿Existe una combinación de teclas de acceso rápido para que aparezca la ventana de Alerta cuando está cerrada?
 
Por favor, dígame cómo dibujar una flecha con un objeto LABEL utilizando una fuente Wingdings.
 
Neo333:
¿Existe una combinación de teclas de acceso rápido para que aparezca la ventana de Alerta cuando está cerrada?
Puedes mirar en el cuaderno de bitácora.
 
zfs:
Dime cómo dibujar una flecha con el objeto LABEL, utilizando la fuente Wingdings.
//+----------------------------------------------------------------------------+
void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSet(nm, OBJPROP_ARROWCODE, cd);
   ObjectSet(nm, OBJPROP_COLOR    , cl);
   ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
//+----------------------------------------------------------------------------+

Llamada para dibujar una calavera roja en la vela actual al precio de la oferta, tamaño 1 usando la flecha:

SetArrow(78, Red, "Scull", Time[0], Bid, 1);

Esta es la función para mostrar el texto. Son similares. Intenta hacer uno tú mismo para dar salida al marcador.

//+----------------------------------------------------------------------------+
void SetArrowText(string text, color cl, string font="Arial", string nm="", datetime t1=0, double p1=0, int sz=0) {
   if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TEXT, 0, 0, 0);
   ObjectSet(nm, OBJPROP_TIME1    , t1);
   ObjectSet(nm, OBJPROP_PRICE1   , p1);
   ObjectSetText(nm, text,sz, font, cl);
}
//+----------------------------------------------------------------------------+