Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 455

 

Добрый день!


Такой вопрос - робот открывает и закрывает заказы по определенным сигналам, есть необходимость, что б после закрытия заказа выставлялся отложенный заказ в ту же сторону, но только один.

т.е. после того, как выставился, сработал и закрылся отложенный заказ - больше ничего происходить не должно, робот ожидает сигнала на открытие обычного заказа.


Подскажите, как это можно реализовать?

 
Snower:  Добрый день!

Такой вопрос - робот открывает и закрывает заказы по определенным сигналам, есть необходимость, что б после закрытия заказа выставлялся отложенный заказ в ту же сторону, но только один.

т.е. после того, как выставился, сработал и закрылся отложенный заказ - больше ничего происходить не должно, робот ожидает сигнала на открытие обычного заказа.

Подскажите, как это можно реализовать?

Проще простого. В двух циклах for анализируете 1) историю заказов  2) выполняемые заказы. На основании анализа выясняете ситуацию и с помощью условных операторов if выполняете требуемое действие. или Вам подробнее надо?

 
STARIJ:

Проще простого. В двух циклах for анализируете 1) историю заказов  2) выполняемые заказы. На основании анализа выясняете ситуацию и с помощью условных операторов if выполняете требуемое действие. или Вам подробнее надо?

был был крайне благодарен, если распишете поподробнее

 
Snower:  был был крайне благодарен, если распишете поподробнее

какую часть Вам расписать? или все?

 
LRA:

какую часть Вам расписать? или все?

cами циклы, ifы я смогу расставить

 
Vladislav Andruschenko:
))) 10 лет работаю, и у меня таких мыслей не было. Вы любите жёсткие ситуации. 

теперь будут

 

в чем проблема данного кода? иногда открывает 1 сделку, иногда 2?

по идее максимум 1 сделка на пару, но я накосячил видимо где то


...
if(!Orderex(_Symbol))
{
   OrderSend(NULL,OP_SELL,lot,Bid,30,Bid+stop*Point,Bid-take*Point,NULL,magicf,0,clrRed);
}
...
bool Orderex(string symbol)
{
   for(int i=OrdersTotal(); i>0; i--)
      {
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==symbol && OrderMagicNumber()==magicf) return true;
      
      
      
      }


   return false;
}
 
Roman Sharanov:

в чем проблема данного кода? иногда открывает 1 сделку, иногда 2?

по идее максимум 1 сделка на пару, но я накосячил видимо где то


for(int i=OrdersTotal()-1; i>=0; i--)
 
Konstantin Nikitin:

А ещё интересней так

for(int i = OrdersTotal(); i-- >=0;)
 
ааааа, ну да, счет же с нуля :)