Перейти к содержанию

Обучение языку MQL5 под MetaTrader 5


Рекомендуемые сообщения

Обучение языку MQL5 под MetaTrader 5 Опубликовано

Для MQL5 функционал вышел под экономический календарь _https://www.mql5.com/ru/docs/calendar
Ни статей, ни примеров пока нет ни где, было бы очень актуально записать урок по этой теме, если не затруднит.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
  • Ответов 296
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Здравствуйте, друзья юные программисты! В этой ветке предлагаю обсуждать все возникающие вопросы в процессе освоения тонкостей языка MQL5. В настоящий момент мы записываем цикл уроков по MQL5, пока

Перейти

Уважаемые коллеги, добавлю от себя... По ссылке полный справочник по функциям MQL5, с примерами, который вы можете скачать себе локально. Хорошая штука, рекомендую :) https://yadi.sk/d/BBFYJw_-trnbN

Перейти

Нечеловеческое спасибо за тему >000 ЧИТАЕМ В ПЕРВУЮ ОЧЕРЕДЬ ПОЛНАЯ ДОКУМЕНТАЦИЯ ПО MQL5, ОНЛАЙН, БЕСПЛАТНО И БЕЗ СМС Руководство по интерфейсу // Алгоритимеческий трейдинг на MQL5 // Описание те

Перейти
Обучение языку MQL5 под MetaTrader 5 Опубликовано

Очень интересно было бы по Канвасу видео посмотреть..так с казать с самого простого начала. В сети очень мало инфы по его использованию для новичками.

Ссылка на сообщение
Поделиться на другие сайты

  • 1 month later...
Обучение языку MQL5 под MetaTrader 5 Опубликовано


Для MQL5 функционал вышел под экономический календарь _https://www.mql5.com/ru/docs/calendar
Ни статей, ни примеров пока нет ни где, было бы очень актуально записать урок по этой теме, если не затруднит.


Готово
http://tlap.com/mql5-pishem-novostnoj-sovetnik/
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано

Господа программисты MQL5 да и все остальные форумчане, как известно, в МТ5 встречные позиции по одному инструменту перекрываются. Замки, как МТ4 не поставишь. А хотелось бы. Очень хотелось бы иногда. Идея проста - хеджироваться по корреллируемой валютной паре.Не совсем замок, но все же. Пересчитать объем по стоимости пункта, можно приплести сюда волатильность и вперед. Спать спокойно не даст, но все же реальная страховка. Особенно для СОВЕТНИКА.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано


Господа программисты MQL5 да и все остальные форумчане, как известно, в МТ5 встречные позиции по одному инструменту перекрываются. Замки, как МТ4 не поставишь. А хотелось бы. Очень хотелось бы иногда. Идея проста - хеджироваться по корреллируемой валютной паре.Не совсем замок, но все же. Пересчитать объем по стоимости пункта, можно приплести сюда волатильность и вперед. Спать спокойно не даст, но все же реальная страховка. Особенно для СОВЕТНИКА.


В МТ5 уже довольно давно можно открывать замок или локироваться.
https://www.mql5.com/ru/articles/2299
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано

Есть еще брокеры, которые для МТ5 разрешают только неттинговые позиции.
Если советник не под конкретного брокера пишется, я бы перестраховался. Если память не изменяет, там функция есть AccountInfoInteger(ACCOUNT_MARGIN_MODE) для проверки типа счета

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано

Есть еще брокеры, которые для МТ5 разрешают только неттинговые позиции.
Если советник не под конкретного брокера пишется, я бы перестраховался. Если память не изменяет, там функция есть AccountInfoInteger(ACCOUNT_MARGIN_MODE) для проверки типа счета

Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Обучение языку MQL5 под MetaTrader 5 Опубликовано

Приветствую всех.

Вопрос от новичка по 2-му уроку - Работа с ордерами.

Почему-то редактор не видит "MqlTradeRequest o_request".

Т. е. с 17 строки  после "o_request" не дополняет после точки и в выпадающем списке нет.
o_result нормально видит, в чем может быть дело?

Screenshot_1.jpg

Изменено пользователем Elkino
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
16 часов назад, Elkino сказал:

Почему-то редактор не видит "MqlTradeRequest o_request".

"о_" может раскладка языка другую английская "o" или русская "о" похоже визуально, но с точки программирования это разные вещи.

Еще может MQL еще не подхватил "о_". Попробуй написать в ручную и скомпилировать код. И тут либо не будет ошибок и пойдет все как по маслу, либо будут ошибки и они тебе подскажут в чем проблема.

Изменено пользователем MikR0ReR
  • Спасибо 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано

Здравствуйте, подскажите пож, возможно ли в МТ5(mql5) использовать внешнюю dll.

Куда ее копировать?  Как Вызывать ?

Спасибо.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
2 часа назад, berlios сказал:

возможно ли в МТ5(mql5) использовать внешнюю dll.

https://www.mql5.com/ru/docs/basis/preprosessor/import

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано

Спасибо за подсказку, но у меня не получается.
#import "MQL5\Libraries\permvar2.dll"

.

.

Ошибка :
'#import' - #import was not closed    stend_mq52.mq5    11    1
 

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
1 час назад, berlios сказал:

но у меня не получается

Могу предположить что закрывающего импорта у вас нет.

#import "stdlib.ex5" 				открыли
string ErrorDescription(int error_code); 
#import						закрыли

#import "ExpertSample.dll"			открыли
int    GetIntValue(int); 
#import						закрыли

Почитай "Вызов импортируемых функций" https://www.mql5.com/ru/docs/runtime/imports

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано

Спасибо за напряги, все скомпелировалось.

Однако оказалось все напрасно, dll оказывается 32-битная, mql5 - ругается.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
39 минут назад, berlios сказал:

Однако оказалось все напрасно, dll оказывается 32-битная, mql5 - ругается.

Если импортируемая функция имеет разные варианты вызова для 32-х и 64-х битной версий Windows, то необходимо импортировать оба и явно вызывать нужный вариант функции с помощью переменной _IsX64.

https://www.mql5.com/ru/docs/basis/preprosessor/import

https://www.mql5.com/ru/docs/predefined/_isx64

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • 1 month later...
Обучение языку MQL5 под MetaTrader 5 Опубликовано

знаю, что это просто, но не могу сообразить. подскажите пжл

 

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

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

будет 2 буфера для хая и для лоу. в коде на данный момент 1 буфер покажите на его примере пжл

Спойлер

//+------------------------------------------------------------------+
//|                                                           qw.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot highlow
#property indicator_label1  "highlow"
#property indicator_type1   DRAW_COLOR_ARROW
#property indicator_color1  clrYellow,clrLime
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         highBuffer[];
double         highColors[];

//----------------------------------
#include <Trade\SymbolInfo.mqh>

CSymbolInfo    m_symbol;                     // symbol info object
//-----------------------------------
input int         WPRperiod   =  14;
input double      WPRmax      = -20;
input double      WPRmin      = -80;

int    h;
double wpr[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  
   h=iWPR(Symbol(),Period(),WPRperiod);
    if(h==INVALID_HANDLE)
    {
      Print("Can't load indicator");
      return(INIT_FAILED);
    }
    
    SetIndexBuffer(2,wpr,INDICATOR_CALCULATIONS); 
    
//--- indicator buffers mapping
   SetIndexBuffer(0,highBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,highColors,INDICATOR_COLOR_INDEX);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   PlotIndexSetInteger(0,PLOT_ARROW,159);
   
//---
   return(INIT_SUCCEEDED);
  }
  
  void OnDeinit(const int reason)
  {
   if(h!=INVALID_HANDLE)
    {
      IndicatorRelease(h);
    }
  }  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated, // обработано баров на предыдущем вызове 
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  
  MqlRates rates[]; 
  ArraySetAsSeries(rates,true);
   if(CopyRates(m_symbol.Name(),Period(),0,3,rates)!=3)  
            
   double cl1   = rates[1].close;
   double op1   = rates[1].open;
   double high1 = rates[0].high;
   double low1  = rates[0].low;
//-----------------------------------
  int start;
 //Print(start);
  if(prev_calculated==0)
  {
   start=0;
  }
    else
    {
      start=prev_calculated-1;
    }
