[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 917
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
Como criar uma função e chamá-la?
artemida70, montei minha primeira EA usando o tutorial de S. Kovalev. Verificou-se que sua função de critério funcionava com perdas. Escrevi minha função critério. Verificou a existência de erros e depois compilou o Expert Advisor. Como resultado do trabalho, eu consegui:
- sobre a função critério: O - erros, 1 aviso;
- para compilação do Expert Advisor: О - erros, О - avisos.
Mas o trabalho no Testador de Estratégia não foi, colocou à prova ALERTA em funções int init, int start, int deinit. Vejo nas respostas que o controle é passado do Terminal para a função int init e o controle não é passado para a função int start - nenhuma resposta ALERTA. Quando a EA é descarregada, há uma resposta da função int deinit.
Por favor, seu conselho sobre esta situação. Precisa muito do conselho de um profissional experiente.
OBRIGADO
Leia um tutorial... :)
Aqui você tem uma estrutura estranha. Você está fazendo o loop padrão de pedidos do terminal. De zero a OrdensTotal() -1. E então você verifica a completa ausência de pedidos no terminal no laço. Por que você não verifica o bilhete para pedidos? Ou um magik? E sua bandeira =0, por alguma razão. E por que não falso? No entanto, você é o chefe. Sua lógica, você deve entendê-la... :)
Obrigado pela dica)))) Exatamente neste ponto:. De zero a OrdensTotal() -1... Essa é a razão pela qual o testador não continuou fazendo pedidos))))
Eu uso este esquema porque o aprendi com as aulas de outra pessoa. Se você pudesse descrever um método mais racional, eu ficaria muito grato))))
Estou ferrado, não saio do mql4 há um mês, acho que estou ficando louco ou não?
não tenho idéia do que estou tentando fazer com ele.
Eu estou colocando lá fora, ao menos me dê uma dica, o que está errado? Gurus, ajude os manequins!
TakeProfit duplo externo=50.0;
double Lots=1 externo;
extern int total;
int start()
{
double Price_1, Price_2, min, max;
RefreshRates();
Price_1=Bid;
Price_2=Ask;
min=iLow(NULL,0,2);
max=iHigh(NULL,0,2);
total=OrdersTotal();
if(total<1)
{
if(Price_1>max)
OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-StopLoss*Point,Ask+TakeProfit*Point, "My order#",16384,0,Green);
if(Price_2<min)
OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+StopLoss*Point,Bid-TakeProfit*Point, "My order#",16384,0,Green);
}
}
return(0);
artemida70, montei minha primeira EA usando o tutorial de S. Kovalev. Verificou-se que sua função de critério funcionava com perdas. Escrevi minha função critério. Verificou a existência de erros e depois compilou o Expert Advisor. Como resultado do trabalho, eu consegui:
- sobre a função critério: O - erros, 1 aviso;
- para compilação do Expert Advisor: О - erros, О - avisos.
Mas o trabalho no Testador de Estratégia não foi, colocou à prova ALERTA em funções int init, int start, int deinit. Vejo nas respostas que o controle é passado do Terminal para a função int init e o controle não é passado para a função int start - nenhuma resposta ALERTA. Quando a EA é descarregada, há uma resposta da função int deinit.
Por favor, seu conselho sobre esta situação. Precisa muito do conselho de um profissional experiente.
OBRIGADO
Não entendo o que isso significa - a função de critérios do IC funciona com perdas. Afinal, qualquer função, se rastrear o critério de abertura, pode funcionar corretamente ou incorretamente e, portanto, pode ter erros. Mas a estratégia em si - pode ser perdedora ou lucrativa... A função critério apenas rastreia os critérios estabelecidos pela estratégia e envia sinais para a função critério comercial.
Obrigado pela dica)))) Exatamente neste ponto:. De zero a OrdensTotal() -1... Essa é a razão pela qual o testador não continuou fazendo pedidos))))
Eu uso este esquema porque o aprendi com as aulas de outra pessoa. Se você pudesse descrever um método mais racional, eu ficaria muito grato)))).
Há muitas maneiras. Tudo depende do que você quer encontrar.
Em qualquer caso, você pode começar a fazer looping através dos pedidos
para (int i =0; i<OrdersTotal(); i++)
então verifique exatamente o que você quer encontrar no laço.
se (OrderSelect(i, SELECT_BY_POS) // Se a ordem for selecionada (aqui, omiti o parâmetro da função MODE_TRADES, pois ele é selecionado por padrão)
e então - você já verifica os parâmetros da ordem que você precisa, por exemplo, magik
se (OrderMagicNumber()==Magic) // se a ordem tem o número mágico dado, então... então esta é a ordem que precisamos...
Bem... Ou seu tipo...
se (OrderType()==OP_BUY || OrderType()==OP_SELL) // se o tipo de pedido for Compra ou Venda...
etc...
Embora possamos fazer isso de forma completamente diferente. Tudo depende de seus hábitos, e das exigências do código.
Olá a todos! Tenho o seguinte código em meu Conselheiro Especialista (ver abaixo). Pelo que entendi, o sinal para abrir uma posição é tirado dos indicadores de dois índices. Como podemos fazer os pedidos abertos com base em apenas um indicador, por exemplo, CCI? Muito obrigado.
Ajuda, a EA não fecha todos os pedidos quando chega a um lucro