Блог им. diamante |Как не обмануть себя бектестом на NYSE

Спросили меня тут как правильно тестить NYSE… всех деталей не скажу, но могу дать пару советов, которые сэкономят вам время и деньги.

 

1. Не доверяйте High и Low свечей. На америке есть ADF и некоторые трейды могут влиять на High и Low дня (и любой свечи соотвественно). Чем ниже цена бумаги и чем ниже ликвидность — тем меньше у вас должно быть доверия к свечкам. Чаще всего это выглядит как большая тень — да, по этой цене были сделки и кто-то там поторговал, но с большой вероятностью это order internalization внутри какого-нибудь брокера. Особенно часто они в первые минуты торгов High и Low не дают никакой гарантии исполнения. На жирных бумагах такого в разы меньше, но иногда встречается. Отдельным пунктом идут внебиржевые сделки, которые всегда рисуют большие тени. Поставщики данных страются их фильтровать, но не всегда выходит. В идеале нужно собирать все свечи самому с отфильтрованных тиков, но очень трудозатратно для америки. Второй вариант — не учитывать H/L для свечей с очень большими теням + смотреть на рейндж соседних свечей. Подготовка данных для тестов целое искусство, серьезно.



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

Блог им. diamante |ММВБ vs NYSE

Появилось немного времени и возникло желание сравнить торговлю на NYSE и ММВБ. Торгую  на NYSE я с 2011 года, для меня это уютная и знакомая биржа. На ММВБ я пытаюсь зайти уже второй раз (до этого была попытка в 2016).  Поэтому мой взгляд будет несколько своеобразен и заточен под интрадей трейдинг.

Начну пожалуй с критики:

1. На ММВБ полный бардак с ценами и лотностью. Очень неудобно, как с точки зрения ручной торговли, так с точки зрения алгоритмов. Для сравнения на NYSE -  лот 100 акций. Цена акций при IPO чаще всего в диапазоне $15-45. Одного взгляда на цену достаточно чтобы понять, что за тикер перед тобой.
2. Низкие плечи даже на ликвидных бумагах.  С шортами все грустно, если это не топ 10 акций. На NYSE шорт можно найти почти на все, кроме pump стоков и совсем уж жесткого неликвида.
3. Высокие комиссии. Я уже писал об этом несколько лет назад. Если перевести это к формату NYSE ($/100 shares), то при цене акции в $30 (что в общем-то ниже среднеего по рынку) комиссия согласно тарифу открывашки (где-то из середины таблицы) будет $0.75. Это очень много, на NYSE в среднем комиссия будет в 2+ раза ниже.

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

Блог им. diamante |Архив котировок компонентов sp500

По просьбам трудящихся упаковал минутки компонентов sp500. Файл будет доступен несколько дней, потом я его удалю. Размер архива около 5Гб

Несколько моментов:


1) Нет истории за несколько последних месяцев. Увы, нет времени дампить с сервака постоянно.
3) Квоты от ActiveTick, качество средненькое. Так что перед бектестом данные надо причесать.
4) Список акций брал из википедии на текущий момент. В истории вы не найдете тикеров, которые были исключены из индекса в последние несколько лет.

Тык

Телега, куда выкладываю полезные (и не только) штуки по алго, когда не лень:)


Блог им. diamante |Странное поведение SPX и VIX.

Пару дней назад SPX и VIX закрылись на 40 дневных максимумах, что явно говорит о временной раскорреляции. 

Вот график

Странное поведение SPX и VIX.

Наблюдение украдено в блоге

Автор протестировал такое поведение и нашел всего 4 похожих случая с 1990г. (примерная дата). Во всех четырех случая было снижение рынка. Конечно, говорить о какой-то зависимости нельзя, но все равно это довольно любопытно.  


Блог им. diamante |Irma и buy deep

Ожидания по урагану Irma серьезные и сейчас сливают многих страховщиков. Особенно, с небольшой капитализацией. Если последствия от урагана будут незначительными или меньше ожиданий, то весь слив выкупят. 
Примеры стаков: 
www.google.com/finance?q=NYSE:AHL&ei=nZyxWcGoMYGosQGzwZ3wBw
www.google.com/finance?q=NYSE%3AUVE&ei=rpyxWdHQFNeIsgG-pICIDg


Блог им. 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 |Рейтинги Moody's S&P по американским компаниям

Ищу актуальные рейтинги по всем компаниям, акции которых обращаются на NYSE, NSDQ и NYSEARCA. 

Данные, конечно, есть на сайте рейтинговых агенств, но не агрегированных. Может кто знает где можно качнуть? Или есть веб ресурс с которого можно распарсить данные?

Буду признателен. 

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