Блог им. Dmi3

Оценка проскальзывания от объемов торговли на FORTS

Коллеги,

кто-нибудь делал анализ оценки проскальзывания от объемов торговли по тикерам Si и SBRF?
Намайнил неплохой алгоритм*, но матожидание по Si  в районе 7 рублей на сделку, а по SBRF  в районе 9  рублей, без учета комиссий и проскальзывания. Сижу, грущу, не знаю что с этим дальше делать.
Хочется понять на каком объеме проскальзывания уведут прибыль в ноль.
Спасибо.


* Картинка теста 01.01.2018-н.в. на 1 лот SBRF
Оценка проскальзывания от объемов торговли на FORTS


★3
без учета комиссий и проскальзывания
судя по всему и без учета спреда
avatar

Андрей К

Дмитрий Овчинников, 
А вот отсутствие возможности получить историю стакана не позволяет протестировать исторические проскальзывания по стратегии
качайте стаканы, смотрите считайте руками. Ликвидность гуляет по дню.
avatar

Андрей К

Дмитрий Овчинников, ну прикинуть то не сложно. Но а вдург у вас входы смещены на вечерку или куда нибудь на 12:30-16 Мск, когда стаканы на мели.

То есть у кого то опыт торговли по утрам, скажут вам одно, а по факту у вас совсем другое на деле
avatar

Андрей К

Попробуйте и сравните реальность и тест. При такой эквити через неделю все будет понятно.
avatar

ch5oh

Дмитрий Овчинников, ну хорошо, какой объем Si интересует?
avatar

Андрей К

Дмитрий Овчинников, вот на этом интервале сколько сделок и 7рублей и 9 ть это на фьючах? Если да, то поскольз будет минимум 2 на вход и 2 на выход при 1 к, так что считайте сами, что останется Вам, плюс один глюк и ещё прибыли как не бывало
avatar

Захаров

Дмитрий Овчинников, спред на этих фьючах 1 точно есть, ну и просто еще +1).
Так 7 рублей — это например лонг 65150 и ТР 65157 ?

avatar

Захаров

Дмитрий Овчинников, Есть индикаторы которые пишут стакан, хочешь дельту хочешь прям на графике будет рисовать объемы, объемы по реальным сделкам есть в терминале их можно вытащить хоть за месяц а вот лимитные придется копить, на моем профиле можете найти информацию по объемам.
Вот я публиковал, средняя в районе 200, с учетом набора в пунктах 40, так если поставить проскольз 5 на вход и выход — система умирает)
smart-lab.ru/blog/532685.php
А вообще, что мешает поставить проскольз в настройках тестера?

avatar

Захаров

Дмитрий Овчинников, Я для понимания, что есть 7 рублей!
avatar

Захаров

Дмитрий Овчинников, Просто если увеличить спред, получишь тот же проскольз на 1 контракт.
avatar

Захаров

7 р. на сделку это слишком мало. Даже если это микроскопическое положительное матожидание имеет место быть, то топорное исполнение по рынку убьет систему. Нужно сделать акцент на эффективном исполнении заявок.
avatar

Reznor

в tslab относительная 0.008 для Si на дневной даёт хорошую корреляцию между ботом и практикой. это без комиссии.
avatar

Sergey Cellinsky

Дмитрий Овчинников, Согласен.
avatar

Захаров

Дмитрий Овчинников, да. но жуёт её прямо скажем не спешно. По крайней мере у меня терпения с ней работать не хватает. 
avatar

Sergey Cellinsky

7 рублей не взлетит имхо.
я тут тоже на днях офигенского робота намайнил. оказалось что между входом и выходом у него всего одна минута. причём эти минуты обычно в 10:00 и 19:00
отложил до лучших времён. 
0,48% на контракт это примерно 4350 * 0.48 / 100 = 20,88 ₽ на контракт
правда у меня всё-таки с проскальзыванием в 6 рублей на круг и + с комиссом примерно как по открывашке (даже больше, ещё почти 6 р выходит)
смутило то что в такие минуты моего типового проскальзывания может и не хватить. а расходы на выделенку я пока не тяну.

