Скачать MetaTrader 5

Ошибка № 145 - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
o_o
Модератор
24652
o_o  
если расстояние до котировки МЕНЕЕ возможного, то пропускаем ордер.
Roman Kutemov
1862
Roman Kutemov  

я вот так для селл делаю, и у меня не получается, все равно ошибка выдается:

if (MathAbs(OrderOpenPrice()-NormalizeDouble(Ask,Digits))<=FreezLvl) continue;
if (OrderTakeProfit()>0 && MathAbs(OrderTakeProfit()-NormalizeDouble(Ask,Digits))<=FreezLvl) continue;
if (OrderStopLoss()>0 && MathAbs(OrderStopLoss()-NormalizeDouble(Ask,Digits))<=FreezLvl) continue;
if(OrderType()==OP_SELL && OrderSymbol()==Symbol() ){sell=1;OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,Violet);}

Victor Nikolaev
Модератор
15568
Victor Nikolaev  

Функция для закрытия рыночных ордеров с учетом уровня заморозки

Требования ДЦ

Если рыночная цена приближается на расстояние 2-х пунктов от значения ордеров T/P или S/L, или цены открытия отложенного ордера, то программа будет автоматически запрещать модифицировать или удалять данные ордера.

Сама функция

void Order_Close(string _Symbol="", int _Magic=-1, int _OP=-1){
   double Spred= MarketInfo(_Symbol,MODE_SPREAD);
   double FreezLvl=MarketInfo(Symbol(), MODE_FREEZELEVEL)*Point;
   
   for (int i=OrdersTotal()-1;i>=0;i--){
      if (!OrderSelect(i, SELECT_BY_POS)) continue;
      if (OrderSymbol()!=Symbol())        continue;
      if (OrderMagicNumber()!=Magic)      continue;
      if (OrderType()>OP_SELL)            continue;
      if (OrderType()!=_OP && _OP!=-1)    continue;
      if (FreezLvl>0) {
         double Price=Bid;
         if (OrderType()==OP_SELL) Price=Ask;
      
         if (MathAbs(OrderTakeProfit()-Price)<FreezLvl)  continue;
         if (MathAbs(OrderStopLoss()-Price)<FreezLvl)    continue;
         if (MathAbs(OrderOpenPrice()-Price)<FreezLvl)   continue;
      }
      OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Spred);
   }
}
MojoHead
21
MojoHead  

Альпари уроды пишут MODE_FREEZELEVEL = 0, а по факту два спреда. Измените что нибудь рукожопые кухонщики.

Земля пухом Броке где все было намного лучше.

Victor Nikolaev
Модератор
15568
Victor Nikolaev  
Mojohead:

Альпари уроды пишут MODE_FREEZELEVEL = 0, а по факту два спреда. Измените что нибудь рукожопые кухонщики.

Земля пухом Броке где все было намного лучше.


А в бан за оскорбления не хотите?
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий