Ошибка № 145 - страница 2 12 Новый комментарий --- 2010.01.15 15:44 #11 если расстояние до котировки МЕНЕЕ возможного, то пропускаем ордер. Roman Kutemov 2010.01.15 15:48 #12 я вот так для селл делаю, и у меня не получается, все равно ошибка выдается: 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);} Вопросы от начинающих MQL4 В чем ошибка в Любой вопрос новичка, чтоб Victor Nikolaev 2010.01.15 16:57 #13 Функция для закрытия рыночных ордеров с учетом уровня заморозки Требования ДЦ Если рыночная цена приближается на расстояние 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 2014.04.08 06:46 #14 Альпари уроды пишут MODE_FREEZELEVEL = 0, а по факту два спреда. Измените что нибудь рукожопые кухонщики. Земля пухом Броке где все было намного лучше. Victor Nikolaev 2014.04.08 06:49 #15 Mojohead: Альпари уроды пишут MODE_FREEZELEVEL = 0, а по факту два спреда. Измените что нибудь рукожопые кухонщики. Земля пухом Броке где все было намного лучше. А в бан за оскорбления не хотите? 12 Новый комментарий
я вот так для селл делаю, и у меня не получается, все равно ошибка выдается:
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);}
Функция для закрытия рыночных ордеров с учетом уровня заморозки
Требования ДЦ
Если рыночная цена приближается на расстояние 2-х пунктов от значения ордеров T/P или S/L, или цены открытия отложенного ордера, то программа будет автоматически запрещать модифицировать или удалять данные ордера.
Сама функция
Альпари уроды пишут MODE_FREEZELEVEL = 0, а по факту два спреда. Измените что нибудь рукожопые кухонщики.
Земля пухом Броке где все было намного лучше.
Альпари уроды пишут MODE_FREEZELEVEL = 0, а по факту два спреда. Измените что нибудь рукожопые кухонщики.
Земля пухом Броке где все было намного лучше.
А в бан за оскорбления не хотите?