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
Ajuda novamente
Olá a todos,
Estou trabalhando em um EA há o que parece ser uma eternidade. Obrigado a todas as pessoas desta linha por toda a ajuda que me deram.
Agora estou novamente perplexo e procurando por mais ajuda. Como todos sabemos, a maioria dos sinais cruzados de MA's a Stoch's não funcionam muito bem, porque muitas vezes eles se cruzam no final da mudança.
O que estou tentando fazer é usar o Stochastic RSI quando ele cruza a linha 50, mas somente na barra seguinte uma vez que o preço tenha passado ou o alto ou o baixo por uma certa quantidade de pips (MinPips). Meu principal problema é que quando eu rastreio a cruz, se o preço só alcança os MinPips nas barras subseqüentes após a cruz, mas a cruz permanece na mesma direção.
Estou tentando anexar uma imagem para mostrar o que estou tentando fazer.
O ponto nº 1 está em uma cruz de venda, mas como o preço nunca passa do mínimo daquela barra, nenhuma troca é feita (na verdade, eu gostaria que qualquer troca anterior permanecesse ativa).
O ponto nº 2 está em uma cruz de compra, mas o preço só passa o máximo da barra na 4ª barra após a cruz e deve ser tomado naquele momento. Qualquer ordem de venda anterior deve ser fechada neste momento.
Espero que isto funcione, pois é a primeira vez que eu anexarei uma foto. Peço desculpas antecipadamente se fiz asneira.
Putz
Mais informações
O seguinte é minha programação onde CurrDir é a direção atual e que PrevDir é a direção anterior, então se não for igual, então houve uma cruz.
O problema é que se ela não cruzar na barra atual, então CurrDir e PrevDir tornam-se iguais e nunca passa por aquela barra para ver se ela atinge o ValHigh ou ValLow.
Qualquer ajuda será apreciada.
Putz
if(CurrDir != PrevDir)
{
if(CurrDir == 1)
{
ValHigh = iHigh(Symbol(),Timeframe2,1) + MinPips*Point;
if(Bid >= ValHigh)
{
return(1); //up
}
return (2);
}
if(CurrDir == 2)
{
ValLow = iLow(Symbol(),Timeframe2,1) - MinPips*Point;
if(Ask <= ValLow)
{
return(2);//down
}
return (1);
}
Descoberto...eu acho que
Acho que finalmente descobri meu problema. Já são quase 2h30 da manhã e estou exausto, por isso vou verificar amanhã...
Putz
Existe uma maneira de alterar o formato de dados do arquivo de exportação MT4?
Estou procurando o ASCII.csv, mas preciso que os dados estejam no seguinte formato;
1) colunas separadas (só precisam: tempo, alto, baixo e fechado)
2) somente para as últimas 1000 barras
3) inverte o pedido (último em cima)
4) salva-o em uma pasta que já tenho em minha área de trabalho (talvez uma função de navegação para selecionar qual?)
Agradecemos antecipadamente a qualquer pessoa que possa me ajudar.
Acréscimo e eliminação de indicadores
Um código pode ser escrito em um EA para adicionar ou excluir um indicador da plataforma comercial???
Dave ...
Eu tenho um grande problema na gestão de pedidos....
Minha simples entrada EA em X:59......mas eu tenho várias entradas na mesma cruz. Minha pergunta: É possível verificar a entrada de tempo dos pedidos e comparar com os novos pedidos?
Quero uma entrada em x:59 apenas com 1 pedido para cross....
Alguém pode me ajudar?
Eu tenho um grande problema na gestão de pedidos....
Minha simples entrada EA em X:59......mas eu tenho várias entradas na mesma cruz. Minha pergunta: É possível verificar a entrada de tempo dos pedidos e comparar com o novo pedido?
Quero uma entrada em x:59 somente com 1 pedido para cross....
Alguém pode me ajudar?Esta é a minha solução, espero que isto possa ajudar alguém......
//+------------------------------------------------------------------+
//| Início do sinal (Entrada) |
//+------------------------------------------------------------------+
if (Buy1_1 58 && check_buy==0) Order = SIGNAL_BUY;
if (Vender1_1 > Vender1_2 && Minuto()>58 && check_sell==0) Ordem = SIGNAL_SELL;
se (Minuto()==00) {check_buy=0;}
if (Minuto()==00) {check_sell=0;}
//+------------------------------------------------------------------+
//| Fim do sinal |
//+------------------------------------------------------------------+
//Compra
if (Order === SIGNAL_BUY && ((EachTickMode && !TickCheck) ||| (!EachTickMode && (Bars != BarCount)))) {
//if(!IsTrade) {
//Cheque margem livre
if (AccountFreeMargin() < (1000 * Lotes)) {
Imprimir("Nós não temos dinheiro. Margem Livre = ", AccountFreeMargin());
devolução(0);
}
se (StopLossMode) StopLossLevel = Perguntar - StopLoss * Ponto; caso contrário, StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfitLevel * Ponto; caso contrário TakeProfitLevel = 0,0;
check_buy=1;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy %W(#" + Magic_Number + ")", Magic_Number, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Imprimir("Pedido de compra aberto : ", Preço Aberto());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Imprimir("Erro na abertura do pedido de compra : ", GetLastError());
}
}
se (EachTickMode) TickCheck = Verdadeiro;
se (!EachTickMode) BarCount = Bars;
return(0);
// }
}
//vender
if (Order === SIGNAL_SELL && ((EachTickMode && !TickCheck) ||| (!EachTickMode && (Bars != BarCount)))) {
//if(!IsTrade) {
//Cheque margem livre
if (AccountFreeMargin() < (1000 * Lotes)) {
Imprimir("Nós não temos dinheiro. Margem Livre = ", AccountFreeMargin());
devolução(0);
}
se (StopLossMode) StopLossLevel = Bid + StopLoss * Ponto; caso contrário, StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfitLevel * Ponto; caso contrário TakeProfitLevel = 0,0;
check_sell=1;
Ticket = OrderSend(Symbol(), OP_SELLL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell %W(#" + Magic_Number + ")", Magic_Number, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Imprimir("ordem de venda aberta : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Imprimir("Erro na abertura do pedido de VENDA : ", GetLastError());
}
}
se (EachTickMode) TickCheck = Verdadeiro;
se (!EachTickMode) BarCount = Bars;
return(0);
//}
}
se (!EachTickMode) BarCount = Bars;
retorno(0);
}
//+------------------------------------------------------------------+
Para Metastock
Não sei dizer o que faz com que o check_buy seja Verdadeiro.
Para limitar a um pedido aberto, você pode usar, antes da entrada:
se (OrderTotal()==0)
Grande Seja
Questões de Conhecimento de Codificação
QUANDO você quer usar uma variável STATIC - que problemas ela pode resolver?
QUANDO você quer colocar algo na seção INIT() - que problemas ela pode resolver?
Big Be
não tem certeza se isto foi perguntado antes, mas existe uma maneira de traçar uma linha no momento atual +1 hora antes e depois a um certo preço em um EA?