Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 519

 
borilunad:

Что-то я не слышал о правом Алексее! Оно понятно, сразу на боковую и мёртвым сном засыпаешь!

Ни о правом не слышал, ни о левом.
 
tara:

Ни о правом не слышал, ни о левом.

Значит, на спине или на животе!
 
borilunad:

Значит, на спине или на животе!
Извини, я гетеросексуален.
 
viktorlev:


Не все такие волки в терминах MQL.

А по поваду проверок ......... это есть.

if ((r2<30 && r1>30 && OrdersTotal()<1) || (OrderType()==OP_BUY && OrdersTotal()>=1 &&

OrdersTotal()<2 && Bid>OrderOpenPrice()+dif*Point))

OrderSend(Symbol(),OP_BUY,lot,Ask,0,Bid-sl*Point,Ask+tp*Point,"Easiest ever",0,0);

-----------------------------------------------------------------------------------------------

for (int i=0; i<OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TIME)==true)

if (OrderType()==OP_BUY && Bid-ts*Point>OrderStopLoss()+5*Point)

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-ts*Point,Ask+tp*Point,0,CLR_NONE);

----------------------------------------------------------------------------------------------

И коль пошол диалог. Есть еще один ВОПРОС.

Как правельно прописать выделенную часть (красный цвет) кода. Чтобы тейк профит "tp" был фиксированным и не двигался за ценной.



Пример расчёта стоп-приказов с учётом требований СтопЛевел:

Глобально:

   int StopLoss   = 50; // Размер стопа в пунктах
   int TakeProfit = 50; // Размер тейка в пунктах

И в коде эксперта перед отсылкой торгового запроса:

   int level=(int)MarketInfo(Symbol(),MODE_STOPLEVEL);
   if(level==0) level=(int)MarketInfo(Symbol(),MODE_SPREAD)*2;
// ---- для позиции Buy расчёт стопа и тейка с учётом СтопЛевел:
   double sl=(StopLoss<=0)?0:NormalizeDouble(MathMin(Bid-StopLoss*Point,Bid-(level+1)*Point),Digits);
   double tp=(TakeProfit<=0)?0:NormalizeDouble(MathMax(Bid+TakeProfit*Point,Bid+(level+1)*Point),Digits);
// ---- для позиции Sell расчёт стопа и тейка с учётом СтопЛевел:
   double sl=(StopLoss<=0)?0:NormalizeDouble(MathMax(Ask+StopLoss*Point,Ask+(level+1)*Point),Digits);
   double tp=(TakeProfit<=0)?0:NormalizeDouble(MathMin(Ask-TakeProfit*Point,Ask-(level+1)*Point),Digits);
 
tara:
Извини, я гетеросексуален.

Не за что, даже если бы и не был! Я не написал homo, a что homo sapiens, надеюсь!
 
borilunad:

Не за что, даже если бы и не был! Я не написал homo, a что homo sapiens, надеюсь!
Прямоходящий точно.
 

Подскажите плиз как сделать так чтобы при достижении индикатором своей верхней(нижней) границы окна выводилась надпись "Достигнута граница окна". Заранее спасибо.

Ниже сам индикатор.

Файлы:
tr2.mq4  3 kb
 
oxotnik:

Подскажите плиз как сделать так чтобы при достижении индикатором своей верхней(нижней) границы окна выводилась надпись "Достигнута граница окна". Заранее спасибо.

Ниже сам индикатор.

Данные же масштабируются. В один момент времени экстремум будет равен 0.001, и это будет максимумом, в другой момент времени, экстремум будет иметь значение 0.02, и это тоже будет максимум. Так когда решать, что достигли максимума?
 
oxotnik:

Подскажите плиз как сделать так чтобы при достижении индикатором своей верхней(нижней) границы окна выводилась надпись "Достигнута граница окна". Заранее спасибо.

Ниже сам индикатор.


Ага, границы окна - самые сильные уровни поддержки и сопротивления ;))))))))))))))))))))))).
 
artmedia70:
Данные же масштабируются. В один момент времени экстремум будет равен 0.001, и это будет максимумом, в другой момент времени, экстремум будет иметь значение 0.02, и это тоже будет максимум. Так когда решать, что достигли максимума?


В этом то и проблема, чтобы учитывалось самомасштабирование. Т.е. как Вы говорите если экстремум 0.001 надпись выводится, как только экстремум в будущем меняется на 0.002 то надо чтобы тоже была надпись.

VladislavVG Это тут не причем.

Причина обращения: