Интересно, что там за такие ужасные навороты, что нужна DLL. Чего в MQL такого нету ?
Физико-математических функций нет
А... Ну, тут речь больше о поставляемых библиотеках, поскольку, вобще говоря, этих функций и в С++ нет.
Лично мне все-таки кажется, что следует всемерно избегать использования ДЛЛ - из-за более сложной поддержки, и более сложного взаимодействия. Но, действительно, если требуются редкие и сложные вычисления - то, ДЛЛ может оказаться вполне разумным компромиссом по сравнению с реализацией этих функций в MQL "с нуля".
А... Ну, тут речь больше о поставляемых библиотеках, поскольку, вобще говоря, этих функций и в С++ нет.
Лично мне все-таки кажется, что следует всемерно избегать использования ДЛЛ - из-за более сложной поддержки, и более сложного взаимодействия. Но, действительно, если требуются редкие и сложные вычисления - то, ДЛЛ может оказаться вполне разумным компромиссом по сравнению с реализацией этих функций в MQL "с нуля".
Подскажите, если знаете, почему не отрисовывается индикатор ? Хочу загрузить close в массив, потом этот массив отобразить.... Код компилируется без ошибок но на графике не рисуется. "Разумно..." :-)
//+------------------------------------------------------------------+ //| Normalisedprice.mq5 | //| q | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "q" #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 //--- plot Normalisedprice #property indicator_label1 "Normalisedprice" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- indicator buffers double NormalisedpriceBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,NormalisedpriceBuffer,INDICATOR_DATA); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { //--- double array; int ArSize; ArSize = ArraySize(price); for(int i=0;i<ArraySize(price);i++) array[i]=price[i]; //--- return value of prev_calculated for next call return(array); PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,); } //+------------------------------------------------------------------+
Подскажите, если знаете, почему не отрисовывается индикатор ? Хочу загрузить close в массив, потом этот массив отобразить.... Код компилируется без ошибок но на графике не рисуется. "Разумно..." :-)
У вас же массив для отображения этот:
NormalisedpriceBuffer[]
а данные записываете в array[]
У вас же массив для отображения этот:
а данные записываете в array[]
Там еще и в коде ошибка - array - это не массив значений, а одно значение. А к нему присваивается, как к массиву...
Неужели это компилируется без ошибок ?
У вас же массив для отображения этот:
а данные записываете в array[]
//--- int ArSize; ArSize = ArraySize(price); for(int i=0;i<ArraySize(price);i++) NormalisedpriceBuffer[i]=price[i]; //--- return value of prev_calculated for next call PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,NormalisedpriceBuffer[]); } //+------------------------------------------------------------------+
Появляется такая ошибка (там где квадратные скобки курсивом)
']' - expression expected Quantum1.mq5 47 62
Спасибо. p.s. 10 минут назад компилировалось немного с другими изменениями, сейчас пока не компилируется... Не могу понять, как вывести на экран буфер (NormalisedpriceBuffer[]), это же массив, цикл надо делать, что-бы поточечно отображать ?
Появляется такая ошибка (там где квадратные скобки курсивом)
Спасибо. p.s. 10 минут назад компилировалось немного с другими изменениями, сейчас пока не компилируется... Не могу понять, как вывести на экран буфер (NormalisedpriceBuffer[]), это же массив, цикл надо делать, что-бы поточечно отображать ?
Закомментируйте вообще эту строку
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,NormalisedpriceBuffer[]);
Последнее значение в этой строке должно быть double, а вы массив пихаете. Вообще сия строка служит для задания "пустого" значения буфера. То есть, либо:
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
либо
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Нужно сделать индикатор который отображается как SMA (среднее) на графике котировки.
Основной код индикатора будет в DLL на C++
Прошу помочь с образцом короткого кода индикатора на MQL5 и передачей в DLL close в виде double.
Основной код DLL представлен в статье на этом сайте https://www.mql5.com/ru/articles/18
DLL надо доделать что-бы в ней появился массив, потом передавался обратно в индикатор и потом отображался на графике.
Не более 5 участников. Когда будет готов индикатор, тем кто помогал, отправлю копию.
?