Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 97
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Tipo, int o datetime
Una vez hice una función que emite mensajes a una ventana indicadora vacía. Puede ajustar los colores de las líneas mostradas. Ya está depurado. Si lo necesitas, puedo compartirlo.
Con mucho gusto miraré tu código Artem. Para probar la impresión, no es la opción más conveniente...
r772ra:
¿Qué es esto?
Tipo, int o datetime
Reescribí todo el lío y quedó así:
Por alguna razón, incluso cuando las órdenes están cerradas y la última hora de cierre de la orden no debe ser cero.
Lo tenemos en el comentario todo el tiempo:
Время закрытия последнего открытого ордера = 0
Por eso mi código no funciona más, porque esta función no funciona.
Así que reescribí todo el lío y quedó así:
Por alguna razón, incluso cuando las órdenes están cerradas y la última hora de cierre de la orden debe ser correspondientemente no cero.
Yo pude conseguirlo en mi comentario todo el tiempo:
Por eso nada funciona según mi código, porque esta función no me deja entrar.
Este EA considera las órdenes pendientes en su código. Pues bien, buscará entre las órdenes abiertas en consecuencia. Naturalmente, devolverá el tiempo de cierre cero.
Si quiere ver las órdenes cerradas, tiene que verlas en la lista de órdenes cerradas:
и
Pero... tenemos que hacer dos funciones - una busca las órdenes abiertas y la otra busca las órdenes cerradas.
También tiene en cuenta sus órdenes pendientes. Y, en consecuencia, busca entre las órdenes abiertas. Naturalmente, devolverá el tiempo de cierre cero.
Si quiere ver las órdenes cerradas, debe verlas en la lista de las cerradas:
и
Pero... tenemos que hacer dos funciones - una busca las órdenes abiertas y la otra busca las órdenes cerradas.
Gracias, Artyom. Exactamente... Lo siguiente es una cuestión de optimización del código. Hay preguntas sobre la estructura del código, pero habrá que escribirlo con la cabeza fría.
Con mucho gusto miraré tu código, Artem. Para probar la impresión, no es la variante más conveniente...
Aquí hay un EA para probar la función. Contiene la propia función y su llamada. Antes de llamarlo, hay que preparar un mensaje, que puede tener hasta cuatro líneas. La longitud de cada línea, si no recuerdo mal, no debe superar los 64 caracteres. Por eso he dividido un mensaje en varias líneas. Cada línea de un mensaje puede salir en un color diferente. Está bastante claro en el código: primero preparamos las líneas de mensajes y luego llamamos a la función. No he comentado mucho ahí, lo escribí de un tirón hace tiempo. Ahora ya he olvidado para qué sirve. Si tengo alguna duda, lo recordaré, pero ahora sólo recuerdo las cosas necesarias.
Y un pavo:
Así es... Espero que lo descubras.
Por supuesto, se puede hacer una subcapa en lugar de emitirla en el gráfico principal, pero soy demasiado perezoso para hacerlo... :)
Aquí hay un EA para probar la función. Contiene la propia función y su llamada. Antes de llamarlo, hay que preparar un mensaje, que puede tener hasta cuatro líneas. La longitud de cada línea, si no recuerdo mal, no debe superar los 64 caracteres. Por eso he dividido un mensaje en varias líneas. Cada línea de un mensaje puede salir en un color diferente. Está bastante claro en el código: primero preparamos las líneas de mensajes y luego llamamos a la función. No he comentado mucho ahí - lo escribí de un tirón hace tiempo. Ahora ya he olvidado para qué sirve. Si tengo alguna duda, lo recordaré, pero ahora sólo recuerdo las cosas necesarias.
Y un pavo:
Así es... Espero que lo descubras.
Por supuesto, se puede hacer una subcapa en lugar de emitirla en el gráfico principal, pero soy demasiado perezoso para hacerlo... :)
¡Buena gente! He escrito un EA, todo parece funcionar bien en la vida real, todo es normal. Pero lo compruebo en el probador: falla. La idea es la siguiente. El Asesor Experto debe abrir las órdenes mediante líneas horizontales dibujadas en el gráfico. En el probador, los abre en varios niveles todo el tiempo, como si se hubieran puesto muchas líneas, ¡aunque no hay ninguna! ¿Puede explicar qué es lo que está mal?
Una parte del código responsable de las líneas:
int Nuevo_gorizont()
{
int consejo_o_compra;
int tip_o_sell;
int obj_total=ObjectsTotal();
// si no hay nuevas líneas, salir
if(obj_total==0)
volver;
// si(hay...
if(obj_total!=0)
string name=Nombre del objeto(0);
double pr=NormalizeDouble(ObjectGet(name,1),Digits);
ObjectDelete(nombre); // borrar y volver a poner
if(pr>Bid+(Nivel_de_parada+1)*Punto) // determinar el tipo de orden
{
tip_o_sell=OP_SELLLIMIT;
tip_o_buy=OP_BUYSTOP;
}
if(pr<Bid-(Nivel_de_parada+1)*Punto)
{
tip_o_sell=OP_SELLSTOP;
tip_o_buy=OP_BUYLIMIT;
}
// establecer órdenes
OrderSend(Symb,tip_o_sell,Value,pr,3,pr+StopLoss*Point,pr-TakeProfit*Point, "Order set");
Prov_oshibok();
................................
}
En otras palabras, obj_total==0 y eso es todo. Pero se pone y pone todo al infinito por alguna razón.
¡Buena gente! He escrito un EA, todo parece funcionar bien en la vida real, todo es normal. Pero lo compruebo en el probador y falla.
No me lo creo, este EA no puede funcionar ni en el sitio real ni en el tester.