Успешных сделок подряд: 22. Успешных сделок: 77.02%.
 Неуспешных сделок подряд: 4.
 Успешных лонгов: 603 Успешность лонгов: 75.66%.
 Успешных шортов: 463. Успешность шортов: 78.88%.
 Всего сделок: 1384
 Recovery Factor: 90.29 Profit Factor: 22.62
 Средний доход на сделку : 0.65%. Медиана: 0.44243%
 Средний убыток на сделку : 0.1%. Медиана: 0.08615%
 Коэффициент Сортино : 1.41
 Мат. ожидание: 0.48%
avatar

ПBМ

Дмитрий Овчинников, с комиссом правда фигня какая-то.

мне казалось всё совпадает. но похоже как-то криво.

public static double calculate(double positions, double price) {		
		double comission = 3.9 * 0.000014 * FastMath.abs(positions) * price;
		return comission;
	}
тут positions — число контрактов, а price — цена фьючерса (Si)
а в принципе может и правильно. т.к. у меня считается суммарно брокерская и биржевая

завтра ещё гляну. а так
System.out.println(Comission.calculate(1d, 65500)); 

3.5763
avatar

ПBМ

Дмитрий Овчинников, какой в итоге проскальз на 10 лотов заложили если не секрет?
avatar

ПBМ

вы проскольз словите и без объема, такого рода топорные расчеты на такого рода размерностях мертвому припарки
avatar

Cristopher Robin

Дмитрий Овчинников, относительно цены
avatar

Cristopher Robin

Дмитрий Овчинников, ну я уже основное сообщил, больше мне нечего добавить.
avatar

Cristopher Robin

