Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пользуйся поиском на MQL5.community. Это просто!
Лекс
12
Лекс 2012.09.17 15:57 

Доброго времени суток, Уважаемые Форумчане!!!

совсем недавно мне трудно было представить как вообще писать советник. А теперь, задался целью написать своего первого советника, просто голову озарила светлая идея. Ближе к делу!

одна из функций моего светника - это рысканье по истории в поисках последнего закрытого ордера, но проблема - этот ордер должен быть обязательно BUy или Sell, но никак не удалённый отложенник. Я в тупике. Ихначально у меня стояла вот такая конструкция

OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);

код простейший, вычисляет последний ордер, а если отложенник, то ступор(

Мне нужен код вида:

тра-ля-ля цикл(считывает с конца)

если попался отложенник, {то на 1 вверх},

если попался ордер типа BUY или SELL, то вуаля {какая-нибудь функция}

Надеюсь на вашу помощь, советник почти полностью написан, моё первое творение, остался только этот крупный косяк, а остальные маленькие - ерунда.

Заранее спасибо!!!



Дмитрий
1046
Дмитрий 2012.09.17 16:06  

GetTypeLastClosePos() поищите на форуме функции

Лекс
12
Лекс 2012.09.17 16:31  
Думал, конечно, будет функция по-проще, но и на том спасибо!
Лекс
12
Лекс 2012.09.17 17:41  
так и не разобрался в ней, плохо! как только вставляю её в советник сразу куча ошибок пишет,типо: 'sy' - variable not defined;'}' - unbalanced parentheses и многое другое
Владимир Тезис
4271
Владимир Тезис 2012.09.18 02:24  
Перед циклом, перебирающим ордера истории, объявляем переменную типа датетайм и обнуляем её. Например datetime OrderTimeClose. Такм же объявляем целочисленную переменную, скажем, int Ticket и тоже обнуляем её. Далее организуем цикл, который проходит по ордерам истории. Если очередной выбранный ордер имеет тип Бай, или тип Cелл, и при этом время его закрытия больше, чем в переменной OrderTimeClose, то в эту переменную вписываем время закрытия ордера, а в переменную тикетов - тикет ордера. Всё. После выполнения цикла если переменная тикетов не будет равна нулю, то в ней будет тикет последнего закрытого рыночного ордера.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий