[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 475
![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
Obrigado!!!
Aqui está o link inicial - depois o resto, IMHO.
Por favor, explique
A parte analítica utiliza um período de tempo rigidamente definido. Ou prazos
A parte analítica utiliza um período de tempo rigidamente definido. Ou prazos
poderia, por favor, deixar o "peixe" para análise, se você tiver algum comentário, eu apreciaria
Tenho uma ideia, talvez esteja um pouco excitado... Não, não é bem assim, parece que quando uma ordem de compra é detectada, todas as ordens pendentes serão removidas... Todos os pedidos de compra. stsBUY devem ser feitos antes do início. Eu não verifiquei erros.
Precisaríamos de um código mais correto. Sem erros
E a lógica é ruim.
Se você tiver algum comentário a fazer, por favor, deixe o "peixe" para o parse, eu agradeceria.
Você deve pelo menos ler um pouco o livro didático, para não ter que perguntar quantos "duas vezes dois" são.
Você deve pelo menos ler um pouco o livro didático, para não ter que perguntar o quanto é "duas vezes duas".
Eu não discuto que é um ponto importante, mas se eu o entendesse, eu não estaria perguntando, certo?
ou seja, no algoritmo, onde os prazos nos indicadores são especificados, nós o explicamos claramente.
Certo?
então me explique o seguinte ....
Expert Advisor - travessia de estocásticos, entrada em uma profissão.
Aqui está o algoritmo
int start()
{
RefreshRates(); // Atualização de dados
Symb=Symbol();
x1=x;
y1=y;
x=iStochastic( NULL,0,5,3,3,MODE_SMA,1,0,0); // linha principal do valor estocástico na barra 0
y=iStochastic( NULL,0,5,3,3,3,MODE_SMA,1,1,0); // linha principal do valor estocástico na barra 0
Alerta ("stochastic main",x);
Alerta ("stochastic signal",y);
//
intersecção dosinal e linha principal
if (y < x && y1> x1) // Check up pass {
f=1 // flag up
}
//
if (y > x && y1< x1) // verificar passagem para baixo
{
f=2; // flag down
} //
verificar passagem para baixo na intersecção da linha principal com a linha 20 if (f===1 && x1<20&& x1<20 && x>= 20)
{ if (Ticket > 0) // se houver um pedido, removê-lo
OrderClose(Ticket,Lts,Bid,10);
SL=Bid - StopLoss*Point; // Cálculo de SL aberto
TP=Bid + TakeProfit*Point; // Cálculo de TP aberto.
Alerta("Tentativa de abrir Comprar. À espera de resposta...");
OrderSelect(Ticket, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(Ticket, SELECT_BY_TICKET))
{
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,3,SL,TP);//open Buy
}
se (Bilhete > 0) // Funcionou :)
{
Alerta ("Opened Buy order ",Ticket);
retorno;
f=0; // bandeira de reset
}
}
// check crossing of the main line from top to bottom of the line 80
if (f===2 &&& x1>80 && x<= 80)
{ if (Ticket > 0)
OrderClose(Ticket,Lts,Ask, 10); // se houver um pedido, remover
SL=Ask + StopLoss*Point; // Cálculo do SL
TP=Ask - TakeProfit*Point; // Cálculo de TP aberto.
Alerta("Tentativa de abrir Sell. Waiting for reply...");
OrderSelect(Ticket, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(Ticket, SELECT_BY_TICKET))
{
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,3,SL,TP);//Open Buy
}
if (Ticket > 0) // Funcionou :)
{
Alerta ("Pedido de venda aberto ",Ticket);
retorno;
f=0; // bandeira zerada
}
}
return(0);
}
se corrermos, o Consultor Especialista abrirá e fechará as ordens dentro de meia hora, ou seja, abrir às 9.04, fechar às 9.05, abrir novamente às 9.06, fechar às 9.07 e assim por diante, na mesma direção.
por que isso acontece?
Cumprimentos.
E se duas ordens BUYLIMIT e BUYSTOP estiverem abertas, eu preciso apagar BUYSTOP no acionamento BUYLIMIT e vice-versa. Você pode me dizer como esta condição pode ser cumprida?
Na verdade, a lógica deveria ser algo parecido com isto:
1. Se houver duas ordens pendentes e nenhuma posição, então lembre-se dos tiquetaques dessas ordens pendentes nas variáveis.
2. Se houver uma SellStop pendente e não houver nenhuma BuyStop pendente, se houver uma posição BuyStop, compare o bilhete da última posição BuyStop aberta com o bilhete BuyStop lembrado.
Se forem iguais, significa que ByStop foi convertido para o mercado Comprar --> se houver um SellStop pendente - apagá-lo. 3.
Se houver uma BuyStop pendente e nenhuma SellStop pendente, se houver uma posição SellStop, compare o bilhete da última posição Sell aberta com o bilhete SellStop lembrado.
Se eles forem iguais, então SellStop é convertido em SellStop de mercado --> se houver uma BuyStop pendente - exclua-a.
Mais ou menos o mesmo... Esta é apenas uma lógica aproximada. Ele precisa de funções.