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

 
Roman.:


Типа этого не пройдет?

и далее там чё-нибудь подобное исключить, чтоб пофигу было на билд...

В MQL4 нет функций или макросов, возвращающих номер билда.
 
Zhunko:
В MQL4 нет функций или макросов, возвращающих номер билда.


Щас понял. Сенкью.

Я считал, что возможно всё сделать по аналогии с исключением куска кода из ф-ии учебника, отвечающей за торговлю сова только на определённом счете, пароле, т.д.

 
Всем привет. Помогите пожалуйста.

Суть в следующем: Есть бот, который автоматически выставляет отложенные ордера, при определенной цене.

Необходимо поставить запрет на выставление ордера при условии, что ордер либо сделка по такой цене открыты.

Бьюсь уже три дня и никак не получается.
 

есть несколько вариантов.... проверку делай

//
// проверим среди Выставленных ордеров /сработавших/ - есть ли Байка
//
void CheckOrdBye()
{
  int total = OrdersTotal();
  int TotalOpenOrders = 0;
  for( int cnt=0; cnt<total; cnt++){
     if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) == true)  {
        if (OrderSymbol()==Symbol() ) {
            if ( OrderType() == OP_BUY)   { OrdYN = 1; return;}
            if ( OrderType() == OP_SELL)  { OrdYN = 2; return;}
        }
     }
  }
}
 
bestfx:
Всем привет. Помогите пожалуйста.

Суть в следующем: Есть бот, который автоматически выставляет отложенные ордера, при определенной цене. ...

Перед блоком высылки ордера поставьте это:
if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderOpenPrice()==bad_price) // bad_price - значение цены при котором не хотите выставить очередной ордер
      return(0);
}  }
 
Aleksander:

есть несколько вариантов.... проверку делай



А вы не могли бы раскоментировать код? А то непонятно как поступить.
 
paladin80:
Перед блоком высылки ордера поставьте это:


А если их например 30 как тогда?

Суть такая: ставятся две проотивоположных сделки с разницей в 40 пунктов от усредненной до трех знаков после запятой цены.

Допустим по 1.251 по eur\usd т.е. покупка 1.253 продажа 1.249 далее рынок например цепляет цену покупки и возвращается на 1.251 и тепрерь он ставит еще два ордера по тем же ценам. Причем за то время пока рынок шел к цене покупки скрипт мог поставить еще насколько ордеров и с ними необходимо поступить так же, т.е. одна цена = один ордер. Как это реализовать?

 
bestfx:


А если их например 30 как тогда?

Суть такая: ставятся две проотивоположных сделки с разницей в 40 пунктов от усредненной до трех знаков после запятой цены.

Допустим по 1.251 по eur\usd т.е. покупка 1.253 продажа 1.249 далее рынок например цепляет цену покупки и возвращается на 1.251 и тепрерь он ставит еще два ордера по тем же ценам. Причем за то время пока рынок шел к цене покупки скрипт мог поставить еще насколько ордеров и с ними необходимо поступить так же, т.е. одна цена = один ордер. Как это реализовать?


Просто делайте Меджик == цена
 
FAQ:

Просто делайте Меджик == цена

А не могли бы вы немного по подробнее?
 
Цену делите на дижитс = приводите к целому числу и пишете ее в меджик, потом перед установкой нового ордера ищете в массиве открытых ордеров по меджику.