Чувак, херово всё… у меня вот было чето подобное, только работало лимитниками… депо начинало буксовать на месте при достижении по сберу и газу 10-20 лотов... 
ну и чисто по ощущениям — доверять алготрейдингу на мт5 серьезную сумму стремновато… разве что возле терминала постоянно сидеть
Дмитрий Овчинников, а так вообще...  размер позы в инструменте по меджику не пробовали считать по сделкам из истории?
Оставлю здесь этот копипаст целиком, так как источник (http://blog.quantquant.com) уже не доступен.
Рассуждения о проскальзывании.

Думаю, этот топик не принесет пользы опытным трейдерам, однако может натолкнуть на интересные мысли тех, кто не так давно в теме.

Очередное НЕнаучное исследование. В этот раз на тему проскальзывания. Анализ различных подходов и пример из личного опыта. И ещё: мой рабочий сайз более 100 контрактов, но ни разу не превысил пока 200 пунктов в одной стратегии. В начале текста я рассуждаю о необходимости проскальзывания вообще, а в конце о том, когда стоит начинать учитывать проскальзывание в тестах и почему.
Просматривал я тут интернеты на вопрос проскальзывания. Поразительно, многие пихаютего сразу в систему на этапе начальной разработки! И ещё более удивительны трейдеры, которые проскальзывание вообще не учитывают. Я уже писал об этом несколько слов, хочу повторить свою мысль: не надо бездумно вставлять 100 пунктов по РТС на круг в тесты! Важно помнить, что системы бывают разные, соответственно, должен быть разный подход к разработке этих систем. Вообще, трейдеры, исследующие данную тему, часто приходят к выводу, что чем меньше сделок у системы, тем меньше будет проскальзывание. И, соответственно, чем больше система приносит в среднем за одну сделку, тем менее чувствительна она будет к дополнительным затратам на исполнение. Это, конечно, всё хорошо, «спасибо, кэп» скажите вы. Но интересно всё же, как работать с остальным системами, у которых не 20 сделок в год по +2000 пунктов в среднем каждая.
Собственно, вход в позицию и выход из неё делится на 3 метода:
Вход по рынку при достижении некоторого уровня (обычно, трендовые системы). Данному типу входа соответствует выход по стоп-лоссу. Для таких входов и выходов чаще всего необходимо закладывать максимальную сумму проскальзывания. Хотя, стоит обратить внимание, что бывает «вход по рынку» в «вашу пользу», когда за те секунды, пока стоп-заявка кидается на рынок, цена успевает слегка откатиться. Зависит это от многих факторов, в том числе и от времени, в которое исполняется заявка. Но об этом далее.
Вход по отложенному ордеру (отбойные системы). Данному типу входа соответствует выход по тэйк-профиту. Для таких входов проскальзывание закладывать в тесты вообще не нужно! Заявка либо не исполнится, либо исполнится конкретно по вашей цене.
Вход/выход по времени. Вот это самое интересное.
Если стратегия подразумевает вход в конкретное время, просчитать проскальзывание очень сложно. Оно зависит от многих факторов, но, наверное, самый важный из них – это само время. Совершить сделку по цене открытия 16:30 практически не возможно. А закинуть небольшой сайз по открытию 16:31 уже намного проще. На мой субъективный взгляд, если стратегия должна быть активной в какое-то конкретное время, лучше всего открывать и закрывать позиции руками. Уже через десяток сделок станет понятно, когда лучше открыться на 5 секунд раньше, или наоборот повременить секунд 15 (это реже, потому что системы, работающие по времени часто уносят цену именно в первые секунды новой минуты). На сколько же пунктов стоит ухудшить каждую сделку на истории, если мы исполняем временные приказы системы руками? Мой ответ: вообще ни на сколько. Вернее, так: вы поторгуйте, проверьте в реальных условиях, как оно получается, и только тогда поймете реальный рынок:
Результат торговли по системе за последний год составил -1500 пунктов. Если отбросить мысль о том, что такая система не робастна, то можно обратить внимание именно на исполнение: на большей части графика объем был более 100 контрактов, учитывается средний результат по 2 счетам (торговля на одном ноутбуке с 2 разных квиков):

Как видите, в реальной жизни проскальзывания нет! При том, что активность системы совпадает по времени с активностью на рынке (т.е. с одной стороны, это позволяет вливать большой капитал в систему, а с другой, цена довольно быстро меняет свое значение). Если бы система отработала бы так, как я закладывал в тесты, с проскальзыванием 60 пунктов на круг, то сейчас я имел бы не -1500 пунктов, а -9500 пунктов. А это уже совсем другая картинка…

Что же касается первого пункта, входа по рынку. Есть такая мысль: попробуйте преобразовать первый метод вход во второй! Первое, что я делаю в таком случае – это проверка входа по лимитнику. Т.е., при исполнении условия входа вместо того, чтобы сразу покупать по рынку с учетом 50 пунктов проскальзывания, я тестирую систему на предмет выставления отложенного ордера на 200-300 пунктов лучше условия. И иногда такой вариант оказывается лучше тупого выстрела по рынку. Да, бывает, пропускается хорошая сделка, но, если после условия рынок часто откатывается назад, то почему бы это не использовать?
Для всех остальных случаев: либо лимитник на 30 пунктов лучше рынка + проскальзывание 30 п. (таким образом я оцениваю свое небольшое воздействие на рынок, если в реальности заявка высталяется не по рынку, а по цене условия. Если система показала возможность исполнения приказа на 30 пунктов лучше, чем по рынку, тогда в реальных рыночных условиях скорей всего удастся войти с помощью лимитной заявке по цене условия), либо всё-таки приходится закладывать некоторую сумму проскльзывания в результаты.

Из всего вышесказанного следует то, что не надо учитывать проскальзывание на первых этапах разработки новой системы. В пользу этого мнения также свидетельствует ещё и то, что рыночная идея, основывающаяся на некой внутренней логике, может оказаться не рабочей именно из-за невозможности точного исполнения, однако может помочь в общем понимании рынка и быть использована в качестве фильтра в какой-нибудь другой стратегии. Если же вы будете учитывать 100 пунктов на круг с самого начала, вы можете не разглядеть за нисходящей кривой эквити интересную рыночную закономерность.

В любом случае, теория, конечно хороша, но любое знание, любую формулу, любой расчет – всё нужно проверять на практике! 

Спасибо дочитавшим до конца.

Всё, как всегда, лишь ИМХО.
  • t-trade
  • 6 ноября 2012, 15:23

....все тэги
UPDONW