день добрый
пишу своего первого эксперта
проблема в следующем:
открываю ордер
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0);
без профитов и лосов, чтобы при выполнении определенного условия закрыть его
для этого использую OrderClose
но в ней нужно указать номер ордера
а вот как его получить не знаю
подскажите, пожалуйста
int ticket;
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0);
В справке написано: Возвращает номер тикета.
https://docs.mql4.com/ru/trading/OrderSendне работает
в этом случае он работает по профитам и лосу
и еще выдает ошибку "OrderClose error 4051"
не работает
в этом случае он работает по профитам и лосу
и еще выдает ошибку "OrderClose error 4051"
Надо сначала выбрать ордер:
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
А потом его закрывать:
OrderClose(ticket,Lots,Bid,3,Violet);Должно работать. :)
Угу, а еще здесь:
https://book.mql4.com/ru/trading/indexвсем спасибо
разобрался
еще вопрос
MA1_0=iMA(NULL,0, 21, 0, MODE_SMA, PRICE_CLOSE, 0);
при каждом поступающем тике я получаю по этой операции значение средней для данного тика
как мне узнать значение средней за прошлый час?
Среднее значение "Close" 21 бара на текущем графике. Так будет правильнее.
но в ней нужно указать номер ордера
а вот как его получить не знаю
подскажите, пожалуйста
Рано или поздно Вам понадобится полноценный учёт ордеров.
Посмотрите здесь 'Учёт ордеров в большой программе'
про ордера я понял
спасибо
а про iMA подскажите еще
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
день добрый
пишу своего первого эксперта
проблема в следующем:
открываю ордер
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0);
без профитов и лосов, чтобы при выполнении определенного условия закрыть его
для этого использую OrderClose
но в ней нужно указать номер ордера
а вот как его получить не знаю
подскажите, пожалуйста