Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1120

 

Eu tenho um EA, quero que ele possa escolher em quais dias negociar e quais não.

Mon - falso

Terça-feira - verdade

Cp- ...

Por favor, informe como implementá-la?

 
RichLux:

Eu tenho um EA, quero que ele possa escolher em quais dias negociar e quais não.

Mon - falso

Terça-feira - verdade

Cp- ...

Por favor, informe como implementá-la?

DayOfWeek

Retorna o número seqüencial do dia da semana do último horário conhecido do servidor.

intDayOfWeek();

Valor retornado

Número seqüencial do dia da semana (domingo-0,1,2,3,4,5,6).

Nota

Durante os testes, o último tempo conhecido do servidor é simulado.

Exemplo:

// não funciona nos fins de semana.
if(DayOfWeek()==0 ||DayOfWeek()==6)return(0);

 

DayOfWeek

Retorna o número seqüencialdo dia da semana do último horário conhecido do servidor.

Obrigado, isso faz mais sentido.

Não consigo descobrir como implementar agora a seleção de dias de negociação em parâmetros externos. Em detalhes, quero que um e o mesmo EA negocie em um par comercial na segunda-feira, e não negocie em outro par comercial.

Como escrevê-lo em "exterior" e depois implementá-lo em condições (se...mais)?

 
RichLux:

DayOfWeek

Retorna o número seqüencialdo dia da semana do último horário conhecido do servidor.

Obrigado, isso faz mais sentido.

Não consigo descobrir como implementar agora a seleção de dias de negociação em parâmetros externos. Em detalhes, quero que um e o mesmo Expert Advisor opere em um par comercial na segunda-feira, e não opere em outro.

Como escrevê-lo em "externo" e depois implementá-lo em condições (se...mais)?

aqui está um exemplo simples que permite o comércio somente na segunda-feira. Este código funciona em MT4 e MT5

//+------------------------------------------------------------------+
//|                                                       test08.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link      "https://www.mql5.com/ru/users/sergey1294"
#property version   "1.00"
#property strict

input ENUM_DAY_OF_WEEK dayofweek=MONDAY;

MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   TimeToStruct(TimeCurrent(),time);
   if(time.day_of_week!=dayofweek)return; // выйдем из OnTick() если текущий день не равен установленному дню
  
   // тут остальной код советника.
  }
//+------------------------------------------------------------------+


...

 
RichLux:

DayOfWeek

Retorna o número seqüencialdo dia da semana do último horário conhecido do servidor.

Obrigado, isso faz mais sentido.

Não consigo descobrir como implementar agora a seleção de dias de negociação em parâmetros externos. Em detalhes, quero que um e o mesmo Expert Advisor opere em um par comercial na segunda-feira, e não opere em outro.

Como escrevê-lo em "externo" e depois implementá-lo em condições (se...mais)?

Usar enumeração ENUM_DAY_OF_WEEK

Logo no final da página.

Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
 

void OnTick()
{
//---
TimeToStruct(TimeCurrent(),time);
if(time.day_of_week!=dayofweek)return; // quit OnTick() if current day is not equal to set day

// aqui o resto do código EA
}
//+------------------------------------------------------------------+


...

Obrigado!

Realmente, agora temos que lidar com o ponto, que cada par tem um número diferente de dias "úteis".

Provavelmente, é necessário inserir 5 variáveis:dia da semana1,dia da semana2,...?

Mas novamente, o que devo inserir nas 2 variáveis restantes se houver 3 dias de negociação?

 
Boa tarde, você poderia me dizer como resolver este problema? Há um código com entrada na M15, mas o sinal de H1 é levado em conta. Enquanto há um sinal na H1, na M15 o indicador dá vários sinais. A questão é limitá-la a um (ou seja, o primeiro sinal).
Arquivos anexados:
nsm.txt  1 kb
 
RichLux:


...

Obrigado!

Agora, porém, temos que lidar com o fato de que cada par tem um número diferente de dias "úteis".

Provavelmente, é necessário inserir 5 variáveis:dia da semana1,dia da semana2,...?

Mas novamente, o que devo inserir nas 2 variáveis restantes se houver 3 dias de negociação!

Podemos tentar fazer desta forma:

#property strict

//-
enum YesNo {
_no       = 0, // NoTrade
_yes      = 1  // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;  // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//--

 // здесь какой-то код, например закрытие

  ... 

 // проверка запрета на торговлю
  if(TradeAllow()) return;
   // далее код
  
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct(TimeCurrent(),time);
  switch(time.day_of_week) {
   case 1 : return(!day1);
   case 2 : return(!day2);
   case 3 : return(!day3);
   case 4 : return(!day4);
   case 5 : return(!day5);
   defaultreturntrue);
  }
}

Há uma proibição de comercialização às quintas-feiras

Você pode torná-lo um pouco mais bonito, tudo depende da tarefa:

#property version   "1.00"
#property strict

//-
enum YesNo {
_no       = 0, // No trade
_yes      = 1  // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;  // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//--
  if(TradeAllow()) {
    ClosePos(); // Только закрытие
  } else {
    ClosePos(); // Закрытие
    OpenPos();  // Открытие
    Function()  // Ещё что-то
  }
  
//-
}
//+------------------------------------------------------------------+
//| Функция закрытия                                                 |
//+------------------------------------------------------------------+
void ClosePos()
{
  // код
}

//+------------------------------------------------------------------+
//| Функция открытия                                                 |
//+------------------------------------------------------------------+
void OpenPos()
{
  // код
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct(TimeCurrent(),time);
  switch(time.day_of_week) {
   case 1 : return(!day1);
   case 2 : return(!day2);
   case 3 : return(!day3);
   case 4 : return(!day4);
   case 5 : return(!day5);
   default: return( true);
  }
}
//+------------------------------------------------------------------+
 
Olá a todos! Eu uso o indicador delta do clusterdelta.com em minha negociação MT4. Preciso de um freelancer que possa fazer com que quando um certo limite nos valores indicadores é atingido, um alerta ou algum outro som seja emitido. Você pode me dizer quem devo contatar sobre este assunto?
 
Lexx1:
Olá a todos! Eu uso o indicador delta do clusterdelta.com em minha negociação MT4. Preciso de um freelancer que possa fazer com que quando um certo limite nos valores indicadores é atingido, um alerta ou algum outro som seja emitido. Você pode me dizer quem devo contatar sobre isso?
Há uma barra azul na parte superior com muitas letras diferentes. Procure a palavra "Freelance" e clique sobre ela. Acho que você sabe o que fazer a partir daí.