Примерно год назад я написал статью "Что дали 10 лет алготрейдинга". Многим она понравилась (спасибо за обратную связь). С тех пор прошел еще один год алготорговли, и я нашел в себе силы наконец-то консолидировать и склеить единую кривую доходности за весь 10-летний период. Далее будут картинки и небольшие комментарии.
Начало
Первого робота (точнее стратегию) я нашел на не безызвестном форуме «kbpauk» в 2009 году. Там же добрые люди помогли ее закодить. После некоторых манипуляций с оптимизацией параметров, она начала отлично работать. Я был счастлив, уже зрел план уволиться с работы. Потом были еще роботы. Как ни странно, на график 2008-2009 годов можно было натянуть практически любую стратегию аля «trend is your friend» и она давала джекпот. Правда на истории, на торгах в 2010 году они у меня уже почему-то таких результатов не давали… В общем углубился в разработку стратегий, методом проб и ошибок. Очень помог этот блог в свое время (https://smart-lab.ru/profile/a_krotov/). В итоге к концу 2011 у меня была уже пачка ботов (пилил ее по вечерам на основной работе). Стартовал в начале октября 2011. Повезло мне попасть в хорошую волну. Пошли доходности, почти 6 месяцев подряд в плюс вплоть до апреля 2012. А потом пришло отрезвление, роботы сломались (как мне казалось тогда).
Продолжаем тему решение задач (проблем) трейдера.
Первая зависимость выражается так: чем меньше ТФ, тем меньше время удержания позиции, а чем больше ТФ, тем больше время удержания позиции.
Вторая зависимость: время удержания позиции примерно равно паузе между сделками (трейдами).
И наконец, общую зависимость между ТФ, временем удержания и паузой можно представить формулой:
первая зависимость + вторая зависимость = улучшение эффективности торговли.
Выводы: если вы ведете активный трейдинг, торгуете в ручном режиме или используете биржевых роботов, например Octopus Trader, то нельзя торговать часами или сутками на пролет, без перерыва, особенно, если вы торгуете короткие ТФ, это приводит к «сливанию» прибыли или накапливанию убытков.
Предлагаю следующее простое решение: в зависимости от торгуемого ТФ, ограничивать время торгов и обязательно делать паузу между сделками (трейдами) — Рис. 2.
new_global(«total_net2»,0)
total_net2=total_net2+0
new_global(«cur_bar», 0)
new_global(«send_trans», 0)
new_global(«long», 0)
new_global(«trans_id», 1)
new_global(«bar_enter», 0)
new_global(«number_stop»,0)
new_global(«enter_price»,0)
new_global(«deals»,0)
new_global(«first_start»,0)
new_global(«last2»,0)
new_global(«changeBu»,0)
changeBu=changeBu+0
quant=1
servertime=GET_INFO_PARAM («SERVERTIME»)
hournow=SUBSTR(servertime,0,2)
minnow=SUBSTR(servertime,3,2)
secnow=SUBSTR(servertime,6,2)
SecInfo = GET_SECURITY_INFO("", code)
Lot = GET_VALUE (SecInfo, «LOT_SIZE»)
class=get_class(code)
market=get_market(class)
time=get_datetime()
minute=get_value(time,«MIN»)
hour=get_value(time,«HOUR»)
sec=get_value(time,«SEC»)
curtime=hour*10000+minute*100+sec
dayofweek=get_value(time,«DAYOFWEEK»)
year=get_value(time,«YEAR»)
month=get_value(time,«MONTH»)
day=get_value(time,«DAY»)
curdate=year*10000+month*100+day
TOTAL_NET=get_total_net(market,client,code)+0
CBPLPLANNED=get_CBPLPLANNED(market,client)
timeframe=0
if market&""=«micex»
lot =get_value(get_param_ex(class, code, «LOTSIZE»),«PARAM_VALUE»)+0
total_net=0+total_net'/lot
end if
line=0
string=create_map()
delete_all_items()
last= GET_PARAM (class, code, «LAST»)
bid = GET_PARAM (class, code, «BID»)
offer = GET_PARAM (class, code, «OFFER»)
error=0
open0=0
if first_start==0
if total_net!=0
enter_price=READ_LINE (path&«enter_price.txt», GET_FILE_LEN(path&«enter_price.txt»), error)
end if
first_start=1
end if
if (get_permission()+0)==1
Речь в статье пойдет о важных задачах (проблемах), с которыми сталкивается каждый трейдер, а именно: выбор активов, выбор тайм-фрейма, выбор направления торговли, момента торговли, стоп-лосс, тейк-профит и автоматизация этого процесса.
Теперь подробнее о каждой из этих задач (проблем).
1) Выбор активов
Напомню о банальных вещах, о которых все знают, но на которые можно смотреть под разными углами.
Первое, при выборе активов важно понимать, где происходит главное ценообразование. Например, если это российские акции, то место главного ценообразование — это биржа ММВБ. Значит, при торговле российскими акциями в первую очередь следует отслеживать информацию с ММВБ, иногда поглядывая на мировые фондовые индексы, типа: S&P.
Как добиться успеха в алгоритмической торговле?
С чего начать?
Сегодня в открытом доступе много информации об алгоритмической и количественной торговле. Трейдера, которого привлекает эта область, хочет синтезировать как можно больше информации, когда он только начинает. В результате новички могут быть ошеломлены «параличом анализа» и потратить много своего ценного времени на алгоритмическую торговлю, не добившись значительного прогресса. В этой статье я расскажу о том, как я подошел бы к алгоритмической торговле в качестве новичка, если бы только начинал свой путь. Эта статья окрашена личным опытом, поэтому, пожалуйста, прочитайте ее с пониманием того, что я описываю то, что работает для меня. Я не претендую на то, чтобы быть гуру по личному или профессиональному развитию, но мне удалось развить свои навыки алгоритмической торговли до такой степени, что я смог оставить свою основную работу для торговли на рынках – так что, возможно, у меня есть личный опыт и понимание, которые могут быть полезны для вас. В этой статье, я намерен предоставить вам некую «дорожную карту» для начала и достижения максимально эффективного прогресса, поделившись некоторыми практическими вещами, которые я узнал на своем пути в качестве алготрейдера.