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

 
TarasBY:
Это Вы про "учесть" и ДЦ?! ;)

Как раз ДЦ тут не при чем. 
 

  Играюсь я тут с довольно незамысловатым экспертом, которого написал. Но решил я в рабочий эксперт добавить ни один, а несколько сигналов для входа в рынок. Но что бы по каждому сигналу в рынке мог быть только один ордер.

 Суть следующая. Я придумал, что можно разграничить ордера по Мэджику. Поиск ордеров будет выглядеть так:

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                  |
//+-------------------------------------------------------------------------------------+
int FindOrders(int magic)
{
  int t;                                                 // Количество открытых позиции (buy's + sell's)
  int total = OrdersTotal() - 1;
  
  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() == magic && OrderSymbol() == Symbol())
      {
        t++;
      }
  }
  
  return(t);
}

 

  Далее.. нам нужно открывать ордера по каждому типу сигнала со своим Мэджиком. Например, для продаж до этого у меня было так:

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
  ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,magic,0,Red);
    return(true);
  
  return(false);
}

 На данный момент я решил воспользоваться оператором switch, разумно ли в данном случае использовать данный оператор?

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
    switch(maState)
  {
    case 4:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic6,0,Red); break;
    case 5:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic25,0,Red); break;
    case 6:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic150,0,Red); break;
    case 7:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic250,0,Red); break;
    default:   return(false);
  }
    return(true);
}

 А вот так выглядела торговая функция:

//+-------------------------------------------------------------------------------------+
//| Открытие позиций                                                                    |
//+-------------------------------------------------------------------------------------+
bool Trade(int signal)
{
  if(signal == SIGNAL_BUY && FindOrders() == 0)
    if(!OpenBuy())
    return(false);
  
  if(signal == SIGNAL_SELL && FindOrders() == 0)
    if(!OpenSell())
    return(false);
    
  return(true);
}

 

 Тут тоже через оператор switch реализовывать? Я думал через формальные параметры в функцию FindOrders() передавать Мэджик тоже, но что-то не представляю как...

 
Здравствуйте. Скажите, можно ли как нибудь рассчитать возмжный убыток для скросскурса, например для GBPCHF, открываем ордер в 1 лот, и ставим стоп 50 пунктов. На сколько я знаю стоимость пункта зависит от базовой валюты, которая неизвестно что покажет в будущем.
 

Стоимость 1-го пункта пары GBPCHG (если не ошибаюсь) на 1 лот составляет 8 долларов. Таким образом, если цена пойдет против вас и сработает стоплосс, то будет зафиксирован убыток, примерно 50*8=- $400

 Ну и потери на спреде аск-бид (6-8 пунктов), видимо, нужно сюда прибавить...
 
Так стоимость пункта же каждый раз меняется
 

Вопрос по МТ4. Достаточно долгое время (дней несколько) тестировал и оптимизировал советника.

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

Наверное где-то, что-то сбилось в настройках. Где и что это может быть??? Подскажите. плз.... 

 
Caesar34:
Здравствуйте.. Подскажите, пожалуйста, как сделать период МА или ЕМА с минусовым значением, когда настройки не дают сделать этого... ? в MT4
Спам?
 
Caesar34:


Нет!!
Тогда, зачем в пару тем одним вопросом постить?
 

Запрос iLow возвращает значение с 4 знаками после запятьй, хотя на графике - 5 знаков.

 Из за этого застряла разработка первой программы на mql4. Подскажите, в чем может быть дело? Или так надо?

 
PolarsLynx:

Запрос iLow возвращает значение с 4 знаками после запятьй, хотя на графике - 5 знаков.

 Из за этого застряла разработка первой программы на mql4. Подскажите, в чем может быть дело? Или так надо?

Где код?