Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 211

 

¡Hola Expertos!

¿Me pueden aconsejar, es posible poner MT4 en un servidor VPS con sistema operativo Linux? ¿Funcionarán los EAs normalmente en dicha MT?

 

Hola.

Realización de EAs para el control y la gestión de riesgos. ¿Cuál es la mejor manera de prohibir el comercio de todos los EAs en ejecución? Por ejemplo, por un símbolo específico, prohibimos a todos los EAs en ejecución entrar en nuevas operaciones. Lamentablemente, no existe el código fuente de todos los EAs en funcionamiento y no hay forma de utilizar variables globales.

 

odyn:

con un sistema operativo Linux?

Mikhail trabaja en Linux. Envíele un correo electrónico a https://www.mql5.com/ru/users/nikelodeon

Mihail Marchukajtes
Mihail Marchukajtes
  • www.mql5.com
Добавил тему Целевая функция в тестере Коллеги решил выделить вопрос в отдельную тему. При оптимизации параметров советника существует ряд стандартных функций, а так же "Максимум пользовательского критерия" что позволяет производить подбор относительно собственной целевой, пусть даже Если Вы являетесь владельцем инвестиционного фонда и...
 

¡Buenas noches!

Por favor, ayúdeme con la siguiente pregunta:

Necesitas saber cuántas velas cerraron por encima dela media móvil y cuántas por debajo.

Por ejemplo: Si 20 velas cerraron por encima de la media móvil con un periodo de 20, entonces haz algo más, si es por debajo.

Gracias.

Moving Average of Oscillator (OsMA)
Moving Average of Oscillator (OsMA)
  • www.mql5.com
On Balance Volume (OBV) Индикатор Балансового Объема (On Balance Volume, OBV) связывает объем и изменение цены, сопровождавшее данный объем. Momentum Индикатор движущей силы рынка (Momentum) измеряет величину изменения цены финансового инструмента за определенный...
 
leonerd:
¿Cuál es la mejor manera de prohibir el comercio de todos los EAs en funcionamiento?

Si no puede cambiar el código del EA, entonces desactive el comercio automático. Aquí está el código, no el mío:

#include <WinUser32.mqh>

#import "user32.dll"
// Считывает описатель оpгана упpавления, содеpжащийся в указанном блоке диалога. Возвpащаемое значение: идентификатоp оpгана упpавления; 0 - если указанный оpган упpавления не существует.
int      GetDlgItem(int hDlg,        // Блок диалога, содеpжащий оpган упpавления.
                     int nIDDlgItem); // Идентификатоp оpгана упpавления.
// Возвращает идентификатор hierarchyid, представляющий n-го предка данного элемента.
int      GetAncestor(int hWnd,      // Идентификатоp окна.
                      int gaFlags);  // Уровень окна от текущего окна (1, 2, 3...).
int      SendMessageA(int  hWnd,      // Окно, пpинимающее сообщение или $FFFF для посылки всем всплывающим окнам в системе.
                       int  Msg,       // Тип сообщения.
                       int  wParam,    // Дополнительная инфоpмация о сообщении.
                       int& lParam[]); // Дополнительная инфоpмация о сообщении.
                  
#import

void start() {
   if (IsExpertEnabled()) ExpertEnabled (false);
      else ExpertEnabled (true);
}

// Функция включения/отключения эксперта.
void ExpertEnabled (bool Switch) // TRUE - включить эксперт, FALSE - отключить эксперт.
{
  int HandlWindow = WindowHandle (Symbol(), Period()); // Системный дескриптор окна.
  int HandlMT4;        // Системный дескриптор окна МТ4.
  int HandlToolbar;    // Системный дескриптор окна инструментов.

  int    ArIntTemp[1]; // Временный массив.
  //----
  if ((Switch && !IsExpertEnabled()) || (!Switch && IsExpertEnabled()) )  {
     HandlMT4 = GetAncestor (HandlWindow, 2); 
     HandlToolbar = GetDlgItem (HandlMT4, 0x63);
     ArIntTemp[0] = HandlToolbar;
     SendMessageA (HandlMT4, WM_COMMAND, 33020, ArIntTemp);
  }
}
 
Xopb:

Hay que averiguar cuántas velas cerraron por encima dela media móvil y cuántas por debajo.

1. Decide tú mismo desde qué punto quieres contar.

2. Crea un array con dos elementos.

3. Añade un uno en cada vela al elemento de la derecha.

4. Decide cuándo quieres dejar de contar.


Una media móvil es una cola retrasada del precio. El beneficio no vive allí.

 
Aleksei Stepanenko:

1. Decide por ti mismo a partir de cuándo quieres contar.

2. Crea un array con dos elementos.

3. Añade un uno en cada vela al elemento de la derecha.

4. Decide cuándo quieres dejar de contar.


Una media móvil es una cola retrasada del precio. El beneficio no vive allí.

Aleksei, ¡gracias!

¿Podría decirme dónde añadir arrays y uno para que funcione?

for(int i=1;i<=10;i++)            //допустим надо проверить 10 свечей выше или ниже МА в момент когда обратились к этому оператору
     {    
     double hig10 = iMA (NULL,PERIOD_H1,10, 0, MODE_SMA, PRICE_CLOSE, i);
      if (hig10>iClose(Symbol(),PERIOD_H1,i))
      {
    // тут выполняем - если все 10 свечей выше МА     
      }
      else
      {
     //тут выполняем - если если хотябы одна из свечей закрылась нижн MA
      }
      
     } 
     




 

Es aún mejor hacer una estructura

struct Count
   {
   int up;
   int dn;
   } count;

no olvides poner a cero los elementos antes de empezar a utilizarlos

count.up=0;
count.dn=0;

y luego aumentar el recuento cuando sea necesario

count.up++;

//или
count.dn++;

y luego comparar

if(count.up>10)
   {

   }
Ahora has hecho un bucle alrededor de las 10 velas anteriores en cada nueva vela. Esto no es racional. Siempre hay que deshacerse de los ciclos innecesarios recordando los resultados de los cálculos de los valores anteriores. En tu caso, cuando llegue una nueva vela, sólo tienes que aumentar el recuento cuando se cumpla la condición, y si no se cumple la condición, entonces restarlo. Y comprobar si no hay exceso. Su ciclo para 10 elementos no es necesario, sólo el principal.
 
Aleksei Stepanenko:

Si no puede cambiar el código del EA, entonces desactive el comercio automático. Este es el código, no el mío:

Gracias. ¿Este código deshabilitará el comercio automático para un EA específico unido al gráfico especificado? ¿O el autotrading general en el terminal?

 

Todo el comercio, este botón: