Для MQL5 функционал вышел под экономический календарь _https://www.mql5.com/ru/docs/calendar
Ни статей, ни примеров пока нет ни где, было бы очень актуально записать урок по этой теме, если не затруднит.
Обучение языку MQL5 под MetaTrader 5📌
От pavlus777, 1 августа, 2016 в Уголок Программиста
http://tlap.io/otlichiya-mezhdu-mql4-i-mql5/
Новый урок
Очень интересно было бы по Канвасу видео посмотреть..так с казать с самого простого начала. В сети очень мало инфы по его использованию для новичками.
Для MQL5 функционал вышел под экономический календарь _https://www.mql5.com/ru/docs/calendar
Ни статей, ни примеров пока нет ни где, было бы очень актуально записать урок по этой теме, если не затруднит.
Готово
http://tlap.io/mql5-pishem-novostnoj-sovetnik/
Господа программисты MQL5 да и все остальные форумчане, как известно, в МТ5 встречные позиции по одному инструменту перекрываются. Замки, как МТ4 не поставишь. А хотелось бы. Очень хотелось бы иногда. Идея проста - хеджироваться по корреллируемой валютной паре.Не совсем замок, но все же. Пересчитать объем по стоимости пункта, можно приплести сюда волатильность и вперед. Спать спокойно не даст, но все же реальная страховка. Особенно для СОВЕТНИКА.
Господа программисты MQL5 да и все остальные форумчане, как известно, в МТ5 встречные позиции по одному инструменту перекрываются. Замки, как МТ4 не поставишь. А хотелось бы. Очень хотелось бы иногда. Идея проста - хеджироваться по корреллируемой валютной паре.Не совсем замок, но все же. Пересчитать объем по стоимости пункта, можно приплести сюда волатильность и вперед. Спать спокойно не даст, но все же реальная страховка. Особенно для СОВЕТНИКА.
В МТ5 уже довольно давно можно открывать замок или локироваться.
https://www.mql5.com/ru/articles/2299
Есть еще брокеры, которые для МТ5 разрешают только неттинговые позиции.
Если советник не под конкретного брокера пишется, я бы перестраховался. Если память не изменяет, там функция есть AccountInfoInteger(ACCOUNT_MARGIN_MODE) для проверки типа счета
Есть еще брокеры, которые для МТ5 разрешают только неттинговые позиции.
Если советник не под конкретного брокера пишется, я бы перестраховался. Если память не изменяет, там функция есть AccountInfoInteger(ACCOUNT_MARGIN_MODE) для проверки типа счета
Собрали все уроки в единый курс:
http://tlap.io/programmirovanie-na-mql5-kurs/
Приветствую всех.
Вопрос от новичка по 2-му уроку - Работа с ордерами.
Почему-то редактор не видит "MqlTradeRequest o_request".
Изменено 29 июня, 2019 пользователем Elkino
16 часов назад, Elkino сказал:Почему-то редактор не видит "MqlTradeRequest o_request".
"о_" может раскладка языка другую английская "o" или русская "о" похоже визуально, но с точки программирования это разные вещи.
Еще может MQL еще не подхватил "о_". Попробуй написать в ручную и скомпилировать код. И тут либо не будет ошибок и пойдет все как по маслу, либо будут ошибки и они тебе подскажут в чем проблема.
Изменено 30 июня, 2019 пользователем MikR0ReR
Здравствуйте, подскажите пож, возможно ли в МТ5(mql5) использовать внешнюю dll.
Куда ее копировать? Как Вызывать ?
Спасибо.
2 часа назад, berlios сказал:возможно ли в МТ5(mql5) использовать внешнюю dll.
Спасибо за подсказку, но у меня не получается.
#import "MQL5\Libraries\permvar2.dll"
.
.
Ошибка :
'#import' - #import was not closed stend_mq52.mq5 11 1
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
Спасибо за напряги, все скомпелировалось.
Однако оказалось все напрасно, dll оказывается 32-битная, mql5 - ругается.
39 минут назад, berlios сказал:Однако оказалось все напрасно, dll оказывается 32-битная, mql5 - ругается.
Если импортируемая функция имеет разные варианты вызова для 32-х и 64-х битной версий Windows, то необходимо импортировать оба и явно вызывать нужный вариант функции с помощью переменной _IsX64.
Т.е насколько я понимаю 32-разрядную dll в mql5 вызывать можно.
Или нельзя ?
знаю, что это просто, но не могу сообразить. подскажите пжл
нашла на форуме как делают зиг заг на осцилляторе и на этом примере решила строить свой индюк. но не могу сообразить как сделать так, чтобы линия шла беспрерывно
линия строится по зонам перекуплености осциллятора на графике цены. на скрине начертила как хочу чтобы работал индюк.
будет 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); } //+------------------------------------------------------------------+
Изменено 26 августа, 2019 пользователем 0ll
В 03.07.2019 в 17:00, MikR0ReR сказал:Если импортируемая функция имеет разные варианты вызова для 32-х и 64-х битной версий Windows, то необходимо импортировать оба и явно вызывать нужный вариант функции с помощью переменной _IsX64.
MikR0ReR, Вы дали ссылки для способа вызова 32 разрядной dll в МТ5, но у меня ничего не получается.
Если есть такая возможность, подскажите, где посмотреть реальный код (пример) вызова dll_32 для МТ5.
Или же может кто подскажет как на Win_64 установить 32-разрядный МТ5, очень надо.
Спасибо.
2 часа назад, berlios сказал:Или же может кто подскажет как на Win_64 установить 32-разрядный МТ5, очень надо.
Скопировав установленный терминал исключительно ИЗ Windows х32. Поставь виртуальную машину с Win_32, от туда скопируй.
MetaTrader5 64 => dll 64
MetaTrader5 32 => dll 32
41 минуту назад, MikR0ReR сказал:Скопировав установленный терминал исключительно ИЗ Windows х32. Поставь виртуальную машину с Win_32, от туда скопируй.
MetaTrader5 64 => dll 64
MetaTrader5 32 => dll 32
Прошу прощения, но что-то я не догоняю. Терминал МТ5 ? из Win x32 ? У меня Win x64 и установлен МТ5 х64.
Если можно, подробнее.
Спасибо.
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).
не догоняешь, спрашивай не стесняйся.
Изменено 21 августа, 2019 пользователем MikR0ReR
1 час назад, MikR0ReR сказал:Скопировав установленный терминал исключительно ИЗ Windows х32. Поставь виртуальную машину с Win_32, от туда скопируй.
MetaTrader5 64 => dll 64
MetaTrader5 32 => dll 32
Прошу прощения, но что-то я не догоняю. Терминал МТ5 ? из Win x32 ? У меня Win x64 и установлен МТ5 х64.
Если можно, подробнее.
Спасибо.
Спасибочки, уже догнал, буду пробовать.
В 03.07.2019 в 17:00, MikR0ReR сказал:Если импортируемая функция имеет разные варианты вызова для 32-х и 64-х битной версий Windows, то необходимо импортировать оба и явно вызывать нужный вариант функции с помощью переменной _IsX64.
MikR0ReR, Вы дали ссылки для способа вызова 32 разрядной dll в МТ5, но у меня ничего не получается.
Если есть такая возможность, подскажите, где посмотреть реальный код (пример) вызова dll_32 для МТ5.
Или же может кто подскажет как на Win_64 установить 32-разрядный МТ5, очень надо.
Спасибо.
MikR0ReR, еще раз спасибо, все срослось и даже работает.
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем

