2. адача Анализ Алгоритм Оценка Вывод
Создание устойчивой торговой системы, позволяющей извлекать
прибыль из хаоса цен на биржах
Максимизация
прибыли
Снижение рисков
сделок с
минимальной
прибылью
Оптимизация
алгоритма
Обеспечение максимального объема
сделки в выгодных позициях
Возможность использовать риски для
извлечения максимальной прибыли
Использование релевантных технических
индикаторов
Учет комиссионных сборов
Выявление более выгодных позиций
Учет доступного объема сделки
открытии или закрытии позиции
Максимальное быстродействие
Возможность масштабирования
Тщательный мониторинг и построение
алгоритма на основе анализа истории
0.1
0.05
0
-0.05
-0.1
0.1
0
-0.1
0.07
-0.03
-0.13
1 2 3 4 5 6 7 8 9
3. Задача нализ Алгоритм Оценка Вывод
Анализ в ширину)
Все начинают одинаково
Кому-то не везет
Но побеждают сильнейшие Кто-то чувствует себя комфортно
4. Задача нализ Алгоритм Оценка Вывод
Изменится или сохранится текущая тенденция на рынке?
Parabolic SAR
•Цель параболической
системы — определить допуск в
рамках которого возможно
движение цены, для того, чтобы
оставаться в текущем тренде
•Автоматически определяет
направление движения рынка
на любом участке кроме
первого, поэтому, при
достаточном количестве
периодов для анализа,
первично заданное
направление движения рынка
не имеет значение. Для начала
работы его можно определить
произвольным образом.
Необходимая корректировка
произойдёт автоматически
Адаптивная скользящая средняя
•Скользящие средние обычно
используются с
данными временных рядов для
сглаживания краткосрочных
колебаний и
выделения основных
тенденций или циклов
•Адаптивная скользящая
средняя Кауфмана является
разновидностью индикаторов
скользящих средних используя
методику экспоненциально
сглаженной скользящей
средней стоит отметить, что для
вычисления коэффициента
эффективности используется
фактически индикатор скорости
изменения
Линии Боллинджера
•Индикатор рассчитывается на
основе стандартного
отклонения от простой
скользящей средней. Обычно
отображается поверх графика
цены. Параметрами для расчета
служит тип стандартного
отклонения (обычно двойное) и
период скользящей средней
(зависит от предпочтений
трейдера).
•Отражает текущие отклонения
цены акции, товара или валюты.
Японские свечи
•Желающих купить больше, чем
желающих продать — спрос
превышает предложение —
цена растёт
•Желающих продать больше,
чем желающих купить —
предложение превышает
спрос — цена падает
•Желающих купить столько же,
сколько желающих продать —
спрос и предложение равны —
цена не меняется, «боковой
тренд»
•Состояние неуверенности —
«поворотная точка», после
которой владельцы ценных
бумаг начинают «сбрасывать»
их по любой цене
High-Profit Trading
Построение
аппроксимирующей
параболы и на ее основе
выявление точек смены
тренда
Выявление закономерностей
между amount и
последующим скачками
биржи
5. Задача нализ Алгоритм Оценка Вывод
Стратегия робота основывается на использовании линий
Боллинджера и адаптивной средней Кауфмана
На первых 131 000 значений мат.
ожидание
M(price1-price2) = -0,0393
Дисперсия
D(price1-price2)= 0.0044
мат. ожидания
M( (price1-price2)<0 )= -0.0661
Дисперсия
D( (price1-price2)<0 )= 0.0030
мат. ожидания
M( (price1-price2)>0 )= 0.0355
Дисперсия
D( (price1-price2)>0 )= 0.0012
- Разница котировок на первых 26 000 значениях
- Адаптивная скользящая средняя по 300 значениям
- Простая скользящая средняя по 300 значениям
- Линии Боллинджера
Биржа А
Биржа Б
price1-price2
0.1
0
-0.1
6. Задача Анализ лгоритм Оценка Вывод
Добиваемся финансовой целесообразности на рынке с
помощью HPT
Зада
Начало ча
Входная строка
Парсинг строки
sell or buy
Построение AMA
Построение линий
Боллинджера
Биржа
Выходная строка
Открытие позиции
Закрытие позиции
Пересечение
стоп-лосс
нет
да
query
query
answer
High-Profit
Trading
Adaptive Moving Average
Bollinger bands
7. Задача Анализ Алгоритм Оценка ывод
High-Profit Trading – путь к максимальной прибыли
Достижение максимальной прибыли
Зада
ча
Попытка
прогнозирования
изменений тренда
Тщательный мониторинг и
оптимизация алгоритма
Своевременное
открытие и закрытие
Стабильный
доход
позиций
Правильно
подобранные
коэффициенты
Построение линий Боллинджера
относительно адаптивной
скользящей средней Кауфмана
Наличие стоп-лосса
Правильного анализа
восходящего и
нисходящего тренда
Комплексное
использование
нескольких индикаторов
Использование
зависимости размера
сделки от котировки в
построении линий
Боллинджера
Подбор коэффициентов для
максимальной прибыли
Отсутствие рисков убытка
за счет исключения
невыгодных сделок
8. Задача Анализ Алгоритм Оценка Вывод
Шакбасаров Ринат Наилевич
СПбГУ, ф-т Прикладной Математики – Процессов
Управления, спец.:Информационные технологии, 4
Интернет-проект ImprovY, Winty
Стартап школа ГРАФЕН, SUMIT
Школа лидерства СПБГУ
C#, С++, PHP, HTML-CSS, JavaScript,SQL
About us
Сопов Станислав Игоревич
СПбГУ, ф-т Прикладной Математики – Процессов
Управления, спец.: Прикладная математика и
информатика – 4 курс
Призер и победитель олимпиад
по математике и физике
Алексеев Михаил Александрович
СПбГУ, ф-т Прикладной Математики – Процессов
Управления, спец.: Информационные
технологии
4 курс
Интернет-проект ImprovY, Winty
Стартап школа ГРАФЕН, SUMIT
Студент открытого университета Сколково
High-Profit
Trading
Фединчук Александра Андреевна
СПГГИ (ТУ), ф-т Экономический
спец.: бухгалтерский учет, анализ и аудит
4 курс
ООО «Caterpillar» - бухгалтер – 2012 – н. вр.
«Skymodels» - модель для показов – 2011 – 2012
«СПО» - менеджер по продажам – 2010 - 2011
9. Задача Анализ Алгоритм Оценка Вывод
Приложения
double Trader::Get_Average_KAMA(double diff)
{
double direction=fabs(diff-the_vector[0]);
double volatility=0;
for (int i=1;i<dim_vector;i++)
{
volatility+=fabs(the_vector[i]-the_vector[i-1]);
}
volatility+=fabs(diff-the_vector[dim_vector-1]);
double EfficientyRatio=direction/volatility;
double f=2.0,s=30.0;
double fastest=2/(f+1);
double slowest=2/(s+1);
double smooth=EfficientyRatio*(fastest-slowest)+slowest;
double c_koef=smooth*smooth;
double AMA=diff*c_koef+(1-c_koef)*last_AMA;
last_AMA=AMA;
return AMA;
}
Высчитывание коэффициента AMA
int Trader::Sell_Or_Buy(double diff,double amount)
{
double Average=Get_Average_Diff(); //diff averange
double Average_Amount=Get_Average_Amount(); //diff averange
double Average_KAMA=Get_Average_KAMA(diff); //average KAMA
double Deviation=Get_Deviation(Average); //sigma
Change_History(diff,amount);
double koef_amount =1.0;
koef_amount= 1 - (amount - Average_Amount)/ 300;
if (diff-Average_KAMA>0)
if ( (diff-Average_KAMA < Deviation*koeff*koef_amount) &&
(diff-Average_KAMA>-koeff*Deviation ))
return 0; //not trade
else
return 1; //open position
else
if ( (diff-Average_KAMA < Deviation*koeff) &&
(diff-Average_KAMA>-koeff*Deviation*koef_amount ))
return 0;
else
return 1;
}
Определение позиции