Прибавить кол-во пунктов к показаниям iMA

 

Добрый день, я новичок в языке программирования 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; что бы создать своего рода канал.

Помогите правильно указать уровни для того что бы советник понимал что показатели смещаются относительно скользящей средней. 

 

 
Я так понимаю, что maLevel у вас остаётся большущим целым числом, а как правило цена инструмента колеблетца возле единицы, поэтому Вам надо умножить maLevel на Point.
 
-Aleks-:
Я так понимаю, что maLevel у вас остаётся большущим целым числом, а как правило цена инструмента колеблетца возле единицы, поэтому Вам надо умножить maLevel на Point.
Точнее, maLevel*Point()
 

Спасибо всем большое за помощь. Возник новые вопрос, я думаю они так и будут возникать...

Как принудительно закрыть ордер? Если к примеру мы совершили покупку у нижней части канала необходимо закрыть ордер когда цена подойдет к другой границе.
можно конечно и через TP это дело реализовать, но как часто бывает цена не доходит до TP и разворачивается, в это время необходимо ордер закрыть. 

 
SuTeRR:

Спасибо всем большое за помощь. Возник новые вопрос, я думаю они так и будут возникать...

Как принудительно закрыть ордер? Если к примеру мы совершили покупку у нижней части канала необходимо закрыть ордер когда цена подойдет к другой границе.
можно конечно и через TP это дело реализовать, но как часто бывает цена не доходит до TP и разворачивается, в это время необходимо ордер закрыть. 

В МТ5 закрытие позиции (а не ордера) происходит через открытие противоположной позиции. Используйте стандаотную библиотеку, класс CTrade, вот тут можно почитать https://www.mql5.com/ru/articles/481

Вам нужно вот это Справочник MQL5-Стандартная библиотека-Торговые классы-CTrade-PositionClose  

https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade/ctradepositionclose

Торговые операции на MQL5 - это просто
Торговые операции на MQL5 - это просто
  • 2012.08.21
  • MetaQuotes Software Corp.
  • www.mql5.com
Почти все трейдеры приходят на рынок для того, чтобы заработать денег, хотя есть и доля тех, кому важен не сам торговый результат, а участие в процессе, драйв. Впрочем, получить удовольствие от процесса можно не только торгуя вручную, но и занимаясь разработкой автоматических торговых систем. Ведь создание торгового робота может быть таким же интересным занятием, как и чтение хорошего детектива.
Причина обращения: