Посмотри историю сделок. Нужно использовать HistoryDealsTotal() и соответствующие остальные функции и идентификаторы: HistoryDealGetTicket(), HistoryDealGetString() и т.д.
tol64:
Посмотри историю сделок. Нужно использовать HistoryDealsTotal() и соответствующие остальные функции и идентификаторы: HistoryDealGetTicket(), HistoryDealGetString() и т.д.
Посмотри историю сделок. Нужно использовать HistoryDealsTotal() и соответствующие остальные функции и идентификаторы: HistoryDealGetTicket(), HistoryDealGetString() и т.д.
пробовал и с историей сделок.
HistorySelect(0,TimeCurrent()); for(int i=0;i<HistoryDealsTotal();i++){ HistoryDealSelect(HistoryDealGetTicket(i)); double cl=HistoryDealGetDouble(HistoryDealGetTicket(i),DEAL_PRICE); double op=HistoryDealGetDouble(HistoryDealGetTicket(i-1),DEAL_PRICE); long typeor=HistoryDealGetInteger(HistoryDealGetTicket(i-1),DEAL_TYPE); Print(typeor," ", cl," ",op," ",HistoryDealsTotal()); if(typeor==DEAL_TYPE_BUY && HistoryDealGetString(HistoryDealGetTicket(i-1),DEAL_SYMBOL)==sy) { if(op>cl) { return(1); } } if(typeor==DEAL_TYPE_SELL && HistoryDealGetString(HistoryDealGetTicket(i-1),DEAL_SYMBOL)==sy) { if(cl>op) { return(1); } } } return(0);
результат:
0 0.0 0.0 1
Vladon:
пробовал и с историей сделок.
...
Пример:
//+------------------------------------------------------------------+ //| ВОЗВРАЩАЕТ ЦЕНУ ПОСЛЕДНЕЙ СДЕЛКИ ТЕКУЩЕЙ ПОЗИЦИИ | //+------------------------------------------------------------------+ double GetPriceLastDealCurrPos() { int total=0; // Всего сделок в списке выбранной истории ulong ticket=0; // Тикет сделки string deal_symbol=""; // Символ сделки double deal_price=0.0; // Цена //--- // Если история позиции получена if(HistorySelect(pos.time,TimeCurrent())) { // Получим количество сделок в полученном списке total=HistoryDealsTotal(); //--- // Пройдем в цикле по всем сделкам в полученном списке // от последней сделки в списке к первой for(int i=total-1; i>=0; i--) { // Если тикет сделки по её позиции в списке получен, то... if((ticket=HistoryDealGetTicket(i))>0) { deal_symbol=HistoryDealGetString(ticket,DEAL_SYMBOL); // получим символ сделки deal_price=HistoryDealGetDouble(ticket,DEAL_PRICE); // получим цену сделки //--- // Если символ сделки и текущий символ равны, остановим цикл if(deal_symbol==_Symbol) { break; } } } } //--- return(deal_price); } //---
tol64:
Спасибо огромное буду пробовать.
Пример:
Еще раз спасибо огромное. Получилось то что я хотел.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как узнать закрыт ли последний ордер по стоплоссу (меньше 0 ) т Важно выбор по символу, т.е. нужен перебор всех ордеров в истории и далее выбрать последний закрытый ордер по нужному символу
Допустим а мт4 - Посмотреть последнюю позицию легко, а тут как?
Запутался.
Я уже все перепробовал,
уже просмотрел все советники которые нашел в поиске.
Подскажите пожалуйста.