Очень заинтересовала тема "генетического програмирования" , это как ген. оптимизация только на стероидах, ГА сам может создавать формулы, даже программы, кароч. мощная тема, библы есть.
Можно придумывать всякие сложные комбинации..
поиск формулы:
1: In log(sin(cos(2))) : NaNs produced
2: In log(cos(3) + distance) : NaNs produced
3: In log(cos(log(sqrt(distance^2)))) : NaNs produced
4: In sqrt(log(distance^2)) : NaNs produced
5: In log(sin(sqrt(sqrt(distance^2)))) : NaNs produced
6: In log(log(cos(1)) - sin(3)) : NaNs produced
7: In log(distance^3 - (distance^1 + sin(1))) : NaNs produced
8: In log(distance * sin(distance)) : NaNs produced
9: In log(log(distance * sin(distance))) : NaNs produced
10: In log(cos(sqrt(log(distance + (distance + 2))))) : NaNs produced
11: In log(cos(distance)) : NaNs produced
12: In sqrt(sin(log(distance^2 + distance^2)) - distance) : NaNs produced
13: In sqrt(cos(distance^2)) : NaNs produced
14: In log(cos(3)) : NaNs produced
15: In log(log(sqrt(distance^4))) : NaNs produced
16: In log(cos(distance)) : NaNs produced
17: In log(sin(sin(log(cos(distance))))) : NaNs produced
18: In sqrt(distance - 3) : NaNs produced
19: In log(2 - log(distance^3)) : NaNs produced
20: In sqrt(distance - (2 - distance^4)) : NaNs produced
......
....
...
признаков, моделей, правил итп.. Вещь! , буду разбираться..
Знаю ответ за ранние но все же спрошу - кто то пробовал?
Всем зарасти! Нашел (для себя) прикольный способ проверить свои mql-писульки на пайтон, а также значительно ускорить работу некоторых функций в нем, с помощью dll.
Вот исходная функция на mql5 которую я хочу запихать в пайтон. Тут просто ищутся минимумы максимумы цены по ее сглаженному образцу.
1. Где ни будь, в визуалстудио или в кодблоксе компилим свою dll. Там все просто, в файле .cpp пилим свою функцию, в файле .h объявляем её. Пример который у меня работал в приложении к сообщению. В папке файл проекта кодблокс, файлы main .cpp, main .h , в папке \bin\Debug файл my_lib.dll. Короче вот заголовок функции на c++:
void DLL_EXPORT GetLocalMaxMin(double* x_sm[],double* x_rl[], double* loc_max[], double* loc_min[], int N, bool real_price)
{
...
}
2 В пайтон делаем следущее:
from ctypes import *
my_dll = cdll.LoadLibrary("my_dll/my_lib.dll") #загружаем свою DLL
my_dll.GetLocalMaxMin.argtypes = [POINTER(c_double),
POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int, c_bool] #определяем типы входных аргументов функции через атрибуты ctypes
my_dll.GetLocalMaxMin.restype = None #определяем типы выходных данных
...
# y - список цен
# y_sm - список сглаженных цен
# len(y)=len(y_sm) - длина списков одинаковая
x_sm = (c_double * len(y))(*y_sm) #создаем указатель на массив x_sm размером len(y_sm) предаем туда указатель на массив y_sm
x_rl = (c_double * len(y))(*y) #создаем указатель на массив x_rl размером len(y) предаем туда указатель на массив y
loc_max = (c_double * len(y))() #создаем указатель на массив loc_max размером len(y) заполный 0.0
loc_min = (c_double * len(y))() #создаем указатель на массив loc_min размером len(y) заполный 0.0
my_dll.GetLocalMaxMin(x_sm, x_rl, loc_max, loc_min, len(y), True) #вызываем функцию и передаем туда все что насоздавали
print(list(loc_max),list(loc_min)) #смотрим что получилось
Это не истина в последней инстанции, есть дополнения, или другие варианты, пишите.
Всем зарасти! Нашел (для себя) прикольный способ проверить свои mql-писульки на пайтон, а также значительно ускорить работу некоторых функций в нем, с помощью dll.
Вот исходная функция на mql5 которую я хочу запихать в пайтон. Тут просто ищутся минимумы максимумы цены по ее сглаженному образцу.
Это делается в несколько шагов
1. Где ни будь, в визуалстудио или в кодблоксе компилим свою dll. Там все просто, в файле .cpp пилим свою функцию, в файле .h объявляем её. Пример который у меня работал в приложении к сообщению. В папке файл проекта кодблокс, файлы main .cpp, main .h , в папке \bin\Debug файл my_lib.dll. Короче вот заголовок функции на c++:
2 В пайтон делаем следущее:
Это не истина в последней инстанции, есть дополнения, или другие варианты, пишите.
А чего вы хотите добиться? Если скорости, то не используйте
ArrayResize(loc_max,ArraySize(loc_max)+1);
внутри цикла, а 1 раз до вызова функции задайте нужный размер, как вы сделали это в С++ и питоне, или зарезервируйте его 3-м параметром
Сейчас каждый вызов ArrayResize, создает новый блок в памяти, копирует в него старый и удаляет старый. Это оооочень медленно.
И
ArraySize(loc_max)
можно не каждый раз делать, а хранить в переменной.
Попробуйте, может и не придется раскидывать простую функцию на 3 разных языка программирования. Разработчики говорят, то MQL соизмерим по скорости с С++, а в некоторых вещах и быстрее.
А зачем Питон, если DLL можно сразу из MQL вызвать?
у каждого свое видение ..... Истине на это наплевать, она не знает никого))))
Заголовок темы то можно прочесть
Заголовок темы то можно прочесть
Не один, уже хорошо... (в теме в смысле) а остальные не в счет...
Очень заинтересовала тема "генетического програмирования" , это как ген. оптимизация только на стероидах, ГА сам может создавать формулы, даже программы, кароч. мощная тема, библы есть.
Можно придумывать всякие сложные комбинации..
поиск формулы:
признаков, моделей, правил итп.. Вещь! , буду разбираться..
Знаю ответ за ранние но все же спрошу - кто то пробовал?
Знаю ответ за ранние но все же спрошу - кто то пробовал?
болие лимени пробывал
доббав в МГУА других формуль и получи
болие лимени пробывал
доббав в МГУА других формуль и получи
типа да, но нет, МГУА захлебнется от количества вариантов, тут простор побольше на много, но Ивахненко канешн красавчик, смотрел на 50 лет вперед
типа да, но нет, МГУА захлебнется от количества вариантов, тут простор побольше на много, но Ивахненко канешн красавчик, смотрел на 50 лет вперед
ну тибе ведней
....
Легкая , хорошая статья про возможности генетического програмирования
https://blog.ephorie.de/symbolic-regression-genetic-programming-or-if-kepler-had-r
Всем зарасти! Нашел (для себя) прикольный способ проверить свои mql-писульки на пайтон, а также значительно ускорить работу некоторых функций в нем, с помощью dll.
Вот исходная функция на mql5 которую я хочу запихать в пайтон. Тут просто ищутся минимумы максимумы цены по ее сглаженному образцу.
Это делается в несколько шагов
1. Где ни будь, в визуалстудио или в кодблоксе компилим свою dll. Там все просто, в файле .cpp пилим свою функцию, в файле .h объявляем её. Пример который у меня работал в приложении к сообщению. В папке файл проекта кодблокс, файлы main .cpp, main .h , в папке \bin\Debug файл my_lib.dll. Короче вот заголовок функции на c++:
2 В пайтон делаем следущее:
Это не истина в последней инстанции, есть дополнения, или другие варианты, пишите.
Всем зарасти! Нашел (для себя) прикольный способ проверить свои mql-писульки на пайтон, а также значительно ускорить работу некоторых функций в нем, с помощью dll.
Вот исходная функция на mql5 которую я хочу запихать в пайтон. Тут просто ищутся минимумы максимумы цены по ее сглаженному образцу.
Это делается в несколько шагов
1. Где ни будь, в визуалстудио или в кодблоксе компилим свою dll. Там все просто, в файле .cpp пилим свою функцию, в файле .h объявляем её. Пример который у меня работал в приложении к сообщению. В папке файл проекта кодблокс, файлы main .cpp, main .h , в папке \bin\Debug файл my_lib.dll. Короче вот заголовок функции на c++:
2 В пайтон делаем следущее:
Это не истина в последней инстанции, есть дополнения, или другие варианты, пишите.
Если скорости, то не используйте
внутри цикла, а 1 раз до вызова функции задайте нужный размер, как вы сделали это в С++ и питоне, или зарезервируйте его 3-м параметром
Сейчас каждый вызов ArrayResize, создает новый блок в памяти, копирует в него старый и удаляет старый. Это оооочень медленно.
И
ArraySize(loc_max)можно не каждый раз делать, а хранить в переменной.
Попробуйте, может и не придется раскидывать простую функцию на 3 разных языка программирования. Разработчики говорят, то MQL соизмерим по скорости с С++, а в некоторых вещах и быстрее.
А зачем Питон, если DLL можно сразу из MQL вызвать?
Или у вас какая-то другая цель?