Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так и написано, открывает по одному ордеру, но иногда бывает открывает 2 и боле ордеров (наверно не успеет проверять)
Тогда проще код советника исправить. Дублирование ордеров - это такая ошибка кода, которую нельзя считать фичей и закрывать глаза на такое. Нужно искать причины и исправлять. Ведь при закрытии все равно на спред попадаете. Зачем же деньги зря тратить?
Советник открывает по одному ордеру, но иногда бывает открывает 2 и боле ордеров (наверно не успевает проверять), надо что, уже потом проверяль, если есть дублирушие ордера, закрыть их. Можно отделный советник
Вам уже два человека сказали, что нужно исправлять код советника. Принудительное закрытие не решит проблему.
Так и написано, открывает по одному ордеру, но иногда бывает открывает 2 и боле ордеров (наверно не успеет проверять)
Может тогда код покажете? А так пока на кофейной гуще все гадают.
Может тогда код покажете? А так пока на кофейной гуще все
Вам уже два человека сказали, что нужно исправлять код
Может тогда код покажете? А так пока на кофейной гуще все гадают.
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
void OnTick()
{
if( provPrice(OP_BUY) )
int ticket = OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-200*Point,Ask+20*Point);
return;
}
bool provPrice(const int type)
{
for(int cnt=0; cnt<OrdersTotal(); cnt++)
{
if( !OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ) continue;
if( OrderType()!=type ) continue;
if( (type==OP_BUY ? Ask : Bid) == OrderOpenPrice() ) return(false);
}
return(true);
}
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
void OnTick()
{
if( provPrice(OP_BUY) )
int ticket = OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-200*Point,Ask+20*Point);
return;
}
bool provPrice(const int type)
{
for(int cnt=0; cnt<OrdersTotal(); cnt++)
{
if( !OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ) continue;
if( OrderType()!=type ) continue;
if( (type==OP_BUY ? Ask : Bid) == OrderOpenPrice() ) return(false);
}
return(true);
}
Вы были правы, код хороший, ничего исправлять не надо... а закрывать руками))
1. даблы не сравнивают ==, только <>
2. Аск и Бид склонны меняться, в том числе туда-сюда (да-да, мне люди знающие говорили, я им верю), в том числе быстрее, чем открытие ордера (понимаю, в это вообще сложно поверить, можете немного посомневаться), и поэтому ордер может открыться не по тому Аск Бид по которому он отправлен (для счетов без реквот , т.е. ЕСN и прочие NDD)
для начала думаю хватит подсказок, а теперь вопрос - а нафига так?)
Измените всего одну строку
И пожалуйста научитесь вставлять код в сообщения.Не работает, опят есть дублирушие ордера
Да... я совсем забыл что 0.0 != -0.0
Попробуйте ещё вариант с абсолютной величиной
В противном случае давайте разбираться в алгоритме. На сколько разница в цене открытия ордера считается дублирующей?Да... я совсем забыл что 0.0 != -0.0
Попробуйте ещё вариант с абсолютной величиной
В противном случае давайте разбираться в алгоритме. На сколько разница в цене открытия ордера считается дублирующей?Блин, я же написал. Если счёт ЕСН, то хоть один ордер открылся с разницей в 1 пипс от текущей цены, и поехали сначала. Какой тип счета хоть бы написал/а ТС.
Блин, я же написал. Если счёт ЕСН, то хоть один ордер открылся с разницей в 1 пипс от текущей цены, и поехали сначала. Какой тип счета хоть бы написал/а ТС.