[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 397

 
VOLDEMAR:

Да если ееё ставить как х=0 то обнуляется если ставить просто инт х: то не обнуляется а растет


Простите не обратил внимание что она в нутри старта ....
 
Уверен,что обнуляеца. Спасибо всем, немного ржачно.
 
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;
int start()
  { 
int    X=0; 
double price=(Ask+Bid)/2;      
int total=OrdersTotal();                                         
                                       
   for (int i=total-1; i>=0; i--)                                 
   {
    if(OrderSelect(i, SELECT_BY_POS))                          
     { 
      Alert ("Uy",i);
      if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
       {
       X ++;
       }  
       }
       }
       Alert ("X",X);}

if (X==0)
   {
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       


   return(0);
  

Вот так будет правильнее!!!!!

 
Dimka-novitsek:
Уверен,что обнуляеца. Спасибо всем, немного ржачно.
А для вывода данных лучше использовать comment(); тогда в ходе тестирования вы сразу в верху с лева будете видеть что творится с вашими переменными......
 
Спасибо!!
 
Я вписал ваш код, он не компилируется. Что за ошибка, я понять не могу. Но главное, я все же спрашивал, там логическая какая-то наверно ошибка, ордера на каждом тике откріваются, вероятнее всего не работает
 if(OrderSymbol()==Symbol()&& OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 && OrderSymbol()==Symbol())
именно єта часть, и это тоже я понять не могу??
 
VOLDEMAR:

Парни вопрос по сложнее......

Как заставить советника закрыть все ордера при достижении заданной прибыли .... Закрыть только ордера на одном символе..

пример : Советник работает на 3х парах сумма для закрытия всех ордеров по одному символу 100р ...

на евро долларе больше 100 р он закрывает ордера только на евро долларе при этом на других может быть - 200р ..

Если брать accountbalanse() то советник закрывает только когда сумма по трем парам больше 100р. этот вариант мне не подходит !!!!

Помогите плиз.........



Ну наверно с помощью
OrderProfit( )
А также If (OrderSymbol()==Symbol()) {} Хотя я вон себе не могу написать...
 

Подскажите, пожалуйста, что не так в коде. Робот должен закрыть ордер на продажу, если его нет, то купить. Возникает ошибка 4105, которую я пытаюсь обработать, но результата нет. Может, есть другие способы обработки?

PRICECURRENTPPROFIT - уровень покупки.


// РОБОТ ПРОДАЕТ
// определяем есть ли заявки на продажу
if (Bid>=PRICECURRENTPPROFIT && PRICECURRENTMPROFIT>0)
{
for(cnt=OrdersTotal();cnt>=0;cnt--)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); mode = OrderType(); if(OrderSymbol() == "EURUSD")
{if(mode == OP_BUY)
{go=OrderClose(OrderTicket(), Lots, Bid, slippage, Green);

}
}
} // если есть открытый, то закрываем
} if(go != true) {Print("Не удалось открыть ордер SELL. Ошибка N", GetLastError());
switch(GetLastError()) {case 4105: OrderSend("EURUSD",OP_SELL,Lots,Bid,2*Point,0,0,"робот продает",MagicNumber,0,Red);break;}
}

 

Есть советник он открывает только позиции сэлл, я хочу в него добавить функции чтобы он открывал и на бай но на сэлл и бай нужен отдельный magicnumber

робот при срабатывании тейк профита закрывает все отложенные ордера, надо чтобы при срабатывании тейк профита в сэлл ордере он закрыл все отложенные ордера OP_SELLLIMIT и оставил без изменений OP_BUYLIMIT, OP_BUY

 
Dimka-novitsek:
Я вписал ваш код, он не компилируется. Что за ошибка, я понять не могу. Но главное, я все же спрашивал, там логическая какая-то наверно ошибка, ордера на каждом тике откріваются, вероятнее всего не работает именно єта часть, и это тоже я понять не могу??
Или код не весь показан или закрывающей фигурной скобки не хватает в самом низу.
Причина обращения: