Публикуем исходные коды торговых стратегий на GitHub!

Начинаем публиковать исходные коды на GitHub.

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


В настоящий момент доступны следующие стратегии:

1) Классическая арбитражная стратегия


Arbitrage


Описание: Покупка и продажа спреда пары спот-фьючерс на основе индикатора Bollinger Bands.


Исходные данные: Свечки или тики. Рассмотрены оба варианта.


Алгоритм: Спред пересекает канал Боллинджера снизу вверх — продаем спред, сверху вниз — покупаем спред. При пересечении средней линии Боллинджера выходим из позиции.

2) Стратегия Черепах (Turtle Rules)


TurtleTrades


Описание: За основу взята стратегия Черепах — www.benvanvliet.net/Downloads/turtlerules.pdf


Исходные данные: Свечки или тики. Рассмотрены оба варианта. Свечки используются для расчета индикаторов. Для более точного входа в позицию и расчета стоп заявок можем использовать тики.


Алгоритм: Строится два канала Дончиана — ChannelOne и ChannelTwo. Период внутреннего канала ChannelTwo устанавливаем в процентах относительно внешнего канала ChannelOne.


Входим в позицию: Покупаем, когда цена касается канала UpperChannelOne. Продаем, когда цена касается канала LowerChannelOne.


Закрываем позицию: Покупаем, когда цена касается канала UpperChannelTwo. Продаем, когда цена касается канала LowerChannelTwo.


Дополнительно:
— Стратегия intraday. Торгуем с 10:05, в конце торговой сессии (23:40) закрываем все открытые позиции — метод CheckIntraDayTime()
— При входе/выходе ориентируемся на риск, который рассчитываем по формуле: Risk = k * atr, где к — коэффициент риска, atr — текущее значение индикатора ATR.
— Для расчета стоп заявок используем соответствующие методы MarkуtToMarket для тиков и свечек.
— Объем входа в позицию рассчитываем по формуле: Volume = Math.Min(currentFunds * riskPerTrade / risk, currentFunds / initialMargin), где currentFunds — текущие доступные денежные средства, initialMargin — гарантийное обеспечение, riskPerTrade — процент риска, risk — риск (см. выше).

3) Стратегия «Каналы Дончиана» (Donchian Channel)


Donchian Channel


Описание: За основу взята стратегия на каналах Дончиана — www.oxfordstrat.com/trading-strategies/adx


Исходные данные: Свечки или тики. Свечки используются для расчета индикаторов. Для более точного расчета алгоритмических заявок в качестве исходных данных можно использовать тики.


Алгоритм: Строится два канала Дончиана — ChannelOne и ChannelTwo. Канал Дончиана — это пара индикаторов Highest и Lowest. Период внутреннего канала ChannelTwo устанавливаем в 2 раза меньше периода внешнего канала ChannelOne.


Входим в позицию: Покупаем, когда цена касается канала UpperChannelOne. Продаем, когда цена касается канала LowerChannelOne.


Закрываем позицию: Покупаем, когда цена касается канала UpperChannelTwo. Продаем, когда цена касается канала LowerChannelTwo.


Дополнительно:


— Фильтр два индикатора ADX. Торгуем только если ADX_Look_Back > ADX_Threshold


— По индикатору ATR определяем стоп цену для стоп заявки (stopPrice = newOrder.Price — atr*AtrStop)


Опции:


— Защита позиции алгоритмической стоп заявкой с выставлением лимитных заявок глубоко в стакан для исполнения как рыночных.

4) Стратегия «Линии Боллинджера» (Bollinger Bands)


Bollinger Bands


Описание: Простая стратегия на основе индикатора линиии Боллинджера (Bollinger Bands).


Исходные данные: Свечки.


Алгоритм: Свечка пересекает канал Боллинджера снизу вверх — продаем, сверху вниз — покупаем.

5) Скользящиесредние(Simple Moving Average)


SMA


Описание: Стратегия работает на пересечении двух простых скользящих средних.


Исходные данные: Свечки или тики. Свечки используются для расчета индикаторов. Для более точного расчета алгоритмических заявок в качестве исходных данных можно использовать тики.


Алгоритм: Когда «длинная» скользящая средняя пересекает «короткую» — продаем, наоборот — покупаем.


Опции:
— Защита позиции алгоритмической стоп заявкой с выставлением лимитных заявок глубоко в стакан для исполнения как рыночных
— Алгоритмическое снятие лимитных заявок по таймеру в случае неисполнения за указанный период времени

Постепенно будем пополнять список торговых стратегий.

Что еще планируем опубликовать:
— Коды алгоритмических заявок: стоп и трейлинг-стоп, тейкпрофит, снятие заявок по таймеру, котирование и т.д.
— Различные конверторы данных, например, конвертер ордерлога в трейды, биржевой стакан и Level1
— Коды стандартных и не стандартных индикаторов и т.д.


P.S. Все ссылки в профиле







0 комментариев

Добавить комментарий