Владимир- подскажите пожалуйста.
как запустить - как коснётся линии?
----------------------------------------------------------
прикосновении линии - сработает покупка или продажа
//+------------------------------------------------------------------+ //| Check for long position opening | //+------------------------------------------------------------------+ bool CSampleExpert::LongOpened(void) { bool res=false; //--- check for long position (BUY) possibility double priceHLine=ObjectGetDouble(0,InpHLineName,OBJPROP_PRICE); if(priceHLine==0.0) return(true); if(priceHLine>m_symbol.Ask()) { ObjectDelete(0,InpHLineName); double price=m_symbol.Ask(); double tp =m_symbol.Bid()+m_take_profit; //--- check for free money if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,InpLots,price)<0.0) printf("We have no money. Free Margin = %f",m_account.FreeMargin()); else { //--- open position if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,InpLots,price,0.0,tp)) printf("Position by %s to be opened",Symbol()); else { printf("Error opening BUY position by %s : '%s'",Symbol(),m_trade.ResultComment()); printf("Open parameters : price=%f,TP=%f",price,tp); } } //--- in any case we must exit from expert res=true; } //--- result return(res); } //+------------------------------------------------------------------+ //| Check for short position opening | //+------------------------------------------------------------------+ bool CSampleExpert::ShortOpened(void) { bool res=false; //--- check for short position (SELL) possibility double priceHLine=ObjectGetDouble(0,InpHLineName,OBJPROP_PRICE); if(priceHLine==0.0) return(true); if(priceHLine<m_symbol.Bid()) { ObjectDelete(0,InpHLineName); double price=m_symbol.Bid(); double tp =m_symbol.Ask()-m_take_profit; //--- check for free money if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,InpLots,price)<0.0) printf("We have no money. Free Margin = %f",m_account.FreeMargin()); else { //--- open position if(m_trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,InpLots,price,0.0,tp)) printf("Position by %s to be opened",Symbol()); else { printf("Error opening SELL position by %s : '%s'",Symbol(),m_trade.ResultComment()); printf("Open parameters : price=%f,TP=%f",price,tp); } } //--- in any case we must exit from expert res=true; } //--- result return(res); } //+------------------------------------------------------------------+ //| main function returns true if any position processed | //+------------------------------------------------------------------+
Нет, здесь в советнике нет никакого касания - простое условие: открытие позиции в зависимости от размещённой горизонтальной линии
Торговые сигналы:
Если линии размещена ВЫШЕ текущей цены - это сигнал к открытию позиции BUY, если ниже - откроется позиция SELL. После получения сигнала линии с графика удаляется.
То есть в параметрах советника всё настроили и советник ждёт сигнал - ждёт когда пользователь кинет на график линию.
Нет, здесь в советнике нет никакого касания - простое условие: открытие позиции в зависимости от размещённой горизонтальной линии
Торговые сигналы:
Если линии размещена ВЫШЕ текущей цены - это сигнал к открытию позиции BUY, если ниже - откроется позиция SELL. После получения сигнала линии с графика удаляется.
То есть в параметрах советника всё настроили и советник ждёт сигнал - ждёт когда пользователь кинет на график линию.
Да !
хотелось -бы найти, способ пересечения или касания линии.
и только после касания или пересечения - открытия позиции.
Да !
хотелось -бы найти, способ пересечения или касания линии.
и только после касания или пересечения - открытия позиции.
А пересечение будете проверять на баре #1? Да?
А пересечение будете проверять на баре #1? Да?
Владимир - спасибо за ваш советник!
за подсказку.
правда я две горизонтальные линии сделал - на buy и sell
как пересекает красную линию - sell
Добрый день.
Пытаюсь
понять почему не работает "HLine Manual так как Вы его прописываете // Таким образом выставив на уровень линию вручную, можно не сидеть у
монитора - советник сам отработает когда цена пересечёт линию.//.
Сейчас
советник открывает позицию сразу не дожидаясь когда цена пересечет установленную линию"HLine Manual". Почему ?
Добрый день.
Пытаюсь понять почему не работает "HLine Manual так
как Вы его прописываете // Таким образом выставив на уровень линию вручную, можно не сидеть у монитора - советник сам отработает когда
цена пересечёт линию.//.
Сейчас
советник
открывает
позицию сразу не дожидаясь когда цена пересечет установленную линию"HLine Manual". Почему ?
А где Вы увидели такое описание? Вот описание:
Идея торговой стратегии
Советник ожидает, что пользователь разместит на графике графический объект "Горизонтальная линия" с именем совпадающим с входным параметром HLine Name.
Торговые сигналы:
Если линии размещена ВЫШЕ текущей цены - это сигнал к открытию позиции BUY, если ниже - откроется позиция SELL. После получения сигнала линии с графика удаляется.
Из нашей с Вами переписки. В противном случае зачем вместо покупке или продажи по рынку ставить Вашу горизонтальную линию.
***

- www.mql5.com
Из нашей с Вами переписки. В противном случае зачем вместо покупке или продажи по рынку ставить Вашу горизонтальную линию.
***
Зачем - это вопрос не ко мне. Кто-то на форуме хотел открывать позиции именно так. При помощи линий.
Может Вы тогда сможете усовершенствовать Вашу программу и я ,или мы все, получим мечту любого трейдера.//Таким образом выставив на уровень линию вручную, можно не сидеть у монитора - советник сам отработает когда цена пересечёт линию.//. Пресечение можно проверить через сравнение значения цены в данное время и значения HLine Manual , а ордер может сработать по допустимому отклонению.
Спасибо.
Можем обсудить и другие условия.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
HLine Manual:
Помощник в ручной торговле: открытие позиции в зависимости от размещённой горизонтальной линии
Автор: Vladimir Karputov