Избранное трейдера dimaz07

по

Бэктестинг: торговля на импульсе с помощью ATR

Индикатор ATR (Average True Range) показывает среднюю величину изменения цены внутри дня за указанный период. Отлично подходит для выбора уровней стопов. Также индикатор показывает рост волатильности в активе, когда сохраняет высокие значения.

Работаем на Quantopian (см. сюда), код пишем на Python. Проверяем стратегии:

  • Как есть.
  • Фильтр по SMA200.
  • Торговля в двух направлениях.
  • Аналог стоп-приказа.
  • Фильтр по объему.


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

Почему трейдинг это всегда устранение неэффективности

Трейдинг это всегда арбитраж и устранение рыночной неэффективности. От HFT до инвесторов все делают одно и то же, разница лишь в таймфрейме. А именно, что они делают? Превращают закономерный процесс в случайный. Поглощают любой предсказуемый риск и производят левередж.

Возьмем для примера примитивную модель цены. Пусть это будет рынок зонтиков в зависимости от времени года. Зонтик это защита от ветра и дождя, а дождь это результат фундаментальных законов природы с ярко выраженными сезонными зависимостями. На графиках по вертикальной оси стоимость зонтиков, а буквы означают времена года:
З — зима
В — весна
Л — лето
О — осень
З — зима
Почему трейдинг это всегда устранение неэффективности
На первом графике изображен максимально неэффективный рынок. Чем больше дождей — тем дороже зонтики, поэтому летом они стоят очень дешево, а осенью очень дорого. Поскольку рынок неэффективный, это происходит из раза в раз, на рынке присутствует очевидная зависимость, которую никто не эксплуатирует, включая конечного покупателя.

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

Время возвращать убытки – советы по возврату НДФЛ

Всем добрый вечер!

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

Итак, я отвечаю сразу на вопросы тех трейдеров, которые мне звонили буквально на днях и спрашивали:

1) Можно ли убытки 2012, 2013 года зачесть сейчас, ведь прошло более трех лет с момента получения убытка?

Ответ: да, можно. Дело в том, что процедура зачета убытка и прибыли заключается в следующем: мы берем прибыльный год, который должен быть обязательно позже убыточного. Смотрим, по какому инструменту у нас был уплачен налог (удержан брокером) и по какому инструменту мы получили убыток. Зачем мы так делаем? Сальдировать убытки прошлых лет можно только с однородными инструментами. Например, ценные бумаги с ценными бумагами, ФИССы с ФИССами.

Если у вас 2014, 2015 и 2016 годы были прибыльные и вы по итогам года платили налог (с вас брокер удержал НДФЛ), то вы сможете сальдировать ваши убытки, полученные ранее, даже за пределами трех лет.



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

Анализатор опционных позиций. OptionFVV. Версия 2.1 public

Здравствуйте дорогие друзья!

Тема этого обновления — работа со своей моделью улыбки.
Эту версию мне помог создать Дмитрий Новиков. Помогал с формулой расчета, обсуждали юзабилити, ну и конечно же помог отловить баги и глюки, касаемые модельной улыбки. Мы с ним обкатали 2 версии пока не получилась эта окончательная третья версия. Так что спасибо ему большое за всё.

В текущей версии, на самом деле 2 модели улыбки.
1. Это моя, которой я давно пользуюсь. Нарисована в виде оранжевых маркеров (точек) на диаграмме (1).
Анализатор опционных позиций. OptionFVV. Версия 2.1 public

Рассчитывал так, брал базу улыбки с 2010 по 2016 годы и рассчитывал относительное отклонение страйков с дельтами 0,1 0,25 и -0,1 от центрального в процентах. Рассортировывал по папачкам, каждая из них это срок сколько осталось до экспирации дней и в каждой из них считал среднее значение. Так я получил среднее отклонение интересующих мне страйков от центрального. А зная волу центрального и сколько дней до экспирации, не сложно высчитать волу страйков с дельтами 0,1 0,25 и -0,1.



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

Оптимальные стратегии возврата к среднему. Часть 2

Оптимальные стратегии возврата к среднему. Часть 2

Продолжение. Начало здесь.

2.3. Расчет показателей

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

Дневную прибыль рассчитаем следующим образом:

Оптимальные стратегии возврата к среднему. Часть 2



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

Производительность роботов на C# (NinjaTrader).

    • 23 марта 2017, 00:26
    • |
    • Dzam
  • Еще

Производительность роботов на C# (NinjaTrader).

 Производительность роботов на C# (NinjaTrader).
Перед тем, как использовать в своем роботе переменные типа Dictionary или List, если у вас производится частое обращение к ним, обязательно проведите анализ на производительность. Вот мой кусочек анализа.

Для примера описываем переменные:

private List<KeyValuePair<int, string>> listArray;
private Dictionary<int, string> dictArray;

По сути будем иметь набор связок Integer и String. Содержание в данном случае не особо важно. Важно то, что это содержание одинаково в обеих переменных.
А теперь просто заполним эти переменные одинаковыми записями:

// Переменные для замера времени выполнения
sw1 = new Stopwatch();
sw2 = new Stopwatch();

// Инициализация переменных
listArray = new List<KeyValuePair<int, string>>();
dictArray = new Dictionary<int, string>();

// Стартуем замер производительности
sw1.Start();
for (int i = 0; i < 1000000; i++)
{
//Добавляем переменную в массив
    listArray.Add(new KeyValuePair<int, string>(i, "test"));
}

// Останавливаем замер производительности
sw1.Stop();
// Выводим результат
Print("List: " + sw1.ElapsedMilliseconds);
// Очищаем список
listArray.Clear();


// Стартуем второй счетчик производительности
sw2.Start();
// Запускаем второй цикл
for (int i = 0; i < 1000000; i++)
{
    dictArray.Add(i, "test");
}

// Останавливаем счетчик
sw2.Stop();
// Выводим результат
Print("Dictionary: " + sw2.ElapsedMilliseconds);


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

Современные железяки в алго.

Вместо введения


Представим ситуацию.

  • Написали код алгоритма. Оказался медленный.
  • Посидели, подумали, перестроили алгоритмы расчета. Ускорился. Мало.
  • Применили мета программирование в сложных расчетах. Получше.
  • Посидели, по профилировали, нашли узкие места в коде. Ускорили. Уже ничего.
  • Применили разные модели распараллеливания кода. Сервисные функции закинули в одно ядро, расчеты раскинули по ядрам. Сидим греем камень. Получше.
  • Максимум попытались убрать места, чтобы код не обращался в ОС
В общем что дальше? Дальше ищем прирост в железе. Вроде логично. Про бытовые моменты писать не буду, процессор там погнать или еще чего. Затрону специфичное оборудование.

Сетевой уровень.


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


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

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

Мой журнал сделок,с последними сделками.

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

События в QLua

Добрый день, друзья!

Изучаю QLua, посмотрел несколько примеров, в том числе у Albus'a.
Обычно в цикле пишут sleep(n), при обновлении котировок или любых других значений.

Вопрос к опытным кулуйстам:

1. Есть ли возможность как-то подписаться на событие получения, к примеру, новой котировки, а не перезапускать цикл через n-млсекунд постоянно?
2. Есть ли интерфейс подключения к квику, чтобы программировать не через lua, а, например на c#?

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