Блог им. diamante |Тест открытой ТС

Лениво бродив по западному интернету, нашел интересную стратегию, которая своими корнями уходит к некоему Larry Connors. Стратегия построена на простом RSI с периодом 2.

Суть ее в следующем: 
покупаем индексный ETF, когда значение меньше 15 на закрытии дня (да, это можно сделать без проблем и проскальзываний на всех ликвидных ETF) и продаем, когда клоуз текущего дня выше хая предыдущего (можете придумать свои выходы, стратегия не очень-то чувствительна к выходам). 
В общем MR в чистом виде. И в принципе это должно работать на большинстве ETF развитых рынков. 
Тестил на Multicharts.Net, код ниже. 


using System;
using System.Drawing;
using System.Linq;
using PowerLanguage.Function;
using ATCenterProxy.interop;

namespace PowerLanguage.Strategy {
        public class rsi_2_spy : SignalObject {
                public rsi_2_spy(object _ctx):base(_ctx){}
                private IOrderMarket buy_order;
                private IOrderMarket sell_order;
                
                private RSI m_RSI;
        private VariableSeries<Double> m_myrsi;
                private ISeries<double> Price { get; set; }
                
                protected override void Create() {
                        // create variable objects, function objects, order objects etc.
                        buy_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy));
                        sell_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Sell));
                        m_RSI = new RSI(this);
            m_myrsi = new VariableSeries<Double>(this);
                        
                }
                protected override void StartCalc() {
                        // assign inputs 
                        Price = Bars.Close;
            m_RSI.price = Price;
            m_RSI.length = 2;
                }
                protected override void CalcBar(){
                        // strategy logic 
                         m_myrsi.Value = m_RSI[0];
                        if (Bars.Close[0]>Bars.High[1]){
                                sell_order.Send();
                                return;
                        }
                        
                        if (m_RSI[0]<15){
                        buy_order.Send();
                        }
                        
                }
        }
}


( Читать дальше )

Блог им. diamante |Котировки NYSE Open Book

Надежды мало, но все же. Готов купить 1-2 месяца истории NYSE Open book Ultra примерно по 4000 тикерам. Цена полностью будет зависеть от качества. Может кто-то логировал или покупал и готов поделиться? Или знает, где можно купить по адекватной цене (NYSE продает за $5000 месяц)?

Блог им. diamante |Buy High стратегия

Тест стратегии из поста http://smart-lab.ru/blog/343965.php 

Формализовал стратегию так, как я ее понял. 

1. Входа на следующий день, после обновления исторического хая. Тут есть неточности — историю брал с 2005 года. Не факт, что all time high был на этом промежутке. 
2. Предыдущее обновление хая было больше 90 дней назад и менее чем 200 дней назад. 
3. Примерно 500 ликвидных бумаг с NYSE/NASDAQ/AMEX. Без учета делистинга, без учета комиссий, без учета платы за плечо. Вроде бы без дивидендов (не уверен), дейли дата взята с Google Finance. 

4. Стоп в примере — 3%. Тейк — 90%. Можно взять больше стоп, результаты не критично меняются. 
5. Вход фиксированным BP на позицию. (взял 1000 на позу)

Код Multicharts.Net 

using System;
using System.Drawing;
using System.Linq;
using PowerLanguage.Function;
using ATCenterProxy.interop;

namespace PowerLanguage.Strategy {
        public class _INTEST_by_high_daily : SignalObject {
                public _INTEST_by_high_daily(object _ctx):base(_ctx){}
                private IOrderMarket buy_order;
                private IOrderMarket sell_order;
                double previous_high;
                double previous_high_low_range;
                double all_time_high;
                protected override void Create() 
                {
                        // create variable objects, function objects, order objects etc.
                        buy_order = OrderCreator.MarketNextBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy));
                        sell_order = OrderCreator.MarketNextBar(new SOrderParameters(Contracts.Default, EOrderAction.Sell));
                }
                protected override void StartCalc() {
                        all_time_high =0;
                }
                protected override void CalcBar()
                {
                        // strategy logic 
                        if (Bars.High[0]>previous_high && previous_high_low_range<previous_high && previous_high == all_time_high)
                        {
                            buy_order.Send();
                        }
                        
                        if (StrategyInfo.MarketPosition>0 && Bars.Close[0]>StrategyInfo.AvgEntryPrice*1.9)
                                sell_order.Send();
                        
                        previous_high = Bars.High.Highest(200);
                        previous_high_low_range = Bars.High.Highest(90);
                        if (Bars.High[0]> all_time_high) all_time_high = Bars.High[0];
                        
                }
        }
}


( Читать дальше )

Блог им. diamante |Как быстро потерять зрение

Достаточно заглянуть в алготрейдинг на темной теме. 

Как быстро потерять зрение



Блог им. diamante |IQFeed Socket документация

Нуждаюсь в документации по socket командам для IQfeed. Официально доступна для зарегистрированных API. Буду рад, если кто поделится. 

 

Спасибо!


Блог им. diamante |Бектестинг и подгонка эквити.

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

Наслаждайтесь: Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance

Блог им. diamante |Полезная литература по трейдингу на английском.

Самая качественная информация по рынку содержится не в популярных книгах о трейдинге, а в прикладных статистических исследованиях, коих очень много на ресурсах:

papers.ssrn.com/ и http://www.nber.org/
Ну вот например http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2478345

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

Ну и английский немного прокачать. 

Блог им. diamante |Небольшой конкурс для трейдеров

Есть серия баров определенного инструмента. Бары нормированы. Т.е. H-L одного бара = H-L другого бара. 

Вопрос в следующем — как заработать денег на этом?  Данные по барам можно качнуть тут. Условия — средняя сделка больше 3 центов. Стопы можно не использовать, время удержания позиции не больше 5 баров и не меньше 1го. Одновременное открытие и закрытие позы внутри одного бара запрещено. Эквити суммарно в плюсе минимум на 300 долларов на 100 шерс. Фикс сайз на позу. 

Лучшему юзеру с количеством сделок 50+ и средней 3 цента+ сброшу пару тысяч рублей на банковскую карту.

Кидайте логику в каменты. Я потестирую и если оно работает, как описано в условиях выше и лучше, чем у других, то вы сможете выпить пивка на «халявные» рублики. 

 

Блог им. diamante |Ищу людей в команду

Ищу человека в команду для разработки алгоритмов. Требования: знание C#, R, Python (хотя бы 2 языка из списка), понимание инфраструктуры американского рынка, опыт разработки своих ТС (даже неуспешных), готовность работать на результат. Что нужно будет делать в команде: реализовывать алгоритмы по ТЗ в коде, тривиальные задачи по бектестингу и оценке систем (опционально). Условия обсудим лично. Пишите в личку, все подробности там) Идей и исследований очень много, для этого и нужна команда. 

Работать нужно будет на результат!  

P.S. Плюсы помогут донести информацию до нужных людей)

....все тэги
UPDONW
Новый дизайн