Подскажите, кто знает. При торговле советником происходит задвоение ордера (по коду открываю 1, а открывается 2). И че самое интересное, он их потом 2 и закрывает, хотя в коде хранится и закрывается только один номер ордера???
- Вместо закрытия sell открывается buy
- Воскресенье в котировках
- Как кодом можно удалить бар истории?
Не волнуйтесь, бригада телепатов уже выехала.
код в студию
не, не надо "код в студию". без кода - интереснее. игрушка "угадал - не угадал"... может кто и поиграет... "с кодом" - эка невидаль... главное ведь - ПРОЦЕСС!
думаю причина в том, что функций на открытие несколько, а между ними нету оператора return, вот обе близкие и срабатывают до проверки на наличие открытых позиций. Или подсчет открытых позиций не верный.
Банальная ошибка в нумерации ордеров, точней проверкой ордеров. Учтите, при выборе ордера, что нумерация начинается с нуля.
Если бы дело было бы в коде, то на тестере была бы такая же проблема, а там все впорядке. Может советник глючить, если был откомпилирован на mql4 другой программы. Компилировался с mql meta trader, а запускается в mik bank
void add_system(bool buy)
{
int c;
double peregib1=tochki[chislo_toch-1];
for(c=chislo_toch-1;c>0;c--)
{
if(buy)
{
if((peregibVverh[c-1]==false))
{
if((tochki[c-1]<peregib1)){ty[i]=0; first=true;
max[i]=iClose(para,0,0);
min[i]=iClose(para,0,0);
Lots1=NormalizeDouble(summ/(MathAbs(iClose(para,0,0)-peregib1)*100000),DigitLot);
if(Lots1>maxLot)
Lots1=maxLot;
if(Lots1<MathPow(0.1,DigitLot))
Lots1=MathPow(0.1,DigitLot);
order[i]=-1;
while(order[i]==-1)
{
RefreshRates();
order[i]= OrderSend(Symbol(),OP_BUY,Lots1,NormalizeDouble(Ask,Digits),slip,0,0);
}
//order[i]= OrderSend(Symbol(),OP_SELL,Lots1,NormalizeDouble(Bid,Digits),slip,0,0);
stop_los[i]=peregib1;firstStop[i]=peregib1;rasstDoCeli[i]=MathAbs(iClose(para,0,0)-stop_los[i]);}
break;
}
}
if(!buy)
{
if((peregibVverh[c-1]==true))
{
if((tochki[c-1]>peregib1)){ty[i]=1; first=true;
max[i]=iClose(para,0,0);
min[i]=iClose(para,0,0);
Lots1=NormalizeDouble(summ/(MathAbs(iClose(para,0,0)-peregib1)*100000),DigitLot);
if(Lots1>maxLot)
Lots1=maxLot;
if(Lots1<MathPow(0.1,DigitLot))
Lots1=MathPow(0.1,DigitLot);
order[i]=-1;
while(order[i]==-1)
{
RefreshRates();
order[i]= OrderSend(Symbol(),OP_SELL,Lots1,NormalizeDouble(Bid,Digits),slip,0,0);
}
//order[i]= OrderSend(Symbol(),OP_BUY,Lots1,NormalizeDouble(Ask,Digits),slip,0,0);
stop_los[i]=peregib1;firstStop[i]=peregib1;rasstDoCeli[i]=MathAbs(iClose(para,0,0)-stop_los[i]);}
break;
}
}
}
}
{
int c;
double peregib1=tochki[chislo_toch-1];
for(c=chislo_toch-1;c>0;c--)
{
if(buy)
{
if((peregibVverh[c-1]==false))
{
if((tochki[c-1]<peregib1)){ty[i]=0; first=true;
max[i]=iClose(para,0,0);
min[i]=iClose(para,0,0);
Lots1=NormalizeDouble(summ/(MathAbs(iClose(para,0,0)-peregib1)*100000),DigitLot);
if(Lots1>maxLot)
Lots1=maxLot;
if(Lots1<MathPow(0.1,DigitLot))
Lots1=MathPow(0.1,DigitLot);
order[i]=-1;
while(order[i]==-1)
{
RefreshRates();
order[i]= OrderSend(Symbol(),OP_BUY,Lots1,NormalizeDouble(Ask,Digits),slip,0,0);
}
//order[i]= OrderSend(Symbol(),OP_SELL,Lots1,NormalizeDouble(Bid,Digits),slip,0,0);
stop_los[i]=peregib1;firstStop[i]=peregib1;rasstDoCeli[i]=MathAbs(iClose(para,0,0)-stop_los[i]);}
break;
}
}
if(!buy)
{
if((peregibVverh[c-1]==true))
{
if((tochki[c-1]>peregib1)){ty[i]=1; first=true;
max[i]=iClose(para,0,0);
min[i]=iClose(para,0,0);
Lots1=NormalizeDouble(summ/(MathAbs(iClose(para,0,0)-peregib1)*100000),DigitLot);
if(Lots1>maxLot)
Lots1=maxLot;
if(Lots1<MathPow(0.1,DigitLot))
Lots1=MathPow(0.1,DigitLot);
order[i]=-1;
while(order[i]==-1)
{
RefreshRates();
order[i]= OrderSend(Symbol(),OP_SELL,Lots1,NormalizeDouble(Bid,Digits),slip,0,0);
}
//order[i]= OrderSend(Symbol(),OP_BUY,Lots1,NormalizeDouble(Ask,Digits),slip,0,0);
stop_los[i]=peregib1;firstStop[i]=peregib1;rasstDoCeli[i]=MathAbs(iClose(para,0,0)-stop_los[i]);}
break;
}
}
}
}
Вероятно, у вас работают 2 советника в разных окнах... Закройте терминал, потом опять включите... Во вкладке терминала "Журнал" увидите какие эксперты и индикаторы у вас подключены...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь