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

 
Aleksey Verbin:

Здраствуйте, у меня есть одна проблема.

Вместо русских букв у меня иероглифы. Попробовал изменить региональные настройки, но не помогло. Знаете какие-то рабочие методы?

Где?
 

 Добрый вечер всем!

 У меня сложилась ситуация в советнике. Что советник не определяет есть по инструменту сделка или нету. 

Как ее решить не знаю, так как нужно чтобы именно по определенному инструменту определял. Даже точнее! Не могу найти функцию такую(((

пробывал написать такое:

 if(OrderSymbol() != "EURUSD")

{

......

 
михаил мосинзов:

 Добрый вечер всем!

 У меня сложилась ситуация в советнике. Что советник не определяет есть по инструменту сделка или нету. 

Как ее решить не знаю, так как нужно чтобы именно по определенному инструменту определял. Даже точнее! Не могу найти функцию такую(((

пробывал написать такое:

 if(OrderSymbol() != "EURUSD")

{

......

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);
}
 
михаил мосинзов:

 Добрый вечер всем!

 У меня сложилась ситуация в советнике. Что советник не определяет есть по инструменту сделка или нету. 

Как ее решить не знаю, так как нужно чтобы именно по определенному инструменту определял. Даже точнее! Не могу найти функцию такую(((

пробывал написать такое:

 if(OrderSymbol() != "EURUSD")

{

......

проверяйте в цикле каждый ордер на соответствие magic и символа

... на каком языке вы писали советника, MQL4 или MQL5?

 
Насколько ресурсоемка функция
 Sleep() 

в сервисах хочу запускать  один раз в час ? это правильное решение или лучше что то другое?

 

Почему терминал не все тики учитывает?

datetime st = 0;
int tics = 0;

//---------------------------------------------------------

ArraySetAsSeries(time,true);
   ArraySetAsSeries(tick_volume,true);
   
   if(prev_calculated == 0) st = time[0];
   
   else if(time[0] != st)
     {
      tics++;
      Alert("T - ",tics," TV - ",tick_volume[0]);
     };


Просто я написал большое полотно расчётов и мне важно знать сколько тиков рассчитано / пропущено

* ЭТО ВАЖНО, так как стратегия скальперская

 
BillionerClub:
Насколько ресурсоемка функция

в сервисах хочу запускать  один раз в час ? это правильное решение или лучше что то другое?

Лучше так

if(TimeMinute(time[i])==0)
 

Всем добрый день! Где-то выше уже спрашивал, нужно ли для торговли советником на реале убирать проверку появления нового бара чтобы всё по тикам исполнялось? Мне ответили, что для реала нужно всё по тикам контролировать. В связи с этим у меня есть следующий вопрос. Если на реале всё будет исполняться по тикам, то ордера сейчас открываются вот таким образом.

void OnTick()
{
//--- АО БАЙ--

   /*УСЛОВИЕ 1*/
   if(flag_screen1==en_vbIkl_screen1 &&flag_screen2==en_vbIkl_screen2)
   { // НАЧАЛО УСЛОВИЕ 1
   if(ao_buy!=EMPTY_VALUE && count_orders_market_buy ==0)
   {
    if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_market_buy)) Print("Buy Open"); // ОТКРЫВАЕМ БАЙ ОРДЕР
   }
   } // КОНЕЦ УСЛОВИЕ1


}

Получается, что если что-то пойдёт не так, то мой советник на каждом тике будет долбить сервер, и мой счёт просто отключат от авто торговли, раз я по хорошему не умею понимать. Какую проверку нужно сделать и как её сделать, чтобы при ошибке, или ещё каким-то не хорошем событии мой советник не долбал сервер и меня просто не забанили за такие вещи? Напишите пожалуйста в чём суть этой проверки и как она на словах работает, а уже потом код снабжённый комментариями скиньте. P/S прошу  не проходить мимо знающих людей, а по братски помочь- надо же грааль допилить;-) О_о))))))))

 
DanilaMactep:

Всем добрый день! Где-то выше уже спрашивал, нужно ли для торговли советником на реале убирать проверку появления нового бара чтобы всё по тикам исполнялось? Мне ответили, что для реала нужно всё по тикам контролировать. В связи с этим у меня есть следующий вопрос. Если на реале всё будет исполняться по тикам, то ордера сейчас открываются вот таким образом.

Получается, что если что-то пойдёт не так, то мой советник на каждом тике будет долбить сервер, и мой счёт просто отключат от авто торговли, раз я по хорошему не умею понимать. Какую проверку нужно сделать и как её сделать, чтобы при ошибке, или ещё каким-то не хорошем событии мой советник не долбал сервер и меня просто не забанили за такие вещи? Напишите пожалуйста в чём суть этой проверки и как она на словах работает, а уже потом код снабжённый комментариями скиньте. P/S прошу  не проходить мимо знающих людей, а по братски помочь- надо же грааль допилить;-) О_о))))))))

Сначала определись сколько ордеров надо открывать при исполнении условия

как это расчитывается

count_orders_market_buy 
 
DanilaMactep:

Где-то выше уже спрашивал, нужно ли для торговли советником на реале убирать проверку появления нового бара чтобы всё по тикам исполнялось?

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