Debe pasar un PRECIO a la función, alrededor del cual se buscarán las órdenes pendientes.
Además de este precio, hay que pasar dos variables:
Me rindo, ¿tienes un Asesor Experto preparado que imprima los precios de esas órdenes pendientes que mostré con flechas en la captura de pantalla?
No entiendo por qué esta función funciona sin pasar ningún precio.
int TotalGridBuyOrders=0;
Print(__FUNCTION__);
for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its propertiesif(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic && m_order.OrderType()==ORDER_TYPE_BUY_STOP)
TotalGridBuyOrders++;
Print("Количество buy ордеров grid ",TotalGridBuyOrders);
if(TotalGridBuyOrders>=1)
{
grid_buy_price_memory=m_order.PriceOpen();
Print("Цена ближайшего buy grid ордера: ",grid_buy_price_memory);
Me rindo, ¿no tienes un Asesor Experto ya hecho que saque una impresión de los precios de esas órdenes que mostré con flechas en la captura de pantalla?
Te he dado una función ya hecha. Tienes que pasar en él:
Me rindo, ¿no tienes un Asesor Experto ya hecho que te imprima los precios de esas órdenes pendientes que mostré con flechas en la captura de pantalla?
No entiendo por qué esta función funciona sin enviar ningún precio.
???
Muestras un código inviable -al menos no compila- porque tiene un desajuste de paréntesis de apertura y cierre. Y en segundo lugar = lógica rota.
Estás mostrando un código inviable -al menos no compila- porque tiene un desajuste de paréntesis de apertura y cierre. Y en segundo lugar = lógica rota.
Reescribí tu código.
Pero produce órdenes pendientes lejos del precio
void TradeMode3()
{
price_nearest_buy_stop = 0;
price_nearest_sell_stop = 0;
double diff_buy_stop = DBL_MAX;
double diff_sell_stop = DBL_MAX;
for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its propertiesif(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic)
{
if(m_order.OrderType()==ORDER_TYPE_BUY_STOP)
{
if(m_order.PriceOpen()-price1>0.0 && m_order.PriceOpen()-price1<diff_buy_stop)
{
diff_buy_stop = m_order.PriceOpen()-price1;
price_nearest_buy_stop = m_order.PriceOpen();
}
Print("buy : ",price_nearest_buy_stop);
return;
}
elseif(m_order.OrderType()==ORDER_TYPE_SELL_STOP)
{
if(price1-m_order.PriceOpen()>0.0 && price1-m_order.PriceOpen()<diff_sell_stop)
{
diff_sell_stop = price1-m_order.PriceOpen();
price_nearest_sell_stop = m_order.PriceOpen();
}
Print("sell : ",price_nearest_sell_stop);
return;
}
}
}
Supongamos que tengo un timeframe actual M1, necesito saber la hora de la última barra N de la barra dada de cualquier TF superior, la hora puede no ser de 60 minutos, sino de 45 o cualquier otra, y además hay fines de semana, necesito saber la fecha de la última barra del TF actual de cualquier TF.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Debe pasar un PRECIO a la función, alrededor del cual se buscarán las órdenes pendientes.
Además de este precio, hay que pasar dos variables:
Me rindo, ¿tienes un Asesor Experto preparado que imprima los precios de esas órdenes pendientes que mostré con flechas en la captura de pantalla?
No entiendo por qué esta función funciona sin pasar ningún precio.
???
Me rindo, ¿no tienes un Asesor Experto ya hecho que saque una impresión de los precios de esas órdenes que mostré con flechas en la captura de pantalla?
Te he dado una función ya hecha. Tienes que pasar en él:
¿Qué es lo que no entiendes?
Me rindo, ¿no tienes un Asesor Experto ya hecho que te imprima los precios de esas órdenes pendientes que mostré con flechas en la captura de pantalla?
No entiendo por qué esta función funciona sin enviar ningún precio.
???
Muestras un código inviable -al menos no compila- porque tiene un desajuste de paréntesis de apertura y cierre. Y en segundo lugar = lógica rota.
Estás mostrando un código inviable -al menos no compila- porque tiene un desajuste de paréntesis de apertura y cierre. Y en segundo lugar = lógica rota.
Reescribí tu código.
Pero produce órdenes pendientes lejos del precio
Reescribí tu código.
Pero da colgantes más lejos del precio
Las impresiones deben venir después del bucleOrdersTotal.
¿Y qué es el precio1? ¿Cómo se consigue?Y en esta versión, imprime todas las
Las impresiones deben venir después del bucleOrdersTotal.
¿Y qué es el precio1? ¿Cómo se consigue?Y en la cabecera del EA he escrito
Si todo es correcto, esta es la variante final
Todo parece funcionar. Dime si hay algún error. Muchas gracias.
Por favor, ayúdenme a resolver este problema.
Supongamos que tengo un timeframe actual M1, necesito saber la hora de la última barra N de la barra dada de cualquier TF superior, la hora puede no ser de 60 minutos, sino de 45 o cualquier otra, y además hay fines de semana, necesito saber la fecha de la última barra del TF actual de cualquier TF.
¿Cómo aplicarlo?
Y en la cabecera del asesor dice
Y si todo es correcto, aquí está la variante final
Todo parece funcionar. Dime si hay algún error. Muchas gracias.
Antes de la línea
price1=m_symbol.Bid();hay que actualizar las cotizaciones: