[¡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 901

 

pista, porque estoy confundido.

He encontrado el precio de la última orden abierta.

Quiero que la última orden abierta se cierre en:

if((Ask - цена последнего открытого ордера) >= 30 * Point)  OrderClose;
 

¡Buenos días!

¿Puede decirme si es posible cerrar todas las órdenes pendientes en la función especial deinit() (para cerrar todas las órdenes pendientes en caso de fallo de Internet)? Mi EA sólo cierra una parte de ellos. Tal vez, no ha conseguido hacerlo a tiempo (he probado hasta 7 órdenes pendientes)? ¿O tiene algún tipo de error y todos los pedidos deben cerrarse independientemente de su número? En el resto de órdenes pendientes, el Asesor Experto simplemente no introduce la condición de cierre "sí", aunque es -

if (OrderSelect(i-1,SELECT_BY_POS)==true)

- se cumple y debe entrar... Salta a "no" en todas las órdenes restantes y por lo tanto no las cierra. Podemos cerrarlos de forma diferente, es decir, tres pedidos de cinco o cuatro de siete, o uno de siete. ¿Qué podría estar mal?

 
sanyooooook:
Determinar el tiempo de la línea mediante ObjectGet y encontrar el número de barra mediante iBarShift

Gracias. Pero, ¿podría explicar también cómo convertir correctamente el número de segundos a datetime?
 
volshebnik:

¡Buenos días!

¿Pueden indicar si es posible cerrar todas las órdenes pendientes en la función especial deinit() (para cerrar todas las órdenes pendientes en caso de fallo de Internet)? Mi EA ha cerrado sólo una parte de ellos. Tal vez, no ha conseguido hacerlo a tiempo (he probado hasta 7 órdenes pendientes)? ¿O tiene algún tipo de error y todos los pedidos deben cerrarse independientemente de su número? Si hay otras órdenes pendientes, el Asesor Experto simplemente no introduce la condición de cierre "sí", a pesar de que esta condición

if (OrderSelect(i-1,SELECT_BY_POS)==true)

- y debería entrar en él... Salta a "no" en todas las órdenes restantes y, por tanto, no las cierra. Se cierra de forma diferente: tres de cinco, o cuatro de siete, o uno de siete. ¿Qué podría estar mal?


No hay milagros. Pero el ciclo que yo haría es así:

for (int i=TotalPedidos()-1;i>=0;i--)

Entonces sería diferente.

 

Hola.

¿Cómo puedo escribir una condición para abrir una operación con los primeros ticks de una nueva barra y cerrarla con los últimos ticks de la barra?

si (????)

 
¡Hola! ¡Una petición de un tonto para gente con conocimientos! Me gustaría hacer una alerta para el indicador de metro. ¡Necesita una señal cuando el valor de la línea lenta, pero no en el cierre de la barra, y al principio de cambiar el valor! ¡¿Quién no es difícil, por favor, escribir, o ayudar a escribir una función de este tipo! Gracias de antemano.
 
Vinin:


No hay milagros. Pero yo haría un bucle así:

for (int i=TotalPedidos()-1;i>=0;i--)

Entonces sería diferente.

Vinin: ¡Muchas gracias! Ahora todo se cierra cuando se apaga el EA o se cierra el terminal, pero.... Si apago el internet y no apago el terminal, y lo vuelvo a encender después de más de un minuto - el asesor no se cierra y ordena, respectivamente, también. ¿Hay alguna forma de cerrar automáticamente el EA si se pierde la conexión a Internet?
 
volshebnik:
Vinin: ¡Muchas gracias! Ahora todo se cierra cuando se apaga el EA o se cierra el terminal, pero.... Si apago el internet y no apago el terminal, y lo vuelvo a encender después de más de un minuto - el EA no se cierra y las órdenes, respectivamente, también. ¿Hay alguna forma de cerrar automáticamente el EA si se pierde la conexión a Internet?


No hay milagros. Para cerrar una posición, necesita una conexión (debe tener Internet), una conexión primaria o de reserva.

Yo aconsejaría utilizar sólo VPS.

 

Buen día, si puede ayudar,

//+------------------------------------------------------------------+
//| Las fronteras de Dimon.mq4 |
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| función de inicialización de expertos |
//+------------------------------------------------------------------+
extern int BandsPeriod=20,i=1 ;extern int BandsShift=0;
extern double BandasDesviaciones=2,0;
extern double Lotes=0.1,TakeProfit=50,stoploss=10;
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto |
//+------------------------------------------------------------------+
int inicio()
{doble Media,Verhnyayaghranytsa,Nyzhnyayaghranytsa,newres,suma,desviación;

Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
//----
newres=Cierre[i]-Promedio;
suma=newres*newres;


desviación=BandasDesviaciones*MathSqrt(suma/PeriodoBandas);
Verhnyayaghranytsa=Promedio+desviación;
Nyzhnyayaghranytsa=Desviación media;
//----
si (Verhnyayaghranytsa<Cerrar[i])
{ Comentario(" boya! ",Verhnyayaghranytsa );
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green);

}


si (Nyzhnyayaghranytsa>Cerrar[i])
{ Comentario(" ¡Vender! ",Nyzhnyayaghranytsa );

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
}
return(0);
}
//+------------------------------------------------------------------+

¡¡¡Indicador sonríe, escribe vender o boya, pero no comercio como tal, tal vez prescribí OrderSend mal, o no sé.Si puedes, ayuda!!!

 
Aquí.