Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 211

 

Olá Especialistas!

Você pode me aconselhar, é possível colocar o MT4 no servidor VPS com sistema operacional Linux? As EAs funcionarão normalmente em tais MT?

 

Olá.

Fazendo EAs para controle e gerenciamento de risco. Qual é a melhor maneira de proibir todos os EAs em funcionamento para o comércio? Por exemplo, através de um símbolo específico, proibimos todos os EAs em funcionamento de entrar em novos comércios. Infelizmente, não há código fonte de todos os EAs em execução e não há maneira de usar variáveis globais.

 

odyn:

com um sistema operacional Linux?

Mikhail trabalha no Linux. Envie-lhe um e-mail para https://www.mql5.com/ru/users/nikelodeon

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

Boa noite!

Por favor, ajude com a seguinte pergunta:

Você precisa saber quantas velas fecharam acima damédia móvel, e quantas abaixo.

Por exemplo: se 20 castiçais fecham acima da média móvel com um período de 20, então faça algo mais, se estiver abaixo.

Obrigado!

Moving Average of Oscillator (OsMA)
Moving Average of Oscillator (OsMA)
  • www.mql5.com
On Balance Volume (OBV) Индикатор Балансового Объема (On Balance Volume, OBV) связывает объем и изменение цены, сопровождавшее данный объем. Momentum Индикатор движущей силы рынка (Momentum) измеряет величину изменения цены финансового инструмента за определенный...
 
leonerd:
Qual é a maneira correta de proibir todos os EAs em funcionamento de comercialização?

Se você não puder alterar o código EA, então desabilite a auto-comercialização. Aqui está o código, não o meu:

#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:

Você precisa descobrir quantas velas fecharam acima damédia móvel e quantas abaixo.

1. Decida por si mesmo a partir de que ponto você quer contar.

2. Crie uma matriz com dois elementos.

3. Adicione uma a cada vela ao elemento certo.

4. Decida quando você quer parar de contar.


Uma média móvel é uma cauda de preço atrasada. O lucro não vive lá.

 
Aleksei Stepanenko:

1. Decida por si mesmo a partir de quando você quer contar.

2. Crie uma matriz com dois elementos.

3. Adicione uma a cada vela ao elemento certo.

4. Decida quando você quer parar de contar.


Uma média móvel é uma cauda de preço atrasada. O lucro não vive lá.

Aleksei, obrigado!

Você poderia me dizer onde adicionar arrays e um 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
      }
      
     } 
     




 

É ainda melhor fazer uma estrutura

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

não se esqueça de zerar os elementos antes de começar a usá-los

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

e depois aumentar a contagem onde for necessário

count.up++;

//или
count.dn++;

então compare

if(count.up>10)
   {

   }
Agora você fez um loop em torno das 10 velas anteriores em cada vela nova. Isto não é racional. Você deve sempre se livrar de ciclos desnecessários, lembrando-se dos resultados dos cálculos dos valores anteriores. No seu caso, quando uma vela nova chegar, basta aumentar a contagem quando a condição for cumprida, e se a condição não for cumprida, então subtraia-a. E verifique se não há excesso. Seu ciclo para 10 elementos não é necessário, apenas o principal.
 
Aleksei Stepanenko:

Se você não puder alterar o código EA, então desabilite a auto-comercialização. Aqui está o código, não o meu:

Obrigado. Este código irá desativar a auto-comercialização para uma EA específica anexada à tabela especificada? Ou auto-comercialização geral no terminal?

 

Todo o comércio, este botão: