![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Até onde eu vou? O que é o número do Bars-1?
Não funciona! Eu realmente não sei o que fazer...
[...]
Não funciona! Eu realmente não sei o que fazer...
De que maneira isso não funciona? Os valores estão errados? Não estão sendo calculados de forma alguma?
De que forma isso não funciona? Os valores estão errados? Não estão sendo calculados de forma alguma?
Eu não consigo entender. Tenho ordem para abrir a compra quando o preço é maior que HighValue e vice versa para vender.
Como escrever esses valores no monitor? Com impressão ("Alto valor: ",Alto valor");
Acho que essa é a única maneira de encontrar quais são esses valores, mas eles não são altos/baixos entre 15.00 e 17.00.
Sim. Eu acho que o melhor é colocar aqui um código e depois talvez alguém encontre uma solução.
if(Hora() == 17 && gethighlows == verdadeiro)
{
gethighlows = falso;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 M15 barras entre 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 M15 bars entre 15.00-17.00
}
//-----
se (Hora() ==0 && (Minuto()==0 && (Segundos()==1)))
{
TopRange=0;
LowRange=0;
comprado=falso;
vendido=falso;
sessionfound=falso;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1) && (Trade_on_Monday===true)) TradeDayOK=verdadeiro;
//-----
total=OrdensTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Imprimir("Nós não temos dinheiro. Margem Livre = ", AccountFreeMargin());
devolução(0);
}
if(newbar==Time[0])return(0);
else newbar=Time[0];
if(TradeDayOK)
{
if(sessionfound && ( (Hora()>=17) && (Minuto()>15) && Hora()<=23)
{
se ((comprado==falso) && (Baixo[1] > (TopRange+Ponto*3)))
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
comprado=verdadeiro;
if(bilhete>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("Pedido aberto : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError()));
retornar(0);
}
se ((vendido==falso) && (Alto[1] < (Ponto-Baixo*3)))
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
vendido=verdadeiro;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("ordem de venda aberta : ",OrderOpenPrice()));
}
else Print("Error opening SELL order : ",GetLastError()));
retornar(0);
}
retorno(0);
}
retorno(0);
}
}
Sim. Eu acho que o melhor é colocar aqui um código e depois talvez alguém encontre uma solução.
if(Hora() == 17 && gethighlows == verdadeiro)
{
gethighlows = falso;
TopRange=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 M15 barras entre 15.00-17.00
LowRange=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 M15 bars entre 15.00-17.00
}
//-----
se (Hora() ==0 && (Minuto()==0 && (Segundos()==1)))
{
TopRange=0;
LowRange=0;
comprado=falso;
vendido=falso;
sessionfound=falso;
}
//-----
bool TradeDayOK=(DayOfWeek()>=1) && (DayOfWeek()<=5);
if ((DayOfWeek()==1) && (Trade_on_Monday===true)) TradeDayOK=verdadeiro;
//-----
total=OrdensTotal();
if(total<1)
{
if(AccountFreeMargin()<(1000*Lots))
{
Imprimir("Nós não temos dinheiro. Margem Livre = ", AccountFreeMargin());
devolução(0);
}
if(newbar==Time[0])return(0);
else newbar=Time[0];
if(TradeDayOK)
{
if(sessionfound && ( (Hora()>=17) && (Minuto()>15) && Hora()<=23)
{
se ((comprado==falso) && Pergunte >= TopRange)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-(StopLoss*Point),Ask+(TakeProfit*Point),0,0,Blue);
comprado=verdadeiro;
if(bilhete>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("Pedido aberto : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError()));
retornar(0);
}
if ((vendido==falso) && Bid <=BaixoRange)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+(StopLoss*Point),Bid-(TakeProfit*Point),0,0,Red);
vendido=verdadeiro;
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("Pedido de venda aberto : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError()));
retornar(0);
}
retorno(0);
}
retorno(0);
}
}