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
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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?
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)?
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() если текущий день не равен установленному дню
// тут остальной код советника.
}
//+------------------------------------------------------------------+
...
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.
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?
...
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);
default: return( true);
}
}
Há uma proibição de comercialização às quintas-feiras
Você pode torná-lo um pouco mais bonito, tudo depende da tarefa:
#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 isso?