Ошибки, баги, вопросы - страница 6

 
Prival:

в справке написано

 int day_of_year;    // порядковый номер в году (1 февраля - это 32-ой день в году)
 

 У меня почему то все время выходит, что он 31 ((

скрипт прилагаю

в файле  

2010.02.01 00:00:00    143.832    143.839    143.758    143.771    186    2010    2    1    0    0    1    31

 

Это - ошибка в документации. Нумерация дней в году идёт с 0. Спасибо.
 
stringo:
Это - ошибка в документации. Нумерация дней в году идёт с 0. Спасибо.
я понимаю что это сложнее, но вроде привычнее (для обывателя. для програмера все нормально). 1 января это 1 день в году. Мне кажеться в справке правильно.
 
Prival:
я понимаю что это сложнее, но вроде привычнее (для обывателя. для програмера все нормально). 1 января это 1 день в году. Мне кажеться в справке правильно.
Мы транслируем стандартную системную структуру времени на нашу структуру MqlTime
 
Почему-то не могу скачать терминал с сервера, пишет что "не удалось загрузить данные с сервера", в чем проблема?
 

Здравствуйте, помогите перевести с мт4 в мт5 функцию. Я её перевёл но что то тут не так, если не трудно выложите правильный код а то я не очень в MQL. Только начинаю изучать.

 //+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//--- input parameters

input double   Lots=0.1;
input bool     MM = true;
input double   Risk = 10;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
if( MM )double Lots = LotSon();      //вызов функции LotSon 
  }
//+------------------------------------------------------------------+
double LotSon()
{
  double LotMin     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
  double LotMax     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
  double Lots       = AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000.0 * Risk;
  double Lots       = MathMin(Lotmax,MathMax(Lotmin,Lots));
 
     if (LotMin < 0.1)Lots = NormalizeDouble(Lots,2);
     else
     {
     if (LotMin < 1.0)Lots = NormalizeDouble(Lots,1);
     else Lots = NormalizeDouble(Lots, 0);
     }
     if (Lots < LotMin) Lots = LotMin;
     if (Lots > LotMax) Lots = LotMax;
}

Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 

А как у вас код цветной получается?

 
FEDOR_MQL:

А как у вас код цветной получается?

Статья MQL5 Community - Памятка пользователя:

Кнопка   предназначена для вставки исходного кода MQL в текст сообщения. При нажатии появляется пустое окно, в которое необходимо вставить код и далее нажать кнопку Вставить. Для отмены вставки кода необходимо нажать кнопку Отмена.

Не рекомендуется выделять код полужирным шрифтом, чтобы выделить как-то по смыслу определенные куски. Дело в том, что в разных операционных системах и браузерах моноширинные шрифты отображаются по разному. Например, в Windows Vista используется моноширинный шрифт Consolas, у которого полужирное начертание для 10 размера практически не отличимо от обычного.

 
FEDOR_MQL:

Здравствуйте, помогите перевести с мт4 в мт5 функцию. Я её перевёл но что то тут не так, если не трудно выложите правильный код а то я не очень в MQL. Только начинаю изучать.


 //+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//--- input parameters

input double   Lots=0.1;
input bool     MM = true;
input double   Risk = 10;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if( MM ) Lots = LotSon();      //вызов функции LotSon 
  }
//+------------------------------------------------------------------+
double LotSon()
{
  double LotMin     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
  double LotMax     = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
  double LotStep    = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
  double Lot        = AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000.0 * Risk;
  Lot               = MathMin(Lotmax,MathMax(Lotmin,Lot));
  
  if (Lot < LotMin) Lot = LotMin;
  if (Lot > LotMax) Lot = LotMax;
  // Вариант первый
  switch(LotStep)
  {
   case 0.01: return(NormalizeDouble(Lot,2));
   case 0.1 : return(NormalizeDouble(Lot,1));
   case 1.0 : return(NormalizeDouble(Lot,0));
  }
  // Вариант второй
  // if (LotStep == 0.01)return(NormalizeDouble(Lot,2));
  // if (LotStep == 0.1) return(NormalizeDouble(Lot,1));
  // if (LotStep == 1.0) return(NormalizeDouble(Lot,0));
  // Вариант третий
  // if (LotStep == 0.01)return(NormalizeDouble(Lot,2));
  // else if (LotStep == 0.1) return(NormalizeDouble(Lot,1));
  // else if (LotStep == 1.0) return(NormalizeDouble(Lot,0));
  
}
 

Хорошо будем пробовать. Всем Спасибо! А я вобще по теме такие вопросы задаю? Или мне вдругое место надо? Зарание за ответ спасибо

 

А при данной стади развития: параметры, вызов функции и сама функция должно показывать ошибки при компиляции или нет. Если да то почему? У меня ошибки показывает

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
Причина обращения: