Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Сделал скриншот в MetaTrader? Поделись им с друзьями!
s-k-a-l-a
27
s-k-a-l-a 2006.03.20 10:01 
Помогите! Не знаю как реализовать! Мне нужно что бы открывались две позиции по этим условиям:

if ((OrdersTotal() < ?) && ((Hour() >= two_hour_work_from) && (Hour() < two_hour_work_to))) {
Two_CheckForOpen();
}
if ((OrdersTotal() <?) && ((Hour() >= one_hour_work_from) && (Hour() < one_hour_work_to))) {
One_CheckForOpen();
}
Но если я указываю в первом условии ((OrdersTotal() < 2) то почему то открываются 2 одинаковые позы(близнецы)
если ((OrdersTotal() < 1) то естейственно второе условие остается не рабочим!
Жду от вас помощи!
. ... Rick D. ... .
1076
. ... Rick D. ... . 2006.03.21 02:41  
Если условия накладываются, то первый ордер можно пометить своим Magic, а второй - своим.
Vladimir Pastushak
59093
Vladimir Pastushak 2012.08.13 07:09  
skala:
Помогите! Не знаю как реализовать! Мне нужно что бы открывались две позиции по этим условиям:

if ((OrdersTotal() < ?) && ((Hour() >= two_hour_work_from) && (Hour() < two_hour_work_to))) {
Two_CheckForOpen();
}
if ((OrdersTotal() <?) && ((Hour() >= one_hour_work_from) && (Hour() < one_hour_work_to))) {
One_CheckForOpen();
}
Но если я указываю в первом условии ((OrdersTotal() < 2) то почему то открываются 2 одинаковые позы(близнецы)
если ((OrdersTotal() < 1) то естейственно второе условие остается не рабочим!
Жду от вас помощи!
Вводимое Magic;

int n=0,b=0, s=0, bs=0, ss=0, bl=0, sl=0; //Обнуляем переменные
int total=OrdersTotal(); //Возвращаем колличество ВСЕХ ордеров в терминале
for(int ui=total-1; ui>=0; ui--) //Делаем перебор с помощью цикла
{

if(OrderSelect(ui,SELECT_BY_POS)) //Разбираем и рассматриваем существующий ордер
{

if(OrderSymbol()==Symbol()
&& OrderMagicNumber()==Magic) //Проверка на символ и на Меджик номер
{ n++; //Всего ордеров по нащему символу и с нашим Меджиком

if(OrderType()==OP_BUY ) {b++ ;} //Всего открыто бай ордеров
if(OrderType()==OP_SELL ) {s++ ;} //Всего открыто селл ордеров

if(OrderType()==OP_BUYSTOP ) {bs++;} //Всего установлено Бай Стоп ордеров
if(OrderType()==OP_SELLSTOP ) {ss++;} //Всего установлено Селл Стоп ордеров

if(OrderType()==OP_BUYLIMIT ) {bl++;} //Всего установлено Бай Лимит ордеров
if(OrderType()==OP_SELLLIMIT) {sl++;} //Всего установлено Селл Лимит ордеров
}

}

}

Результат : каждая переменная n, b, s, bs, ss, bl, sl.

На выходе из цикла будет иметь колличество ордеров по типу.

попробуй так подсчитать ордера, это будет правильнее, при этом не будет мешаться символы ордеров и будет отбор по меджику.

ZZZEROXXX
768
ZZZEROXXX 2012.08.13 08:57  
Некрофилия, однако )))
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий