Советники: Surefirething

 

Surefirething:

Работа с отложенными ордерами Buy Limit и Sell Limit. Возможно сопровождение (трейлинг) позиций.

Автор: Vladimir Karputov

 
Добрый день, этот робот делает именно то, что я искал! У меня вопрос, как сделать так, чтобы новые ордера вставлялись каждый раз, когда один завершается, а не только когда появляется новый бар, я торгую активом, который повторяет одну и ту же цену несколько раз и я мог бы делать более одной сделки в минуту. спасибо заранее.
 
Fabio_tec :
Добрый день, этот робот делает именно то, что я искал! У меня вопрос, как сделать так, чтобы новые ордера вставлялись каждый раз, когда один завершается, а не только когда рождается новый бар, я торгую активом, который повторяет одну и ту же цену несколько раз, и я мог бы делать более одной сделки в минуту. спасибо заранее.

Извините, этот код работает только при рождении нового бара.

 
Vladimir Karputov:

К сожалению, этот код работает только при открытии нового бара.

Чтобы выставить новые ордера до открытия новой свечи, необходимо обработать isewbar.
 
sergiomt :
Здравствуйте, что на следующем баре определяет, будет ли это покупка или продажа? спасибо

Советник работает с отложенными ордерами : BuyLimit и SellLimit.

 
sergiomt :

Если я хочу, чтобы партия добавляла +1 (1,2,3,4,5....) с каждым заказом, нужно ли изменить этот раздел?

//--- получаем минимальный шаг изменения объема

double volume_step=m_symbol.LotsStep();

int ratio=(int)MathRound(volume/volume_step);

if(MathAbs(ratio*volume_step-volume)>0.0000001)


Как бы это выглядело?

Нет ошибок Чтобы увеличить текущую партию, нужно знать, какой была последняя транзакция.

 

Как я могу ограничить количество открытых ордеров?

Спасибо

 
sergiomt :

Как я могу ограничить количество открытых ордеров?

Спасибо

Чтобы ограничить - нужно посчитать все ПОЗИЦИИ.

 
Автор Советника, всё равно не ответит. Если возможно по коду понять, то кто-нибудь хоть ответьте по какому принципу выставляются отложенные лимитные ордера. Вроде как на отступе от цены, но по какому принципу и где в коде это можно регулировать, если можно. Да хотя бы и без регулировки, просто понять, как и при каких условиях они выставляются.
 
Vladimir Gulakov #:
Автор Советника, всё равно не ответит. Если возможно по коду понять, то кто-нибудь хоть ответьте по какому принципу выставляются отложенные лимитные ордера. Вроде как на отступе от цены, но по какому принципу и где в коде это можно регулировать, если можно. Да хотя бы и без регулировки, просто понять, как и при каких условиях они выставляются.

Здравствуйте, Владимир!

В этом блоке можете регулировать/изменять код, выделенный желтым цветом, так, как Вам нужно:

//---
   MqlRates rates[];
   ArraySetAsSeries(rates,true);
   int copied=CopyRates(m_symbol.Name(),Period(),1,1,rates);
   if(copied!=1)
     {
      PrevBars=0;
      return;
     }
   double H4=((((rates[0].high-rates[0].low)*1.1)/2)+rates[0].close);
   double H3= ((((rates[0].high-rates[0].low)*1.1)/4)+rates[0].close);
   double L3= (rates[0].close-((rates[0].high-rates[0].low)*1.1)/4);
   double L4= (rates[0].close-((rates[0].high-rates[0].low)*1.1)/2);

   double price=0.0;
   double sl=0.0;
   double tp=0.0;

   price=L4;
   sl=(InpStopLoss==0.0)?0.0:ExtStopLoss;
   tp=(InpTakeProfit==0.0)?0.0:ExtTakeProfit;
   m_trade.BuyLimit(InpLots,m_symbol.NormalizePrice(price),m_symbol.Name(),
                    m_symbol.NormalizePrice(price-sl),
                    m_symbol.NormalizePrice(price+tp));

   price=H4;
   sl=(InpStopLoss==0.0)?0.0:ExtStopLoss;
   tp=(InpTakeProfit==0.0)?0.0:ExtTakeProfit;
   m_trade.SellLimit(InpLots,m_symbol.NormalizePrice(price),m_symbol.Name(),
                     m_symbol.NormalizePrice(price+sl),
                     m_symbol.NormalizePrice(price-tp));

С уважением, Владимир.

 
MrBrooklin #:

Здравствуйте, Владимир!

В этом блоке можете регулировать/изменять код, выделенный желтым цветом, так, как Вам нужно:

С уважением, Владимир.

Спасибо, попробую