Escreverei um conselheiro sem custos - página 169

 

Antonio Simon Del Vecchio Я только что приготовила его и не успела протестировать.

Tudo funciona! Obrigado! Mas, não tenho experiência em trabalhar com tais ferramentas, então de repente, após verificar, percebi que cometi um erro e não especifiquei um pedido no ToR: por favor, corrija para que o EA feche somente o par de moedas (uma ou mais ordens) em cujo gráfico ele é lançado.
 
torrr #:
Tudo funciona. Obrigado. Mas, não tenho experiência em trabalhar com este tipo de ferramenta, então, de repente, depois de verificá-la, percebi que cometi um erro e não especifiquei um pedido no ToR: por favor, corrija para que o EA feche apenas o par de moedas (uma ou mais ordens) em cujo gráfico ele é lançado.
Basta adicionar uma mágica. Cumprimentos.
//+------------------------------------------------------------------+
//|                                                     Practica.mq4 |
//|                        Copyright 2022, Antonio Simón Del Vecchio |
//|                    https://www.mql5.com/es/users/simondelvecchio |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Antonio Simón Del Vecchio"
#property link      "https://www.mql5.com/es/users/simondelvecchio"
#property version   "1.00"
#property strict


input int Magic = 12345;
input int Periodo = 50;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal() > 0 && CruceMediaPrecio())
     {
      Cerrar();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Cerrar()
  {
   double Precio = 0;
   for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS))
        {
         if(OrderType() == OP_BUY && OrderMagicNumber()== Magic)
            Precio = Bid;
         else
            Precio = Ask;
         if(!OrderClose(OrderTicket(), OrderLots(), Precio, 3, clrNONE))
            Print("Error al cerrar la órden: ", GetLastError());
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CruceMediaPrecio()
  {
   double Media = iMA(Symbol(), PERIOD_CURRENT, Periodo, 0, MODE_SMA, PRICE_CLOSE, 0);
   double Max = iHigh(Symbol(), PERIOD_CURRENT, 0);
   double Min = iLow(Symbol(), PERIOD_CURRENT, 0);
   if(Max > Media && Min < Media)
     {
      return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
 
Antonio Simon Del Vecchio #:

Mais uma vez, obrigado! Só que eu não entendo onde obter o magik, já que todas as negociações foram abertas manualmente (talvez comentários na abertura de ordens sirvam?)

P.S. Encontrou um roteiro que abre pedidos manualmente com a capacidade de definir um magik. Acho que vai funcionar dessa forma.
 
torrr #:

Mais uma vez, obrigado. Eu simplesmente não entendo de onde obter o magik, já que todas as negociações foram abertas manualmente (talvez os comentários ao abrir as ordens ajudem?).

P.S. Eu encontrei um roteiro que abre pedidos manualmente com a capacidade de definir um magik. Acho que vai funcionar assim.

Pensei que as posições foram abertas por outro EA. Se você as abrir manualmente, esta funcionará para você.

//+------------------------------------------------------------------+
//|                                                     Practica.mq4 |
//|                        Copyright 2022, Antonio Simón Del Vecchio |
//|                    https://www.mql5.com/es/users/simondelvecchio |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Antonio Simón Del Vecchio"
#property link      "https://www.mql5.com/es/users/simondelvecchio"
#property version   "1.00"
#property strict

input int Periodo = 50;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal() > 0 && CruceMediaPrecio())
     {
      Cerrar();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Cerrar()
  {
   double Precio = 0;
   for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS))
        {
         if(OrderType() == OP_BUY && OrderSymbol() == Symbol())
            Precio = Bid;
         else
            Precio = Ask;
         if(!OrderClose(OrderTicket(), OrderLots(), Precio, 3, clrNONE))
            Print("Error al cerrar la órden: ", GetLastError());
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CruceMediaPrecio()
  {
   double Media = iMA(Symbol(), PERIOD_CURRENT, Periodo, 0, MODE_SMA, PRICE_CLOSE, 0);
   double Max = iHigh(Symbol(), PERIOD_CURRENT, 0);
   double Min = iLow(Symbol(), PERIOD_CURRENT, 0);
   if(Max > Media && Min < Media)
     {
      return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
 
Antonio Simon Del Vecchio #:

Pensei que as posições foram abertas por outro EA. Se você estiver abrindo-as manualmente, esta opção funcionará para você.

Muito obrigado! Estarei testando.
 

Saudações a todos, uma pergunta, tenho um código EA completo, porém gostaria de saber se você pode adicionar um painel informativo onde você pode relatar aspectos do momento como, saldo, patrimônio, # de negócios abertos, lucro do dia, semana, mês, etc...

Obrigado.

 
Olá, por favor escreva um EA para MT5,

Que é vendido no crossover da banda superior do Bollinger se o preço atual for o mais alto atual da barra atual.
Parâmetros das Bandas de Bollinger, tempo, tamanho do lote, takeprofit e StopLoss como entradas manuais.

Obrigado alot :)
 
Dac coyr banda superior do Bollinger se o preço atual for o mais alto da barra atual.
Parâmetros das Bandas de Bollinger, tempo, tamanho do lote, takeprofit e StopLoss como entradas manuais.

Obrigado alot :)

Tire uma foto do terminal MetaTrader 5 e coloque os indicadores no gráfico, por favor. E mais uma solicitação: o fundo do gráfico deve ser branco.

 
Vladimir Karputov #:

Tire uma foto do terminal MetaTrader 5 e coloque os indicadores no gráfico, por favor. E mais uma solicitação: o fundo do gráfico deve ser branco.


Este é apenas um indicador, mas a ordem de venda será executada quando o preço cruzar a faixa superior do Bollinger, se o preço atual corresponder ao preço mais alto da barra atual / nova.

Isto significa que uma ordem de venda será aberta para cada novo preço mais alto acima das barras superiores do Bollinger Bands.
Arquivos anexados:
 
oi . sou novo no comércio . quero saber como usar o robô no comércio ?
Razão: