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

 
Igor Makanu:

справка MQL такая же как и справки др.языков

и подразумевает, что Вы имеете хоть небольшой начальный опыт по написанию простых кодов

поэтому слово  "// заполнитель " , большинство и не будут тестировать и проверять, и так ясно

ushort  fill_symbol=' заполнитель'      // заполнитель 

Как то так.

 
awsomdino:

Это значит, что здесь и в подобных случаях можно не использовать это поле?

типа 

(имеется ввиду на сколько это правильно в использовании)

и второй параметр оказывается можно не писать

нет, не так все это

есть такое понятие как "параметр по умолчанию" - где то в справке где термин функции обьясняется должно быть про это написано

но использовать  "параметр по умолчанию" просто: если в справке в описании функции есть знак = , то это параметр по умолчанию и если не пишите ничего самостоятельно на этом месте, то компилятор подставит то что в справке написано

string  IntegerToString(
   long    number,              // число
   int     str_len=0,           // длина строки на выходе
   ushort  fill_symbol=' '      // заполнитель
   )
 

@Igor Makanu

Спасибо, многое стало ясно теперь. Без начальных знаний сложно все

 
Artyom Trishkin:

Простая скользящая средняя с периодом 14, сдвигом 0, рассчитанная по ценам Close на дневном графике текущего символа. Берём значение первого бара (нулевой - текущий день):

А есть возможность быстро получить на скользяшках цену по середине между открытием и закрытием с 0ым сдвигом, ну имеется в виду текущего бара? Или это нужно мудрить, готовых вроде переменных у этой функции нет.

 

Доброго дня всем.

При частичном закрытии ордера в окне алертов появляется предупреждение "OrderClose (28800839, 0.01) error (method: CloseOrderPartial) - trade is not allowed in the expert properties"

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

Возможно кто-то сталкивался с таким?

Код метода для частичного закрытия

//Закрытие ордера на продажу
//NumberOrder = тикет ордера, 0 - закрытие всех ордеров
//ValueClose = объем закрытия ордера
bool CloseOrderSell(int NumberOrder, double ValueClose)
{
   if (NumberOrder == 0)
   {
      for (int i = OrdersTotal() - 1; i >= 0; i--)
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
         {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
            {
               if(OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clrMaroon) == false)
               {
                  Print("Ошибка #" + (string)GetLastError() + " закрытия ордера на продажу #" + (string)OrderTicket());    
                  return false;       
               }
               else
               {
                  if (EnableMgs == true)
                     Print("Ордер на продажу #"+ (string)OrderTicket() +" закрыт на " + (string)ValueClose + " лота");
                  return true;            
               }         
            }      
         }
   }
   else
   {
      if (OrderSelect(NumberOrder, SELECT_BY_TICKET) == true)
      {
         ValueClose = NormalizeDouble(ValueClose * OrderLots(), 2);
         if(OrderClose(OrderTicket(), ValueClose, Ask, Slippage, clrMaroon) == false)
         {
            Print("Ошибка #" + (string)GetLastError() + " закрытия ордера на продажу #" + (string)OrderTicket());   
            return false;
         }
         else
         {
            if (EnableMgs == true)
               Print("Ордер на продажу #"+ (string)OrderTicket() +" закрыт на " + (string)ValueClose + " лота");
            return true;
         } 
      }
      else
         Print("Ошибка #" + (string)GetLastError() + " выбора ордера на продажу #" + (string)NumberOrder + " при закрытии ордера");
   }
   return false;
} 
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
  • www.mql5.com
Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Seric29:

А есть возможность быстро получить на скользяшках цену по середине между открытием и закрытием с 0ым сдвигом, ну имеется в виду текущего бара? Или это нужно мудрить, готовых вроде переменных у этой функции нет.

вам для совы или для индюка?
у них разные лапы, нужно разное крепление скользяшек)

 
Medvedina:

Доброго дня всем.

При частичном закрытии ордера в окне алертов появляется предупреждение "OrderClose (28800839, 0.01) error (method: CloseOrderPartial) - trade is not allowed in the expert properties"

Я думаю что проблема не в методе, а в условиях закрытия.

Что в журнале пишет? Можно скрин?

 
Taras Slobodyanik:

вам для совы или для индюка?
у них разные лапы, нужно разное крепление скользяшек)

Обычная сглаженная (там же есть Эккспоненциальная Сглаженная Средневзвешенная и ещё чё-то там). Мне нужна ну простая может сглаженная скользящая средняя, которая тупо будет проходить по середине между открытием и закрытием. Я так понял такой нет, нужно делать, ведь никому и в голову не придёт что появится такой придурок как я и и сможет использовать такие простые вещи в очень сложных ситуациях, ну зато пришло в голову сделать такие сложные переменные (Simle...).

которые не понятно что рассчитывают и тупо перерисовывают цены. Даже не понятно обращают ли крупные инвесторы внимание на усреднения (напремер 200,30,21,14,7), ну вот мне вообще без сдвига нужна. Если такой нет то сделаю потом.

 
MakarFX:

Я думаю что проблема не в методе, а в условиях закрытия.

Что в журнале пишет? Можно скрин?

Добрый день.

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

 
Seric29:

Обычная сглаженная (там же есть Эккспоненциальная Сглаженная Средневзвешенная и ещё чё-то там). Мне нужна ну простая может сглаженная скользящая средняя, которая тупо будет проходить по середине между открытием и закрытием.

так самому сложить и поделить - (МА1 + МА2 + МА3) / 3 = средняя МА

а если по буферу считать, то iMAOnArray

Причина обращения: