Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 595

 
realgentleman:

Перестал работать Отладчик – почему?

С середины дня 5 мая Отладчик перестал выдавать значения переменных в точке останова. Во всех программах для всех переменных. При этом сами программы работают, как прежде. На тот момент (и до сих пор) Editor был “ver. 5.00 build 934”, а MetaTrader ver. 4.00 build 646” .

Вот простейший скрипт, и вот что Отладчик выдает. Подскажите, пожалуйста, в чем дело?

 
realgentleman:

Перестал работать Отладчик – почему?

С середины дня 5 мая Отладчик перестал выдавать значения переменных в точке останова. Во всех программах для всех переменных. При этом сами программы работают, как прежде. На тот момент (и до сих пор) Editor был “ver. 5.00 build 934”, а MetaTrader ver. 4.00 build 646” .

Вот простейший скрипт, и вот что Отладчик выдает. Подскажите, пожалуйста, в чем дело?

Тут
 

Каким способом можно узнать размер комиссии и свопа по символу в $ до открытия позиции?

 
Здравствуйте.....когда то находил на форуме библиотеку со всеми возможными видами тралов...сейчас ни в какую не получается перелопатил кучу ссылок и не могу найти может кто скинет ссылочку на нее или саму библиотеку
 
Zver4991:
Здравствуйте.....когда то находил на форуме библиотеку со всеми возможными видами тралов...сейчас ни в какую не получается перелопатил кучу ссылок и не могу найти может кто скинет ссылочку на нее или саму библиотеку
https://www.mql5.com/ru/code/7108
 
именноименно то что я искал ..большое спасибо
 

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

void OnTick()
  {
//---
   if(IsNewBar()==true)
     {

     if(TimeHour(TimeCurrent()) >= StartHour && TimeHour(TimeCurrent()) <= EndHour)
     {
          if(ExistPositions(NULL,-1,0,-1)==false)
{
OpenPosition(Symbol(),OP_SELL,0.1,Bid+sl*Point,Bid-tp*Point);
OpenPosition(Symbol(),OP_BUY,0.1,Ask-sl*Point,Ask+tp*Point);
}
}
   }  
  }
должны просто открываться два ордера при условии что нету открытых ордеров и в определенное время 
функции брал из ветки кима
пробовал магик добавлять все равно не работает
тупо игнорируется функция на проверку открытых ордеров
и открываются позиции на каждом баре
 
Zver4991:

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

А почему ты считаешь что "тупо игнорируется..." может так работает что всегда возвращает false. То есть просто не видит открытых ордеров или ещё хуже... так задумано:)))
 
AlexeyVik:
А почему ты считаешь что "тупо игнорируется..." может так работает что всегда возвращает false. То есть просто не видит открытых ордеров или ещё хуже... так задумано:)))


это взятая функция из ветки
/*Предназначена для проверки наличия открытых покупок или продаж. Аналогична функции ExistOrders. По умолчанию осматривает все позиции: текущего и других инструментов. Конкретизировать отбор можно комбинацией фильтров - параметров функции:

sy - Накладывает ограничение на наименование инструмента. По умолчанию параметр равен "" - отсутствие ограничений, то есть любой инструмент. Если передать NULL, то отбор позиций будет ограничен текущим инструментом.
op - Накладывает ограничение на тип позиции (Buy/Sell). По умолчанию ограничение отсутствует, то есть проверяется наличие позиции любого типа. Допустимые значения параметра -1, OP_BUY и OP_SELL.
mn - Накладывает ограничение на идентификационное ("магическое") число позиции. По умолчанию ограничение отсутствует, то есть проверяется наличие позиции с любым магическим числом.
ot - Накладывает ограничение на время открытия позиции. Проверяется, чтобы позиция была открыта позже значения данного параметра. По умолчанию ограничение отсутствует, то есть проверяется наличие позиции с любым временем открытия.
*/
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 06.03.2008                                                     |
//|  Описание : Возвращает флаг существования позиций                          |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    ot - время открытия             ( 0   - любое время открытия)           |
//+----------------------------------------------------------------------------+
bool ExistPositions(string sy="",int op=-1,int mn=-1,datetime ot=0)
  {
   int i,k=OrdersTotal();

   if(sy=="0") sy=Symbol();
   for(i=0; i<k; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==sy || sy=="")
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(op<0 || OrderType()==op)
                 {
                  if(mn<0 || OrderMagicNumber()==mn)
                    {
                     if(ot<=OrderOpenTime()) return(True);
                    }
                 }
              }
           }
        }
     }
   return(False);
  }
хелп плиз если что то не так в ней
 
Zver4991:

это взятая функция из ветки
Кода хуже чем у кима я не встречал ни у кого, но тем не менее распиарен по всему тырнету.

Но если тебе сложно самому написать такую проверку, пользуйся тем что есть... Попробуй сделать так

if(ExistPositions(Symbol(),-1,-1,0)==false)
Причина обращения: