Ни в коем случае нельзя так делать. В MQL4 собственный менеджер
памяти.
Понятно, а жаль. Было бы удобнее мне так делать, ну ладно тогда
большенство кода в скрипт или MQL индикатор перенести.
Ренат, а не подскажите, у меня такая проблема... Я разрабатываю систему атоматической оптимизации во время торговли. В процессе стандартной оптимизации у меня постоянно меняются параметры индикаторов, система пытается запомнить каждый из них, и в итоге перегружается память, что приводит к остановке первого прохода. Нельзя ли каким-то образом огрничить запоминание?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как например здесь
Объявляем в теле индикатора
double dyn_array[];
Прототип импортируемой функции из Dll в индикаторе будет
int processTick(double& dyn_array[]);
В индикаторе передам этот массив
int num_of_elem = processTick(dyn_array);
А потом печатаем первый элемент массива добавленный в DLL для теста
Print("dyn_array[0] = ", dyn_array[0]);
А в длл выделю память под массив и добавлю туда элементы. Пока смысловой нагрузки функция не имеет. Только для теста написана
MQL4export int __stdcall processTick(double* dyn_array) {
if(dyn_array) delete dyn_array;
dyn_array = new double[100];
dyn_array[0] = 1.0
return 100.0;
}