Evgeniy пишет:
Тралит лимитные ордера выставленные другим советником, но с нужным магиком (371), ВВ11 стоит в ручном режиме. Какую строку в коде закоментировать, чтоб не тралил лимитные ордера. Версия 2_BasketBull_v11_
Возможно, стОит задавать разные маджики для разных советников? Для того MagicNumber и создавался.
Но если имеются соображения, чтобы не разводить по маджикам, то следует копать функцию
orders().
Строки указаны приблизительно на основании файла
2_BasketBull_v11_.mq4. Он имеется в Истории версий
Для лимитных ордеров выделение
красное, для стоп ордеров -
маджента.
//
//| ОБРАБОТКА ОРДЕРОВ
//
void orders()
{
....
case 2:
{ //BUYLIMIT
if((направление[num]<0 || bb[num]>=максимум_позиций || (сигнал_закрытия[num]<0) || margin_call) && Автомат)
{
if(OrderDelete(ticket)) {
if(расширенный_отладчик) Print(__FUNCTION__+": Удаление лимитного ордера: "+DoubleToStr(ticket,0)+" "+symbol);
blim[num]--;
continue;
}
break;
}
blim[num]++;
if((curr_ask-price)>(gap+шаг_трала_в_пунктах)*points)
{
(СТРОКА ~690)
if(OrderModify(ticket,curr_ask-gap*points,0,0,0,CLR_NONE)) {
if(расширенный_отладчик) Print(__FUNCTION__+": Сдвиг лимитного ордера: "+DoubleToStr(ticket,0)+" "+symbol);
continue;
}
}
break;
}
case 3:
{ //SELLLIMIT
if((направление[num]>0 || bs[num]>=максимум_позиций || (сигнал_закрытия[num]>0) || margin_call) && Автомат)
{
if(OrderDelete(ticket)) {
if(расширенный_отладчик) Print(__FUNCTION__+": Удаление лимитного ордера: "+DoubleToStr(ticket,0)+" "+symbol);
slim[num]-=1;
continue;
}
break;
}
slim[num]++;
if((price-curr_bid)>(gap+шаг_трала_в_пунктах)*points)
{
(СТРОКА ~712)
if(OrderModify(ticket,curr_bid+gap*points,0,0,0,CLR_NONE)) {
if(расширенный_отладчик) Print(__FUNCTION__+": Сдвиг лимитного ордера: "+DoubleToStr(ticket,0)+" "+symbol);
continue;
}
}
break;
}
case 4:
{ //BUYSTOP
if((направление[num]<0 || (сигнал_закрытия[num]<0) || bb[num]>=максимум_позиций || margin_call) && Автомат)
{
if(OrderDelete(ticket)) {
if(расширенный_отладчик) Print(__FUNCTION__+": Удаление стоп ордера: "+DoubleToStr(ticket,0)+" "+symbol);
bst[num]-=1;
continue;
}
break;
}
bst[num]++;
if((price-curr_ask)>(gap+шаг_трала_в_пунктах)*points)
{
(СТРОКА ~736)
if(OrderModify(ticket,curr_ask+gap*points,0,0,0,CLR_NONE)) {
if(расширенный_отладчик) Print(__FUNCTION__+": Сдвиг стоп ордера: "+DoubleToStr(ticket,0)+" "+symbol);
continue;
}
}
break;
}
case 5:
{ //SELLSTOP
if((направление[num]>0 || (сигнал_закрытия[num]>0) || bs[num]>=максимум_позиций || margin_call) && Автомат)
{
if(OrderDelete(ticket)) {
if(расширенный_отладчик) Print(__FUNCTION__+": Удаление стоп ордера: "+DoubleToStr(ticket,0)+" "+symbol);
sst[num]-=1;
continue;
}
break;
}
sst[num]++;
if((curr_bid-price)>(gap+шаг_трала_в_пунктах)*points)
{
(СТРОКА ~759)
if(OrderModify(ticket,curr_bid-gap*points,0,0,0,CLR_NONE)) {
if(расширенный_отладчик) Print(__FUNCTION__+": Сдвиг стоп ордера: "+DoubleToStr(ticket,0)+" "+symbol);
continue;
}
}
break;
}
....