Quero um EA simples apenas baseado em medias meveis

MQL5 Experts

Trabalho concluído

Tempo de execução 2 horas
Comentário do cliente
bom trabalho, entrgou o combinado dentro do prazo.
Comentário do desenvolvedor
Grande cliente. Obrigado pelo pedido!

Termos de Referência

ola, boa tarde .

quero um simples EA baseado apenas em duas medias moveis apenas pra operar eurusd no h1, uma media de 9 e uma media de 36

a estrategia e a seguinta quando o preço romper pra cima as duas medias compra ai digamos que o preço ande pra cima e as medias tambem ai sera fechado o trade apenas quando o preço romper as medias pra baixo , rompeu pra baixo a sera fechado a compra e sera feito uma venda ai  o preço andando para baixo sera feito apenas o fechamneto quando o preço romper pra cima novamnete fechando uma venda e abrindo uma compra sempre assim fechando um trande e abrindo outro apenas nas confirmaçoes do candle , rompeu ai sera fechado a ordem aberta seja de compra ou venda apenas na confirmaçao seja dando lucro ou prejuizo por que as vezs tera trade que dara prejuizo mais quando der lucro os lucros compensao .e no caso de trade anterior der prejuizo sera feito a proxima entrada com o dobro do lote ou seja primeiro lote 0.01 se deu prejuizo o proximo 0.02

//+------------------------------------------------------------------+

//|                                                      SimpleEA.mq4 |

//|                        Copyright 2023, MetaQuotes Software Corp. |

//|                                              https://www.mql5.com |

//+------------------------------------------------------------------+


#property strict

extern int FastMA = 9;

extern int SlowMA = 36;

extern double LotSize = 0.01;

double PreviousLotSize = 0.01;

int ticket;

enum OrderType {NONE, BUY, SELL};

OrderType lastOrderType = NONE;

double FastMAValue[2];

double SlowMAValue[2];


//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  {

//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

//---

  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

//---   

   FastMAValue[1] = iMA(Symbol(), 0, FastMA, 0, MODE_SMA, PRICE_CLOSE, 1);

   FastMAValue[0] = iMA(Symbol(), 0, FastMA, 0, MODE_SMA, PRICE_CLOSE, 0);

   

   SlowMAValue[1] = iMA(Symbol(), 0, SlowMA, 0, MODE_SMA, PRICE_CLOSE, 1);

   SlowMAValue[0] = iMA(Symbol(), 0, SlowMA, 0, MODE_SMA, PRICE_CLOSE, 0);

   

   if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) {

      if(OrderCloseTime() != 0) {

         if(lastOrderType == BUY && OrderProfit() < 0)

            LotSize = PreviousLotSize * 2;

         else if(lastOrderType == SELL && OrderProfit() < 0)

            LotSize = PreviousLotSize * 2;

         else

            LotSize = 0.01;

      }

   }


   if(FastMAValue[0] > SlowMAValue[0] && FastMAValue[1] < SlowMAValue[1]) {

      if(lastOrderType == SELL && OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) {

         OrderClose(ticket, OrderLots(), Bid, 3, clrRed);

      }

      ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, 0, 0, "Buy order", 12345, 0, clrGreen);

      lastOrderType = BUY;

      PreviousLotSize = LotSize;

   } else if(FastMAValue[0] < SlowMAValue[0] && FastMAValue[1] > SlowMAValue[1]) {

      if(lastOrderType == BUY && OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) {

         OrderClose(ticket, OrderLots(), Ask, 3, clrGreen);

      }

      ticket = OrderSend(Symbol(), OP_SELL, LotSize, Bid, 3, 0, 0, "Sell order", 12345, 0, clrRed);

      lastOrderType = SELL;

      PreviousLotSize = LotSize;

   }

  }

//+------------------------------------------------------------------+


Respondido

1
Desenvolvedor 1
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
2
Desenvolvedor 2
Classificação
(35)
Projetos
60
22%
Arbitragem
3
33% / 33%
Expirado
15
25%
Trabalhando
3
Desenvolvedor 3
Classificação
(9)
Projetos
12
8%
Arbitragem
2
50% / 50%
Expirado
0
Livre
4
Desenvolvedor 4
Classificação
(567)
Projetos
656
32%
Arbitragem
41
41% / 46%
Expirado
11
2%
Ocupado
5
Desenvolvedor 5
Classificação
(11)
Projetos
17
59%
Arbitragem
2
0% / 100%
Expirado
2
12%
Livre

Informações sobre o projeto

Orçamento
30 USD
Prazo
de 2 dias