Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 126

 
MosheDayan:
¿Puede decirme más sobre la señal, es de MT o de un tercero?
Puedes, está escrito aquí . Simplemente transmite su comercio en lugar de los niveles y todo el mundo puede participar si le gusta el sistema.
 

Gracias por la ayuda, lo he arreglado.

 
¿Es posible detener/iniciar el autotrading en todo el terminal o en un Asesor Experto individual, por ejemplo, según un determinado indicador?
 
Andrey Sokolov:
¿Se puede desactivar/parar el autotrading en todo el terminal o en un EA individual, por ejemplo, según los datos de algún indicador?

Puede utilizar las variables globales del terminal, prescribir el mismo GP para todos ellos y controlar el valor, por ejemplo, cuando es 0 - todos los EAs no operan.

Además, puede utilizar WinAPI para encontrar el botón de comercio automático en el panel de la terminal y pulsarlo.

 
 
Hola, ¿hay algún código para mostrar un texto en un gráfico (pegatina, recordatorio) que no se mueva con el gráfico sino que quede fijo? Gracias.
 
Vladimir.Tyumen:
Hola, ¿hay algún código para mostrar un texto en un gráfico (pegatina, recordatorio) que no se mueva con el gráfico sino que quede fijo? Gracias.
OBJ_LABEL
 
Hola a todos, acaba de empezar a aprender el lenguaje, recientemente se encontró con un video tutorial sobre la creación de una rejilla EA, escribió, compilado, 0 errores, 0 advertencias. Pero no puedo ver mi robot operaciones abiertas, quiero pedir que no es demasiado perezoso)))

Gracias de antemano.


extern double Lots      = 0.1;
extern double Profit    = 50;
extern int Step         = 30;
extern int Magic        = 6677;
extern int Slippage     = 5;

extern int maPeriod     =100;
extern int maShift      =1;

double ma, FindLastBuyPrice, price;
//------------------------------------------------------------------
//___ПРОВЕРКА_ЗНАКОВ_ПОСЛЕ_ТОЧКИ___
//------------------------------------------------------------------
int OnInit()
{
   if (Digits == 3 || Digits == 5)
   {
      Step     *= 10;
      Slippage *= 10;
   }
   return(INIT_SUCCEEDED);
}
//---------------------------------------------
void OnDeinit(const int reason)
{

}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
void OnTick()
{
  
   ma = iMA(Symbol(),0,maPeriod, maShift, MODE_SMA, PRICE_CLOSE, 0);
  
   if (CountBuy() && CountSell() == 0 && Bid < ma)//
   {
      if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
         Print ("Неудалось открыть ордер на Продажу");
   }
   if (CountBuy() && CountSell() == 0 && Ask < ma)
   {
      if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
         Print ("Неудалось открыть ордер на Покупку");
      
   }
   if (CountBuy() >=1)
   {
      price = FindLastBuyPrice();
      if ((price - Ask) >= Step*Point)
      {
         if (OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "", Magic, 0, Blue) < 1)
         Print ("Неудалось открыть ордер на Покупку");
      }
   }
  
   if (CountSell() >=1)
   {
      price = FindLastBuyPrice();
      if ((Bid - price) >= Step*Point)
      {
         if (OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "", Magic, 0, Red) < 1)
         Print ("Неудалось открыть ордер на Ппродажу");
      }
   }
  
  
   double op = CalculateProfit();
   if (op >= Profit)
   {
      CloseAll();
   }      
  
}
//------------------------------------------------------------------
void CloseAll()
{
   for (int i = OrdersTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY)
            {
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage))
               {
                  Print ("Не удалось закрыть ордер на ПОКУПКУ");
               }
            }
            if (OrderType() == OP_SELL)
            {
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage))
               {
                  Print ("Не удалось закрыть ордер на ПРОДАЖУ");
               }
            }
         }
      }
   }
}
//------------------------------------------------------------------
double CalculateProfit()  // Считаем профит по всем ордерам
{
   double oProfit = 0;
   for (int i=OrdersTotal() -1; i>=0; i--)
   {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
         {
            if (OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
               oProfit += OrderProfit();
            }
         }
      }
   }
  
   return(oProfit);

}
//------------------------------------------------------------------
double FindLastBuyPrice()
{

   int oldTicket, ticket   = 0;
   double oldopenPrice     = 0;
  
   for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
         {
            oldTicket = OrderTicket();
            if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice();
            }
         }
        
      }
   }
   return(oldopenPrice);
}
double FindLastSellPrice()
{

   int oldTicket, ticket   = 0;
   double oldopenPrice     = 0;
  
   for (int cnt = OrdersTotal()-1; cnt>=0; cnt--)
   {
      if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() ==Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
         {
            oldTicket = OrderTicket();
            if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice();
            }
         }
        
      }
   }
   return(oldopenPrice);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountBuy()
{
   int count = 0;
   for (int trade = OrdersTotal()-1; trade >=0; trade--)
   {
      if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
            count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+
int CountSell()
{
   int count = 0;
   for (int trade = OrdersTotal()-1; trade >=0; trade--)
   {
      if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) == true)
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
            count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+


 

Hola a todos. He aquí una pregunta:

Tengo un indicador con biblioteca y necesito usarlo para escribir un Asesor Experto.

Qué esquema de acciones es necesario para evitar la multiplicación de archivos, y debe haber dos o uno como resultado. Quiero usar los dos.


Voznesen:
Hola a todos, acaba de empezar a aprender el lenguaje, recientemente se encontró con un video tutorial sobre cómo crear una rejilla EA, escribió, compilado, 0 errores, 0 advertencias. Pero el robot no abre operaciones. pongo el código a ver si a alguien le da pereza))
¿Cómo debe abrir las operaciones? ¿En qué condiciones?
 
trader781:

Hola a todos. He aquí una pregunta:

Tengo un indicador con biblioteca y necesito escribir un Asesor Experto para él.

Qué esquema de acciones es necesario para evitar la multiplicación de archivos, y debe haber dos o uno como resultado. Lo ideal es que se combinen.


Trabajar con indicadores personalizados conectados como recursos

Para el trabajo de los programas mql4 puede necesitar uno o más indicadores personalizados, todos ellos pueden ser incluidos en el código del programa mql4 ejecutable. La inclusión de indicadores como recursos permite simplificar la distribución del programa.

El único problema es que no compilará en otro ordenador si no hay archivos de inclusión en él.
Ресурсы - Программы MQL4 - Справочник MQL4
Ресурсы - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Ресурсы - Программы MQL4 - Справочник MQL4