//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество секунд после открытия последней позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime SecondsAfterOpenLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество секунд после закрытия последней позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+datetime SecondsAfterCloseLastPos(string sy="", int op=-1, int mn=-1) {
datetime t;
int i, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
}
}
}
}
return(TimeCurrent()-t);
}
int pic1=GetExtremumZZBar("",PERIOD_M1,0,12,5,3);
int pic5=GetExtremumZZBar("",PERIOD_M5,0,12,5,3);
int pic15=GetExtremumZZBar("",PERIOD_M15,0,12,5,3);
int pic30=GetExtremumZZBar("",PERIOD_M30,0,12,5,3);
int pic60=GetExtremumZZBar("",PERIOD_H1,0,12,5,3);
int pic240=GetExtremumZZBar("",PERIOD_H4,0,12,5,3);
キムの機能
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.10.2006 |//| Описание : Возвращает номер бара экстремума ЗигЗага по его номеру. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента (NULL или "" - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//| ne - номер экстремума ( 0 - последний) |//| dp - ExtDepth |//| dv - ExtDeviation |//| bs - ExtBackstep |//+----------------------------------------------------------------------------+int GetExtremumZZBar(string sy="", int tf=0, int ne=0, int dp=12, int dv=5, int bc=3) {
if (sy=="" || sy=="0") sy=Symbol();
double zz;
int i, k=iBars(sy, tf), ke=0;
for (i=0; i<k; i++) {
zz=iCustom(sy, tf, "ZigZag", dp, dv, bc, 0, i);
if (zz!=0) {
ke++;
if (ke>ne) return(i);
}
}
Print("GetExtremumZZBar(): Экстремум ЗигЗага номер ",ne," не найден");
return(-1);
}
int pic1=GetExtremumZZBar(NULL,PERIOD_M1,0,12,5,3);
int pic5=GetExtremumZZBar(NULL,PERIOD_M5,0,12,5,3);
int pic15=GetExtremumZZBar(NULL,PERIOD_M15,0,12,5,3);
int pic30=GetExtremumZZBar(NULL,PERIOD_M30,0,12,5,3);
int pic60=GetExtremumZZBar(NULL,PERIOD_H1,0,12,5,3);
int pic240=GetExtremumZZBar(NULL,PERIOD_H4,0,12,5,3);
//---int GetExtremumZZBar(string sy, int tf, int ne, int dp, int dv, int bc) {
...
}
注文を1時間に1回、時間帯の最初だけにオープンする方法
または
https://docs.mql4.com/ru/dateandtime/minute
勿論、他の注文が開かれないように、注文が開かれているかどうかをチェックするためだけです。
まず、EA内の他のタイムフレームのインジケータの値がある部分を示してください。そこにエラーが潜んでいるのではないかという疑惑です。
キムの機能
うーん、こうやって試してみてください。