//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 19.02.2008 |
//| Описание : Возвращает минимальный размер лота из открытых позиций |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
double GetMinLotFromOpenPos(string sy="", int op=-1, int mn=-1) {
double l=0;
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 (l==0 || l>OrderLots()) l=OrderLots();
}
}
}
}
}
}
return(l);
}
в назначенное время советник считает совокупную прибыль по всем сделкам текущего символа(графика на котором установлен)
и если она достигла значения «X», то советник закрывает все сделки.
Значение Х вычисляется по формуле: минимальный обьём сделки(из открытых другими советниками)умноженный на коэфициент.
Х = минимальный обьём сделки*koef
zakaz.opentraders.ru/56171.html
Значение Х вычисляется по формуле: минимальный обьём сделки(из открытых другими советниками)умноженный на коэфициент.
Х = минимальный обьём сделки*koef
Когда открылось несколько ордеров на продажу, и подключился мартингейл, советник мониторит профит первого ордера с самым дальним ордером, который открылся в серии продаж. Самый дальний, это не последний в серии! Самый дальний — это ордер, который открылся по самой высокой цене. Если профит достиг установленного значения, значит советник закрывает 1-ый и дальний ордер. Далее советник мониторит следующий 1-ый ордер в этой серии продаж с самым дальним открытым ордером, и закрывает по профиту, установленного в советнике на серии продаж
В итоге советник подсчитывает не ДВА ОРДЕРА в сетке (первый и последний), а все в сетке, которые имеют плюсовый профит. И если профит набирает значение указанное в советнике, все ордера с плюсовым профитом закрываются вместе с первым. Задача советника состоит в том, чтобы закрыть первый ордер в сетке.
Если после закрытия первого ордера в сетке вместе с профитными ордерами (ордером), в торговле остались ещё несколько ордеров (больше одного), значит советник торгует по той самой схеме, когда пытаеться закрыть первый ордер.
alex30774