Программирование - это просто
Advertisement
Главная
12.06.2026 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Проект "Битва роботов". Шаг 1. Создание виртуальной биржи Печать E-mail
Автор megabax   
28.09.2013 г.
Структура программы на примере простейшей программы

Проект "Битва роботов". Шаг 1. Создание виртуальной биржи

Раздумывая над трейдингом, алгоритмами биржевых роботов и торговыми стратегиями, я решил создать некий полигон, где буду моделировать поведение трейдеров и тренировать роботов. Об этом я писал в статье Волновой анализ. Шаг 3. Системное мышление в трейдинге, см. самый конец статьи. Спрашивается, а зачем нужна  виртуальная биржа, почему бы не тренировать роботов сразу на реальном фондовом рынке? А все дело в том, что я хочу изучить поведение других участников рынка и процессы в нем  на модели. Именно поэтому и родился экспериментальный проект "Виртуальная биржа. Битва роботов".  А еще к созданию этого проекта меня подтолкнул другой проект: "генетический алгоритм". В какой то мере, это продолжение экспериментов с ГА. Кстати, генетическому алгоритму у меня в платном разделе посвящен ряд статей, см. анонсы.

И так, несколько слов о будущей виртуальной бирже. Во первых, на ней будут торговать как роботы, в которых запрограммирован алгоритм какой либо торговой стратегии, в том числе стратегии, работающие на истории котировок а так же спредеры, скальперы и так далее.  Так же там будут торговать роботы, моделирующие поведение реальных трейдеров. Ну,  плюс, конечно, роботы, работающие на генетическом алгоритме, между которыми будет происходить естественный отбор. Самых лучших я выпущу тренироваться на реальных котировках, на который они будут проходить второй тур естественного отбора.

В этом цикле своих публикаций я буду выкладывать описание того, что я сделал и что у меня получилось, так сказать, отчет об экспериментах.

И так, эксперимент первый. Я создал стакан, куда роботы случайным образом кидают заявки. Диапазон рандомных числе следующий:

  • Для цены от 1 до 100

  • Для количества от 1 до 10

  • Покупать или продавать с вероятность 50 на 50.

Пока это даже не робот, а так, некий экспериментальный скриптик, написанный на C#:

        private void button2_Click(object sender, EventArgs e)

        {

            string path = "C:\\1\\om\\";

            Random rnd = new Random();

            Order order;

            StringBuilder sb = new StringBuilder();

            for (int i = 1; i < 1000; i++)

            {

                order = new Order();

                order.volume = rnd.Next(1, 10);

                order.price = rnd.Next(1,100);

                order.state = OrderState.active;

                if (rnd.Next(100) >= 50)

                {

                    order.operation = OrderOperation.buy;

                }

                else

                {

                    order.operation = OrderOperation.sell;

                }

                glass.putOrder(order);

            }

            for (int i = 1; i < glass.ticks.Count; i++)   

            {

                sb.AppendFormat("{0}; {1};\n", i, glass.ticks[i].ToString());

            }

            System.IO.File.WriteAllText(path+"log.txt", sb.ToString());

        }

 

Здесь еще не учитываются ни денежные средства, ни общее количество акций (это будет следующий шаг). Все полученные таким образом тики я вывел в лог и построил график.

 

Сжатый график:

Проект "Битва роботов". Шаг 1. Создание виртуальной биржи

 

увеличенный кусок сжатого графика:

Проект "Битва роботов". Шаг 1. Создание виртуальной биржи

 

Последнее обновление ( 28.09.2013 г. )
 
« След.
 
© 2026 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги