任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1120

 

我有一个EA,我希望它能够选择在哪天交易,哪天不交易。

星期一 - 假的

星期二 - 真

Cp- ...

请告知如何实施?

 
RichLux:

我有一个EA,我希望它能够选择在哪天交易,哪天不交易。

星期一 - 假的

星期二 - 真

Cp- ...

请告知如何实施?

一周时间

返回最后已知的服务器时间的星期 的顺序号。

intDayOfWeek()。

返回的值

星期的顺序号(星期日-0,1,2,3,4,5,6)

注意事项

在测试过程中,模拟了最后已知的服务器时间。

例子。

// 周末不工作
如果(DayOfWeek()==0 ||DayOfWeek()==6)返回(0)。

 

一周时间

返回最后已知的服务器时间的星期 的序列号。

谢谢,这就更有意义了。

我现在想不出来如何在外部参数中实现选择交易日。具体来说,我想让同一个专家顾问在周一对一个交易对进行交易,而不对另一个交易对进行交易。

如何在 "extern "中写,然后在条件中实现它(if...else)?

 
RichLux:

一周时间

返回最后已知的服务器时间的星期 的序列号。

谢谢,这就更有意义了。

我现在想不出来如何在外部参数中实现选择交易日。具体来说,我想让同一个专家顾问在周一对一个交易对进行交易,而不对另一个交易对进行交易。

如何在 "extern "中写,然后在条件中实现它(if...else)?

这里有一个简单的例子,只允许在周一进行交易。这段代码可以在MT4和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:

一周时间

返回最后已知的服务器时间的星期 的序列号。

谢谢,这就更有意义了。

我现在想不出来如何在外部参数中实现选择交易日。具体来说,我想让同一个专家顾问在周一对一个交易对进行交易,而不对另一个交易对进行交易。

如何在 "extern "中写,然后在条件中实现(if...else)?

使用枚举ENUM_DAY_OF_WEEK

在该页的最后。

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

void OnTick()
{
//---
TimeToStruct(TimeCurrent(),time);
if(time.day_of_week!=dayofweek)return;//退出OnTick(),如果当前日期不等于设定日期

//这里是EA的其余代码
}
//+------------------------------------------------------------------+


...

谢谢你!

真的,现在我们必须处理的一点是,每一对都有不同的 "工作 "日数。

可能需要输入5个变量。dayofweek1,dayofweek2,...?

但同样,如果有3个交易日,我应该在剩余的2个变量中输入什么?

 
下午好,请您告诉我如何解决这个问题?在M15上有一个带入口的代码,但来自H1的信号被考虑到了。虽然在H1上有一个信号,但在M15上,指标给出了几个信号。问题是要把它限制在一个(即第一个信号)。
附加的文件:
nsm.txt  1 kb
 
RichLux:


...

谢谢你!

但现在,我们必须处理这样一个事实,即每一对 "工作 "日的数量不同。

可能需要输入5个变量。dayofweek1,dayofweek2,...?

但同样,如果有3个交易日,我应该在剩余的2个变量中输入什么!?

我们可以尝试这样做。

#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);
  }
}

禁止在星期四进行交易

你可以让它变得更漂亮一点,这完全取决于任务。

#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);
  }
}
//+------------------------------------------------------------------+
 
大家好!我在MT4交易中使用clusterdelta.com的delta指标。我需要一个自由职业者,能够使它在达到指标值的某个阈值时,发出警报或其他声音。你能告诉我关于这个问题应该与谁联系吗?
 
Lexx1:
大家好!我在MT4交易中使用clusterdelta.com的delta指标。我需要一个自由职业者,能够使它在达到指标值的某个阈值时,发出警报或其他声音。你能告诉我该与谁联系吗?
顶部有一个蓝色的条状物,上面有很多不同的字母。寻找 "自由职业 "一词并点击它。我想你知道从那里该怎么做。