Блог им. Dmi3

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

Коллеги,

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


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


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

Андрей К

Андрей К, 
спред учтен :)
В МТ5 отсутствует возможность прописать комиссии, но они фиксированы, с этим нет никаких проблем.
А вот отсутствие возможности получить историю стакана не позволяет протестировать исторические проскальзывания по стратегии.
Дмитрий Овчинников, 
А вот отсутствие возможности получить историю стакана не позволяет протестировать исторические проскальзывания по стратегии
качайте стаканы, смотрите считайте руками. Ликвидность гуляет по дню.
avatar

Андрей К

Андрей К, 
качайте стаканы, смотрите считайте руками.

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

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

Андрей К

Андрей К, 
Торговля только в дневную сессию с 11.00 до 18.00, в дневной клиринг не торгуем :)
Мне нужен порядок цифр. Понятно, что плотность стакана будет разной в разные дни, часы и минуты.
Дмитрий Овчинников, ну хорошо, какой объем Si интересует?
avatar

Андрей К

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

Захаров

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

avatar

Захаров

Захаров,
спред меня не волнует, тестер его учитывает. Математическое ожидание это не тейк-профит, это средняя прибыль на сделку, с учетом всех профитов и убытков.
Дмитрий Овчинников, Я для понимания, что есть 7 рублей!
avatar

Захаров

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

Захаров

Захаров, 
я не могу и не хочу увеличивать спред или заниматься еще какими-то махинациями с данными.
Зачем это делать? Я же не теоретик, я практик. Я провожу тесты и вижу сделки на реальном счете. Каждый день! Если что-то не совпадает это предмет для разбора полетов.
Дмитрий Овчинников, Согласен.
avatar

Захаров

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

ch5oh

ch5oh, 
да это не хфт. Там всего то  в день, а с учетом проскальзывания получается система «на мороженное». Оттого и грущу :(
В реале запустил на 10 лотов, дальше буду наращивать потихоньку.
Дмитрий Овчинников, какой в итоге проскальз на 10 лотов заложили если не секрет?
avatar

ПBМ

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

avatar

Захаров

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

Reznor

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

Sergey Cellinsky

Sergey Cellinsky, 
tslab умеет работать с тиковой историей?
Дмитрий Овчинников, да. но жуёт её прямо скажем не спешно. По крайней мере у меня терпения с ней работать не хватает. 
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М

П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М

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

Cristopher Robin

Cristopher Robin, 
проскальзывание без объема относительно чего?
Дмитрий Овчинников, относительно цены
avatar

Cristopher Robin

Cristopher Robin, 
относительно какой цены? Выражайте, пожалуйста, мысли точнее.

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

В этом режиме рыночный ордер исполняется по цене лучший бид/аск через заданное мной в тестере запаздывание после отправки ордера.

Соответствие реальному исполнению проверено многократно на реальном счете.
 

Моя проблема не в том, что ордер исполниться по какой то «не той» цене, а в том, что в цене исполнения ордера ликвидность предложения/спроса ограничена.

Своим вопросом я и пытаюсь узнать в цифрах среднюю ликвидность стакана возле спреда на интересующих меня инструментах.

Вместо этого вы мне рассказываете про какое-то «проскальзывание относительно цены».
Дмитрий Овчинников, ну я уже основное сообщил, больше мне нечего добавить.
avatar

Cristopher Robin

Cristopher Robin,
Спасибо.
Чувак, херово всё… у меня вот было чето подобное, только работало лимитниками… депо начинало буксовать на месте при достижении по сберу и газу 10-20 лотов... 
ну и чисто по ощущениям — доверять алготрейдингу на мт5 серьезную сумму стремновато… разве что возле терминала постоянно сидеть
Бабёр-Енот, 
деньги уже давно там. Это робот номер 27. У монитора не сижу :)
Дмитрий Овчинников, а так вообще...  размер позы в инструменте по меджику не пробовали считать по сделкам из истории?
Бабёр-Енот, 
не понял вопроса, извините.
Оставлю здесь этот копипаст целиком, так как источник (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