//Print(start);
   if(CopyBuffer(h,0,0,rates_total-start,wpr)==-1)
   {
    return(0);
   }
   //Print(highBuffer[i]);
   
   for(int i=start;i<rates_total;i++) 
   {
    highBuffer[i]=EMPTY_VALUE;
    if(wpr[i]>WPRmax){
      highBuffer[i]=high[i];
      highColors[i]=0;
   }

}//Print(highBuffer[0]);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

 

 

Безымянный.png

Изменено пользователем 0ll
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
В 03.07.2019 в 17:00, MikR0ReR сказал:

Если импортируемая функция имеет разные варианты вызова для 32-х и 64-х битной версий Windows, то необходимо импортировать оба и явно вызывать нужный вариант функции с помощью переменной _IsX64.

https://www.mql5.com/ru/docs/basis/preprosessor/import

https://www.mql5.com/ru/docs/predefined/_isx64

MikR0ReR, Вы дали ссылки для способа вызова 32 разрядной dll в МТ5, но у меня ничего не получается.
Если есть такая возможность, подскажите, где посмотреть реальный код (пример) вызова dll_32 для МТ5.
Или же может кто подскажет как на Win_64 установить 32-разрядный МТ5, очень надо.
Спасибо.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
2 часа назад, berlios сказал:

Или же может кто подскажет как на Win_64 установить 32-разрядный МТ5, очень надо.

Скопировав установленный терминал исключительно ИЗ Windows х32. Поставь виртуальную машину с Win_32, от туда скопируй.

MetaTrader5 64 => dll 64

MetaTrader5 32 => dll 32

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
41 минуту назад, MikR0ReR сказал:

Скопировав установленный терминал исключительно ИЗ Windows х32. Поставь виртуальную машину с Win_32, от туда скопируй.

MetaTrader5 64 => dll 64

MetaTrader5 32 => dll 32

Прошу прощения, но что-то я не догоняю. Терминал МТ5 ? из Win x32 ? У меня Win x64 и установлен МТ5 х64.

Если можно, подробнее.

Спасибо.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
33 минуты назад, qbar сказал:

не догоняю

Как я понял у вас dll 32, и перекомпелировать в 64 нет возможности. Далее вы ее, dll 32, хотите запустить в MetaTrader5, тут проблема следующая, у вас MetaTrader5 64. А MetaTrader5 64 не работает с dll32. значит вам нужен MetaTrader5 32. Так как получить MetaTrader5 32 на Win x64? Скопировав ИЗ Windows 32! Как получить Windows 32 на Windows 64? Использовать технологию виртуализации! На виртуальную машину поставить Windows 32, поставить MetaTrader5 32, потом скопировать с папку C:\Program Files\MetaTrader 5 и эту скопированную папку поместить в вашу Win x64 в папку C:\Program Files (x86).

 

не догоняешь, спрашивай не стесняйся.

Изменено пользователем MikR0ReR
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
1 час назад, MikR0ReR сказал:

Скопировав установленный терминал исключительно ИЗ Windows х32. Поставь виртуальную машину с Win_32, от туда скопируй.

MetaTrader5 64 => dll 64

MetaTrader5 32 => dll 32

Прошу прощения, но что-то я не догоняю. Терминал МТ5 ? из Win x32 ? У меня Win x64 и установлен МТ5 х64.

Если можно, подробнее.

Спасибо.

 

Спасибочки, уже догнал, буду пробовать.

 

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано
В 03.07.2019 в 17:00, MikR0ReR сказал:

Если импортируемая функция имеет разные варианты вызова для 32-х и 64-х битной версий Windows, то необходимо импортировать оба и явно вызывать нужный вариант функции с помощью переменной _IsX64.

https://www.mql5.com/ru/docs/basis/preprosessor/import

https://www.mql5.com/ru/docs/predefined/_isx64

MikR0ReR, Вы дали ссылки для способа вызова 32 разрядной dll в МТ5, но у меня ничего не получается.
Если есть такая возможность, подскажите, где посмотреть реальный код (пример) вызова dll_32 для МТ5.
Или же может кто подскажет как на Win_64 установить 32-разрядный МТ5, очень надо.
Спасибо.

MikR0ReR, еще раз спасибо, все срослось и даже работает.

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...