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
¿Hasta dónde llega i? ¿Qué es el número Bars-1?
¡No funciona! Realmente no sé qué hacer...
[...]
No funciona. Realmente no sé qué hacer...
¿De qué manera no funciona? ¿Los valores son erróneos? ¿No se calculan en absoluto?
¿De qué manera no funciona? ¿Los valores son erróneos? ¿No se calculan en absoluto?
No puedo entenderlo. Tengo orden de abrir compra cuando el precio es mayor que HighValue y viceversa para la venta.
¿Cómo se pueden escribir estos valores en el monitor? Con Print("Valor alto: ",Valor alto);
Creo que es la única manera de encontrar lo que estos valores son, pero no son altos / bajos entre 15,00 y 17,00.
Sí. Creo que lo mejor es poner el código aquí y luego quizás alguien encuentre una solución.
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 barras M15 entre 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 barras M15 entre 15.00-17.00
}
//-----
if (Hour() ==0 && (Minute()==0 && (Seconds()==1))
{
TopRange=0;
LowRange=0;
comprado=false;
sold=false;
sessionfound=false;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1) && (Trade_on_Monday==true)) TradeDayOK=true;
//-----
total=Total de pedidos();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("No tenemos dinero. Margen libre = ", AccountFreeMargin());
return(0);
}
if(newbar==Time[0])return(0);
si no, newbar=Time[0];
if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
if ((bought==false) && (Low[1] > (TopRange+Point*3))
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
bought=true;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de COMPRA abierta : ",OrderOpenPrice());
}
else Print("Error al abrir la orden de COMPRA : ",GetLastError());
return(0);
}
if ((sold==false) && (High[1] < (LowRange-Point*3) ))
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
vendido=verdadero;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de venta abierta : ",OrderOpenPrice());
}
else Print("Error al abrir la orden de VENTA : ",GetLastError());
return(0);
}
return(0);
}
return(0);
}
}
Sí. Creo que lo mejor es poner el código aquí y luego quizás alguien encuentre una solución.
if(Hour() == 17 && gethighlows == true)
{
gethighlows = false;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 barras M15 entre 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 barras M15 entre 15.00-17.00
}
//-----
if (Hour() ==0 && (Minute()==0 && (Seconds()==1))
{
TopRange=0;
LowRange=0;
comprado=false;
sold=false;
sessionfound=false;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1) && (Trade_on_Monday==true)) TradeDayOK=true;
//-----
total=Total de pedidos();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Print("No tenemos dinero. Margen libre = ", AccountFreeMargin());
return(0);
}
if(newbar==Time[0])return(0);
si no, newbar=Time[0];
if(TradeDayOK)
{
if(sessionfound && ( (Hour()>=17) && (Minute()>15) && Hour()<=23)
{
if ((bought==false) && Ask >= TopRange)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
bought=true;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de COMPRA abierta : ",OrderOpenPrice());
}
else Print("Error al abrir la orden de COMPRA : ",GetLastError());
return(0);
}
if ((sold==false) && Bid <= LowRange)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
vendido=verdadero;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de venta abierta : ",OrderOpenPrice());
}
else Print("Error al abrir la orden de VENTA : ",GetLastError());
return(0);
}
return(0);
}
return(0);
}
}