Здравствуйте, в мт4 андроид для планшета нужно скачивать терминал для каждого сервера отдельно ? заходить как на пк через файл-логин нельзя ? еще скажите кто знает автоклик можно установить на планшет с андроид для торговли в мт4 ?
хочу чтобы неболее одного ордера было открыто за час!
а ордера все равно открываюся! в чем может быть дело?
Во-первых: OrderCloseTime() - время закрытия ордера. Если ордер не закрыт, оно равно нулю. Вам нужно смотреть время открытия.
Во-вторых: Hour() - это час запуска эксперта и этот час не меняется в процессе выполнения программы. Вам нужно сравнивать со временем прихода последней котировки - TimeCurrent()
Ф-ция возвращает количество секунд после открытия последней позиции текущего символа:
//+----------------------------------------------------------------------------+datetime SecondsAfterOpenLastPos(int op, int mn) {
datetime t=0;
int i, k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()!=op) continue;
if (OrderMagicNumber()!=mn) continue;
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+
Т.е., чтобы проверить количество секунд после открытия последней позиции Buy с магиком Magic, нужно:
if (SecondsAfterOpenLastPos(OP_BUY, Magic)>3600) {
// Можно открывать следующий
}
Здравствуйте, при очередном открытии терминала, после выходных, на центовом счете, пропали все графики, включая рабочие графики с советниками. Вместо графика - серое поле, хотя внизу сохранились окрытые позиции, баланс и средства. Пришлось заново скачать терминал и устанавливать рабочие графики с советниками повторно, после чего все исправно функционирует. Скажите пжалуйста, с чем это связано и как устранять подобный дефект в будущем наиболее безболезненным способом?
Во-первых: OrderCloseTime() - время закрытия ордера. Если ордер не закрыт, оно равно нулю. Вам нужно смотреть время открытия.
Во-вторых: Hour() - это час запуска эксперта и этот час не меняется в процессе выполнения программы. Вам нужно сравнивать со временем прихода последней котировки - TimeCurrent()
Ф-ция возвращает количество секунд после открытия последней позиции текущего символа:
//+----------------------------------------------------------------------------+datetime SecondsAfterOpenLastPos(int op, int mn) {
datetime t=0;
int i, k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()!=op) continue;
if (OrderMagicNumber()!=mn) continue;
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+
Т.е., чтобы проверить количество секунд после открытия последней позиции Buy с магиком Magic, нужно:
if (SecondsAfterOpenLastPos(OP_BUY, Magic)>3600) {
// Можно открывать следующий
}
спаибо за функцию! у вас нет еще одной?! чтобы за один бар открывался только один ордер?!
lowech: спаибо за функцию! у вас нет еще одной?! чтобы за один бар открывался только один ордер?!
//+----------------------------------------------------------------------------+datetime BarsAfterOpenLastPos(int op, int mn) {
datetime t=0;
int i, k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()!=op) continue;
if (OrderMagicNumber()!=mn) continue;
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
return((TimeCurrent()-t)/60/Period());
}
//+----------------------------------------------------------------------------+
//+----------------------------------------------------------------------------+datetime BarsAfterOpenLastPos(int op, int mn) {
datetime t=0;
int i, k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS)) {
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()!=op) continue;
if (OrderMagicNumber()!=mn) continue;
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
return((TimeCurrent()-t)/60/Period());
}
//+----------------------------------------------------------------------------+
Может быть так:
Другие мысли не приходят...
Ты читаешь между строк. В общем, посмотри что ты вообще в цикл поместил. Зону действия цикла..
добрый день! у меня невыходит вот это условие:
OrderCloseTime()!=hour()
хочу чтобы неболее одного ордера было открыто за час!
а ордера все равно открываюся! в чем может быть дело?
добрый день! у меня невыходит вот это условие:
OrderCloseTime()!=hour()
хочу чтобы неболее одного ордера было открыто за час!
а ордера все равно открываюся! в чем может быть дело?
Во-первых: OrderCloseTime() - время закрытия ордера. Если ордер не закрыт, оно равно нулю. Вам нужно смотреть время открытия.
Во-вторых: Hour() - это час запуска эксперта и этот час не меняется в процессе выполнения программы. Вам нужно сравнивать со временем прихода последней котировки - TimeCurrent()
Ф-ция возвращает количество секунд после открытия последней позиции текущего символа:
Т.е., чтобы проверить количество секунд после открытия последней позиции Buy с магиком Magic, нужно:
Во-первых: OrderCloseTime() - время закрытия ордера. Если ордер не закрыт, оно равно нулю. Вам нужно смотреть время открытия.
Во-вторых: Hour() - это час запуска эксперта и этот час не меняется в процессе выполнения программы. Вам нужно сравнивать со временем прихода последней котировки - TimeCurrent()
Ф-ция возвращает количество секунд после открытия последней позиции текущего символа:
Т.е., чтобы проверить количество секунд после открытия последней позиции Buy с магиком Magic, нужно:
спаибо за функцию! у вас нет еще одной?! чтобы за один бар открывался только один ордер?!спаибо за функцию! у вас нет еще одной?! чтобы за один бар открывался только один ордер?!
та же фигня, только проверять на количество баров, а не секунд
та же фигня, только проверять на количество баров, а не секунд
работает! только вот когда по TP закрываеться ордер, сразу же открываеться новый! это можно как поправить?
та же фигня, только проверять на количество баров, а не секунд
работает! только вот когда по TP закрываеться ордер, сразу же открываеться новый! это можно как поправить?
Значит, нужно проводить ещё одну проверку: на количество баров после закрытия последнего ордера: