Baixa e Alta - página 2

 

Até onde eu vou? O que é o número do Bars-1?

 
if(Hora() == 17 && gethighlows == verdadeiro)
{
gethighlows = falso;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 M15 barras entre 15.00-17.00
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 M15 bars entre 15.00-17.00
}
 
fxcourt:
if(Hora() == 17 && gethighlows == verdadeiro)
{
gethighlows = falso;
HighValue=High[iHighest(NULL,15,MODE_HIGH,8,1)]; // 8 M15 barras entre 15.00-17.00
LowValue=Low[iLowest(NULL,15,MODE_LOW,8,1)]; // 8 M15 bars entre 15.00-17.00
}

Não funciona! Eu realmente não sei o que fazer...

 
01005379:

[...]

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?

 
jjc:

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.

 
você está usando um gráfico m15?
 

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);
}
}

 
Então o que acontece quando você administra a ea
 
Abre posições de compra e venda, mas não nos níveis certos.
 
01005379:

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);
}
}