Trabalho concluído
Tempo de execução 5 dias
Comentário do cliente
Muito prestativo e atencioso, e o trabalho dele pra mim foi muito bem elaborado atendendo ao que foi proposto.
Obrigado João!
Termos de Referência
Olá! Gostaria de saber se alguém se habilita e quanto cobra para acrescentar um TrailingStop neste EA que posto logo abaixo e que já está pronto, só não possui o Trailing! //+------------------------------------------------------------------+ //| Exemplo médias móveis.mq4 | //| XTB | //| | //+------------------------------------------------------------------+ #define IdentificadorEA 101 #property copyright "XTB" #property link "" //---- Input parameters - parâmetros do Expert Advisor que podem ser alterados quando se executa o dito. extern double Lotes=0.1; extern int MMlenta=50; extern int MMrapida=20; //------------------------------------------------------------------------------------------------- datetime LastTradeBarTime; //------------------------------------------------------------------------------------------------- // init, função executada quando o EA se inicia ou reinicia int init() { // Necessário para controlar se estamos numa nova barra LastTradeBarTime = Time[1]; return(0); } //------------------------------------------------------------------------------------------------- // start, função executada a cada tick recebido pelo EA int start() { // Variáveis temporárias, renovadas a cada chamada do EA double vMMrapida0; // MM rápida da última barra double vMMrapida1; // MM rápida da penúltima barra double vMMlenta0; // MM lenta da última barra double vMMlenta1; // MM lenta da penúltima barra int resposta; // Variável que obterá a resposta do terminal quando envia uma ordem // Verifica se estamos no início de uma barra e apenas processa as instruções se isso for verdade if (LastTradeBarTime == Time[0]) return(0); // Não é o primeiro tick de uma nova barra, por isso sai else { LastTradeBarTime = Time[0]; // continua // Valores das médias móveis na barra que acabou de terminar, e na imediatamente anterior vMMrapida0=iMA(Symbol(),0,MMrapida,0,MODE_SMA,PRICE_CLOSE,1); // Obtém o valor da MM rápida da barra que terminou vMMrapida1=iMA(Symbol(),0,MMrapida,0,MODE_SMA,PRICE_CLOSE,2); // Obtém o valor para a MM rápida da barra anterior vMMlenta0=iMA(Symbol(),0,MMlenta,0,MODE_SMA,PRICE_CLOSE,1); // Obtém o valor da MM lenta da barra que terminou vMMlenta1=iMA(Symbol(),0,MMlenta,0,MODE_SMA,PRICE_CLOSE,2); // Obtém o valor para a MM lenta da barra anterior // Verifica se existiu um cruzamento da MM rápida acima da MM lenta if (vMMrapida1<vMMlenta1 && vMMrapida0>vMMlenta0) { // Se já existem trades abertos, tem de os fechar if (OrdersTotal() > 0) FecharTodosTrades(); // Abre um trade longo resposta = OrderSend(Symbol(), OP_BUY, Lotes, NormalizeDouble(Ask,Digits), 3, 0, 0, "mm exemplo buy", IdentificadorEA, 0, Blue); } // Verifica se existiu um cruzamento da MM rápida abaixo da MM lenta if (vMMrapida1>vMMlenta1 && vMMrapida0<vMMlenta0) { // Se já existem trades abertos, tem de os fechar if (OrdersTotal() > 0) FecharTodosTrades(); // Abre um trade curto resposta = OrderSend(Symbol(), OP_SELL, Lotes, NormalizeDouble(Bid,Digits), 3, 0, 0, "mm exemplo sell", IdentificadorEA, 0, Red); } } return(0); } //------------------------------------------------------------------------------------------------- // deinit, função executada quando o EA termina int deinit() { // Se existem trades abertos, tem de os fechar if (OrdersTotal() > 0) FecharTodosTrades(); return(0); } //------------------------------------------------------------------------------------------------- // Função que fecha todos os trades existentes int FecharTodosTrades() { for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break; // A função vai fechar todas as ordens que sejam deste EA e sobre o símbolo corrente if(OrderMagicNumber() == IdentificadorEA && OrderSymbol() == Symbol()) { if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3,White); if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,White); } } return(0); } // FIM //-------------------------------------------------------------------------------------------------
Respondido
1
Classificação
Projetos
478
40%
Arbitragem
7
43%
/
29%
Expirado
16
3%
Livre
2
Classificação
Projetos
35
71%
Arbitragem
2
0%
/
0%
Expirado
11
31%
Trabalhando
Publicou: 1 código
3
Classificação
Projetos
139
24%
Arbitragem
34
32%
/
44%
Expirado
59
42%
Trabalhando
4
Classificação
Projetos
5
40%
Arbitragem
0
Expirado
3
60%
Livre
5
Classificação
Projetos
1813
61%
Arbitragem
14
64%
/
7%
Expirado
84
5%
Livre
Informações sobre o projeto
Orçamento
20 - 30 USD