Я так понимаю, что maLevel у вас остаётся большущим целым числом, а как правило цена инструмента колеблетца возле единицы, поэтому Вам надо умножить maLevel на Point.
Спасибо всем большое за помощь. Возник новые вопрос, я думаю они так и будут возникать...
Как принудительно закрыть ордер? Если к примеру мы совершили покупку у нижней части канала необходимо закрыть ордер когда цена подойдет к другой границе.
можно конечно и через TP это дело реализовать, но как часто бывает цена не доходит до TP и разворачивается, в это время необходимо ордер закрыть.
Спасибо всем большое за помощь. Возник новые вопрос, я думаю они так и будут возникать...
Как принудительно закрыть ордер? Если к примеру мы совершили покупку у нижней части канала необходимо закрыть ордер когда цена подойдет к другой границе.
можно конечно и через TP это дело реализовать, но как часто бывает цена не доходит до TP и разворачивается, в это время необходимо ордер закрыть.
В МТ5 закрытие позиции (а не ордера) происходит через открытие противоположной позиции. Используйте стандаотную библиотеку, класс CTrade, вот тут можно почитать https://www.mql5.com/ru/articles/481
Вам нужно вот это Справочник MQL5-Стандартная библиотека-Торговые классы-CTrade-PositionClose
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade/ctradepositionclose
- 2012.08.21
- MetaQuotes Software Corp.
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, я новичок в языке программирования mql5. Вчера столкнулся с проблемой прибавки количества пунктов к показанию Скользящей средней.
double maVal[]; - создал массив для дальнейшего заполнения
double maLevel = 150;
через maHandle=iMA(_Symbol,_Period,MA_Period,0,MODE_EMA,PRICE_CLOSE); я получил показания от индикатора MA.
ArraySetAsSeries(maVal,true);
MqlRates mrate[]; данные о цене помещаем в массив mrate[]
p_close=mrate[1].close; // цена закрытия предыдущего бара
p_open=mrate[1].open; // цена открытия предыдущего бара
p_highprice=mrate[1].high;
p_lowprice=mrate[1].low;
CopyBuffer(maHandle,0,0,3,maVal) - скопировал в массив данные от MA
Но когда я провожу проверку (maVal[1] + maLevel < p_close) && (maVal[1] + maLevel > p_lowprice) , робот не может распознать уровни. т.к. в силу своей неопытности я подразумевал что maVal[1] хранит показатели цены расположения скользящей средней на графике и пытался прибавить к нему maLevel = 150; что бы создать своего рода канал.
Помогите правильно указать уровни для того что бы советник понимал что показатели смещаются относительно скользящей средней.