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
macerina
Apenas a primeira parte (o resto é apenas uma variação disso) :
se ema(7) < ema(21) e ema(7) anterior < ema(21) anterior então se ema(de rsi(14),9) < rsi(14) sinaliza para compra
você também pode dizer desta forma:
se macd(7,12) < e anterior macd(7,12) < 0 então se ema(de rsi(14),9) < rsi(14) sinal para compraObrigado pela resposta mladen é possível codificar um indicador mt4 com este critério
Obrigado de antemão
Obrigado pela resposta mladen é possível codificar um indicador mt4 com este critério Obrigado antecipadamente
macerina
Esse é um simples sistema macd + rsi. Acredito que isso já existe. Se não existe, é fácil fazer um indicador e então será feito
Favor postar a parte do código onde você está tentando alcançar o que você descreveu aqui: https: //www.mql5.com/en/forum/174385/page162 (não os 3 take profits colocando em pedidos e 3 trailing stops administrando, mas a parte que está tentando fazer exatamente o que você descreveu) e então, talvez alguém possa ajudá-lo com sua codificação.
//contar ordens de compra em aberto.
iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol());
//contar ordens de venda em aberto.
iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol());
if (iOpenOrders_Buy===3 || iOpenOrders_Sell===3)
{
if(TrailingStop>0 && TrailingStart > 0) TrailOrder (TrailingStart, TrailingStop);}
if (iOpenOrders_Buy===1 || iOpenOrders_Sell===1)
{
if(TrailingStop_2>0 && TrailingStart_2 > 0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);
}
//////////////////////////////////////////////////////////////////////////////////////////////
Esta foi a parte em que a EA está procurando o número de pedidos abertos para o par anexo.
Se encontrar 3 ordens, seguirá a função habitual de Trailing Stop. E se encontrar apenas uma ordem em execução, então seguirá a função de Segunda Trailing Stop.
Isto está executando 'OK' para um único par, mas quando eu anexar este EA a múltiplos gráficos (Pares), ele não funcionará, uma vez que ele vai buscar todas as ordens abertas através da função 'OrdersTotal()'.
//End - Fechar posições abertas------------------------------------------
duplo OpenPrice=Ask;
int count=3;
se (contagem===3)
{
BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order Order",MagicNumber, 0,Blue);
se (BuyOrder_1>0) //Cheque se o pedido foi aberto ou não
{
sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " Pedido de compra 1 enviado com sucesso. Ticket=" + BuyOrder_1;
contagem = contagem - 1;
//////////////////////////////////////////////////////////////
Assim, a contagem está diminuindo e as ordens de abertura estão sendo abertas até a contagem=1. Portanto, 3 ordens estão abrindo como contagem=3 inicialmente.
//contar ordens de compra abertas.
iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol());
//contar ordens de venda abertas.
iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol());
if (iOpenOrders_Buy===3 || iOpenOrders_Sell===3)
{
if(TrailingStop>0 && TrailingStart > 0) TrailOrder (TrailingStart, TrailingStop);}
if (iOpenOrders_Buy===1 || iOpenOrders_Sell===1)
{
if(TrailingStop_2>0 && TrailingStart_2 > 0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);
}
//////////////////////////////////////////////////////////////////////////////////////////////
Esta foi a parte em que a EA está procurando o número de pedidos abertos para o par anexo.
Se encontrar 3 ordens, seguirá a função habitual de Trailing Stop. E se encontrar apenas uma ordem em execução, então seguirá a função de Segunda Trailing Stop.
Isto está executando 'OK' para um único par, mas quando eu anexar este EA a múltiplos gráficos (Pares), ele não funcionará, uma vez que ele vai buscar todas as ordens abertas através da função 'OrdersTotal()'.
//End - Fechar posições abertas de venda------------------------------------------
duplo OpenPrice=Ask;
int count=3;
se (contagem===3)
{
BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order Order",MagicNumber, 0,Blue);
se (BuyOrder_1>0) //Cheque se o pedido foi aberto ou não
{
sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " Pedido de compra 1 enviado com sucesso. Ticket=" + BuyOrder_1;
contagem = contagem - 1;
//////////////////////////////////////////////////////////////
Assim, a contagem está diminuindo e as ordens de abertura estão sendo abertas até a contagem=1. Portanto, 3 ordens estão abrindo como contagem=3 inicialmente.A pergunta era a seguinte: como saber se houve 3 pedidos abertos uma vez, e depois só resta um? O fato de restar apenas uma ordem aberta não mostra nada. Você tem que verificar a lista de ordens fechadas para as 2 outras ordens que faziam parte de um trigêmeo, e como os corretores podem mudar seu campo de comentários, não há como saber que algumas ordens faziam parte de um mesmo trigêmeo (nenhum campo na lista de ordens que pode ser usado para marcar que algumas ordens pertencem a um mesmo grupo de ordens).
Você poderia tentar usar arquivos para salvar números de bilhetes que pertenciam a trigêmeos, mas, no caso de tentar usar o mesmo EA de outro terminal, você pode obter erros terríveis. A mesma coisa pode acontecer quando você reinstala o metatrader. Usar variáveis globais é sempre pior (são quase a mesma coisa que usar arquivos - mas pior), portanto não há maneira significativa de rastrear corretamente os trigêmeos de pedidos.
Então como você descobre que 1 ordem aberta é a última ordem aberta dos 3 ou é a primeira ordem aberta de um novo trigêmeo de ordens?
A pergunta era a seguinte: como saber se houve 3 pedidos abertos uma vez, e depois só resta um? O fato de que só sobrou uma ordem aberta não mostra nada. Você tem que verificar a lista de ordens fechadas para as 2 outras ordens que fizeram parte de um trigêmeo, e como os corretores podem mudar seu campo de comentários, não há como saber que algumas ordens fizeram parte de um mesmo trigêmeo (nenhum campo na lista de ordens que pode ser usado para marcar que algumas ordens pertencem a um mesmo grupo de ordens).
Mladen,
Ckeck you pm, precisa de codificador
Sonhe com um grande ícone para PM !
Então como você descobre que 1 ordem aberta é a última ordem aberta dos 3 ou é a primeira ordem aberta de um novo trigêmeo de ordens?
Há uma condição:
se (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)
Por isso, estou assegurando que se houver alguma ordem de compra existente, ela não abrirá nenhuma nova ordem de compra, apesar de as condições terem sido cumpridas. Ele abrirá uma nova ordem somente quando não houver nenhuma ordem de compra/venda existente.
E como está abrindo 3 ordens de cada vez do mesmo tipo (compra/venda) e se duas delas já estiverem fechadas, então a esquerda é certamente do mesmo tipo.
Eu o testei. Portanto, não há confusão sobre isso.
Há uma condição:
if (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)
Por isso, estou assegurando que se houver alguma ordem de compra existente, ela não abrirá nenhuma nova ordem de compra, apesar de as condições terem sido cumpridas. Ele abrirá uma nova ordem somente quando não houver nenhuma ordem de compra/venda existente.
E como está abrindo 3 ordens de cada vez do mesmo tipo (compra/venda) e se duas delas já estiverem fechadas, então a esquerda é certamente do mesmo tipo.
Eu o testei. Portanto, não há confusão sobre isso.Há muitas suposições em tudo isto. A primeira é que quando se tenta abrir 3 ordens, ela realmente abrirá 3 ordens. E se ela abrir apenas 1? . E assim por diante ...
Desculpe. Mas parece que estamos falando de coisas diferentes o tempo todo. Espero que alguém possa ajudá-lo, já que eu não posso
Feliz negociação
Há muitas suposições em tudo isso. A primeira é que quando você tenta abrir 3 ordens, ele realmente abrirá 3 ordens. E se ele abrir apenas 1? . E assim por diante ...
Desculpe. Mas parece que estamos falando de coisas diferentes o tempo todo. Espero que alguém possa ajudá-lo, já que eu não posso
Feliz negociaçãoSe você não puder, tudo bem.
Há algum tempo venho testando-o com corretores diferentes e até agora não "falhou" em abrir 3 pedidos.
De qualquer forma, acho que você poderia dizer pelo menos qual ponto/lógica faz uma EA permitir distinguir entre diferentes pares enquanto eu estou chamando 'OrdensTotal()'?
Qualquer pequeno exemplo de EA será Fine.
Obrigado pela resposta mladen é possível codificar um indicador mt4 com este critérioAdmanutenção
macerina
Verifique o indicador neste post : https://www.mql5.com/en/forum/173574/page432. É quase exatamente o mesmo que o descrito pelo código gráfico aspen
Obrigado Mladen pelo código ... Isto tem a dupla comparação macd e 50 crossover, como você explicou na lógica anterior.
Obrigado de antemão