Baixa e Alta - página 2 12345 Novo comentário jurcekmpt 2009.08.25 10:16 #11 Até onde eu vou? O que é o número do Bars-1? raphael 2009.08.25 11:51 #12 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} jurcekmpt 2009.08.25 13:36 #13 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... JC 2009.08.25 13:56 #14 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? jurcekmpt 2009.08.25 14:06 #15 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. FOREX - Tendências, previsões Aprendizado de máquina no Discussão do artigo "Indicador raphael 2009.08.25 14:11 #16 você está usando um gráfico m15? jurcekmpt 2009.08.25 14:13 #17 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); } } Low and High Qualquer pergunta de novato, [Arquivo!] Qualquer pergunta de raphael 2009.08.25 14:15 #18 Então o que acontece quando você administra a ea jurcekmpt 2009.08.25 14:20 #19 Abre posições de compra e venda, mas não nos níveis certos. raphael 2009.08.25 14:28 #20 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); } } 12345 Novo comentário
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);
}
}