} //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ voidOnTick() { //--- TimeToStruct(TimeCurrent(),time); if(time.day_of_week!=dayofweek)return; // выйдем из OnTick() если текущий день не равен установленному дню
// тут остальной код советника. } //+------------------------------------------------------------------+
MqlDateTime time; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ intOnInit() { //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ voidOnTick() { //-- if(TradeAllow()) { ClosePos(); // Только закрытие } else { ClosePos(); // Закрытие OpenPos(); // Открытие Function() // Ещё что-то }
//- } //+------------------------------------------------------------------+ //| Функция закрытия | //+------------------------------------------------------------------+ void ClosePos() { // код }
//+------------------------------------------------------------------+ //| Функция открытия | //+------------------------------------------------------------------+ void OpenPos() { // код }
我有一个EA,我希望它能够选择在哪天交易,哪天不交易。
星期一 - 假的
星期二 - 真
Cp- ...
请告知如何实施?
我有一个EA,我希望它能够选择在哪天交易,哪天不交易。
星期一 - 假的
星期二 - 真
Cp- ...
请告知如何实施?
一周时间
返回最后已知的服务器时间的星期 的顺序号。
intDayOfWeek()。
返回的值
一星期的顺序号(星期日-0,1,2,3,4,5,6)。
注意事项
在测试过程中,模拟了最后已知的服务器时间。
例子。
// 周末不工作。
如果(DayOfWeek()==0 ||DayOfWeek()==6)返回(0)。
一周时间
返回最后已知的服务器时间的星期 的序列号。
谢谢,这就更有意义了。
我现在想不出来如何在外部参数中实现选择交易日。具体来说,我想让同一个专家顾问在周一对一个交易对进行交易,而不对另一个交易对进行交易。
如何在 "extern "中写,然后在条件中实现它(if...else)?
一周时间
返回最后已知的服务器时间的星期 的序列号。
谢谢,这就更有意义了。
我现在想不出来如何在外部参数中实现选择交易日。具体来说,我想让同一个专家顾问在周一对一个交易对进行交易,而不对另一个交易对进行交易。
如何在 "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() если текущий день не равен установленному дню
// тут остальной код советника.
}
//+------------------------------------------------------------------+
...
一周时间
返回最后已知的服务器时间的星期 的序列号。
谢谢,这就更有意义了。
我现在想不出来如何在外部参数中实现选择交易日。具体来说,我想让同一个专家顾问在周一对一个交易对进行交易,而不对另一个交易对进行交易。
如何在 "extern "中写,然后在条件中实现(if...else)?
使用枚举ENUM_DAY_OF_WEEK
在该页的最后。
void OnTick()
{
//---
TimeToStruct(TimeCurrent(),time);
if(time.day_of_week!=dayofweek)return;//退出OnTick(),如果当前日期不等于设定日期
//这里是EA的其余代码。
}
//+------------------------------------------------------------------+
...
谢谢你!
真的,现在我们必须处理的一点是,每一对都有不同的 "工作 "日数。
可能需要输入5个变量。dayofweek1,dayofweek2,...?
但同样,如果有3个交易日,我应该在剩余的2个变量中输入什么?
...
谢谢你!
但现在,我们必须处理这样一个事实,即每一对 "工作 "日的数量不同。
可能需要输入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);
default: return( true);
}
}
禁止在星期四进行交易
你可以让它变得更漂亮一点,这完全取决于任务。
#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指标。我需要一个自由职业者,能够使它在达到指标值的某个阈值时,发出警报或其他声音。你能告诉我该与谁联系吗?