Регистрацию объявляю открытой.
Все, кто желает участвовать, отписывайтесь здесь. 20 июня 2016 года будут представлены коды примеров исполняемого скрипта с интерфейсами подключения алгоритмов. А ещё через 3 недели, 11 июля 2016 года, начнётся сам чемпионат.
Регистрацию объявляю открытой.
Все, кто желает участвовать, отписывайтесь здесь. 20 июня 2016 года будут представлены коды примеров исполняемого скрипта с интерфейсами подключения алгоритмов. А ещё через 3 недели начнётся сам чемпионат.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Andrey Dik, 2016.06.10 17:24
А вообще идеи есть, или все в процессе обдумывания. Если что, могу поделиться мыслями.
Конечно идеи есть.
Статья - очень хорошо. В каком направлении хочешь написать статью?
Можно и отложить чемпионат, если есть в этом действительно необходимость. Но времени до начала ещё много, чемпионат стартует 11 июля 2016 года.
Конечно есть.
Выкладывай. Осудим.
Статья - очень хорошо. Но ждать уже нельзя. У людей короткая как правило память и быстро забывают с чего всё начинается....
class CFF{ public: virtual double fun(double & x[]){return(0);} virtual string type(){return("");} virtual double value(){return(0);} virtual string note(){return("");} }; class CFF1:public CFF{ public: double fun(double & x[]){ int c=ArraySize(x); double s=0; for(int i=0;i<c;i++){ s+=MathPow(x[i],2); } return(s); } virtual string type(){ return("min"); } virtual double value(){ return(0); } virtual string note(){ return(""); } }; class CFF2:public CFF{ public: double fun(double & x[]){ int c=ArraySize(x); double s=0; double p=0; for(int i=0;i<c;i++){ s+=MathAbs(x[i]); p*=MathAbs(x[i]); } return(s+p); } virtual string type(){ return("min"); } virtual double value(){ return(0); } virtual string note(){ return(""); } };
Такая вот конструкция для выбора исследуемой функции (фф). Базовый класс с виртуальными методами и дочерние классы с различными функциями.
Вот так вот объявляю:
CFF * ff=new CFF1();
или так, в зависимости от того какая функция нужна:
CFF * ff=new CFF2();
В функции оптимизации имеем параметр типа CFF, чтобы в нее передавать указатель на класс с выбранной фф.
***
Методы базового класса:
virtual double fun(double & x[]){return(0);} virtual string type(){return("");}
fun - собственно функция, параметры передаются в массиве типа double.
type - тип функции: min или max - что искать у функции минимум или максимум.
Остальные не нужны, делал для себя? для памяти: value - значение на экстремуме, note - какое-нибудь описание. Для чемпионата они ненужны, особенно value.
***
Сейчас у меня не функция, а класс и в нем метод для установки фф:
void SetFF(CFF * aff){ this.ff=aff; }Потом везде использую this.ff.fun(...);
Для чемпионата класс надо будет поместить в библиотеку. Сделать одну функцию в библиотеке, которая будет вызываться из вне, в этой функции все дела: создание экземпляра класса, установка всех параметров переданных в функцию и т.д.
Имя функции стандартное для всех. Имена файла библиотеки у всех свои.
У проверяющего скрипт. Проверяющий меняет имя импортируемой библиотеки, компилирует, исполняет.
Вот это вот:
CFF * ff=new CFF1();
В скрипте у проверяющего.
Для чемпионата класс надо будет поместить в библиотеку. Сделать одну функцию в библиотеке, которая будет вызываться из вне, в этой функции все дела: создание экземпляра класса, установка всех параметров переданных в функцию и т.д.
Имя функции стандартное для всех. Имена файла библиотеки у всех свои.
У проверяющего скрипт. Проверяющий меняет имя импортируемой библиотеки, компилирует, исполняет.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Чемпионат алгоритмов оптимизации задуман как соревнование для людей ищущих, любознательных, для которых стоять на месте означает движение назад.
Чемпионат - прекрасная возможность проверить свои алгоритмы в жестких конкурсных условиях, которые жестче и требовательнее тех, что встречаются в повседневной жизни. Это шанс убедится, что лучше Вашего алгоритма уже быть не может, что означает уверенность в возможности решения предстоящих жизненных задач, или удостоверится в необходимости или возможности дальнейшего совершенствования и улучшения алгоритма.
Правила:
1. К чемпионату допускаются алгоритмы оптимизации основанные на любых принципах и теориях поиска, абсолютно любые.
2. Каждый участник может представить от своего имени только один алгоритм в исходных кодах или в скомпилированном виде библиотеки *.ex5.
3. По итогам чемпионата участники будут ранжироваться согласно критериям: скорость работы алгоритма, количество запусков фитнес функции, точность нахождения решения.
Условия:
1. Организатор оставляет за собой право отказать в участии любому без объяснения причин.
2. Организатор имеет право участвовать в чемпионате.
3. Организатор отказывается от призов в пользу участников в случае наличия призового фонда от потенциальных спонсоров на момент объявления призовых мест.
Организатор Чемпионата Алгоритмов Оптимизации: Joo.
Смелее, участвуйте и побеждайте. Вполне может случится так, что ваш алгоритм в будущем будет использоваться в штатном оптимизаторе MT, почему бы и нет?