Избранное трейдера Demen
Доброго времени суток, коллеги!
К сегодняшнему дню подготовил важный материал, который относится к Срочному Рынку FORTS (далее СР). Данную статью готовил по той причине, что по опыту многие Клиенты не понимают, как торговать на СР, куда смотреть, откуда берутся цифры и т.д. Надеюсь, она развеет Ваши пробелы в знаниях, если таковые имеются. Статья получилась объемной.
Всего в ней не описать, но я постарался отразить самое важное.
Материал подготовлен относительно торговли фьючерсами.
Итак, на СР Вам потребуется две основные таблицы:
В ней отображается информация по Вашим денежным средствам на СР, свободные деньги, вариационная маржа и т.д.
Данную таблица открывается (версия quik 7) через “Создать Окно”>”Все типы окон”
Из года в год не утихают споры о том, зачем России нужны огромные золотовалютные резервы и нужно ли держать деньги за границей. Чтобы разобраться в данном вопросе, для начала стоит привести модельный пример.
К примеру, в 2005 году в России было построено 44 млн. квадратных метров жилья, при средней цене 25 тысяч рублей за метр, что в совокупности дает общий рынок в размере 1,1 трлн. рублей. Позже, в 2007 году, при росте объемов ипотечного кредитования рынок вырос до 3 трлн. рублей, почти в три раза, за счет увеличения спроса. При этом объем строительства вырос только на 40%, до 61 млн. квадратных метров, основной прирост рынка произошел за счет роста цен на недвижимость, которые удвоились всего за два года, достигнув 50 тысяч рублей за метр.
Если в теории общий спрос вырос бы до 2 трлн. рублей или же до 4 трлн. рублей, то, скорее всего, эти изменения мало бы коснулись объемов строительства, а больше бы отразились на цене, поскольку в экономике относительно легко увеличить совокупный спрос в деньгах, но гораздо тяжелее увеличить фактическое производство, например цемента. Строители тогда просто физически не могли удовлетворить резко выросший спрос на недвижимость. Поэтому рынок отрегулировал текущие процессы простым увеличением цен. При росте рынка до 4 трлн. рублей цена за метр выросла бы до 60 тыс. рублей при том же объеме строительства. Более того, эффект для самой экономики был еще меньше, чем рост объема строительства, поскольку рост объема строительства в значительной мере был достигнут за счет увеличения импорта того же цемента и за счет увеличения количества иностранных рабочих, которые часть заработанных денег вывозят из страны. Поэтому наряду с ростом цен увеличился и отток денег по счету текущих операций.
Оглядываясь в прошлое, зная о примерах больших заработков с даже меньших сумм, чем стартовал ты, невольно задаешься вопросом: «А что было упущено в прошлые годы?»
Сентябрь 1998-2007
Историю своих заработков в эти годы я подробно изложил в мемуарных записках под общим названием «История одного управления»
Невооруженным глазом видно, что «монстрам» того времени – Газпрому и Сбербанку я проиграл по доходности в «одну калитку». А если б еще и плечо взять в этих эмитентах, то легко можно было бы стать и долларовым миллионером с тех самых 2000$, с которыми я пришел на рынок в сентябре 1998-го, не говоря уж о довложениях, возможности для которых у меня были за счет получаемых премий в «хлебные» годы: 1999, 2000 и 2003. Но! Упустил ли я что-то? С одной стороны, упустил тем, что торговал не только Газпромом, но и невнятными РАО ЕЭС и Лукойлом, а Сбером не торговал вовсе сначала из-за низкой ликвидности, а потом из-за дороговизны одной акции (нынешние 1000 акций Сбера равны 1 тогдашней). Но с другой, по тому же соотношению «доходность-просадка» я выиграл даже у Газпрома, не говоря уж о портфеле buy&hold. Как я мог не упустить доходность? Только беря на себя большие риски и плечи, т. е. терпя более глубокие и долгие просадки с неясными перспективами выхода из них в случае, если растущий тренд на нашем рынке закончится (кстати, изредка интервьюируемый Верниковым «безымянный трейдер» так и поступил и стал долларовым миллионером именно в те годы с 2002 по 2007, так что это вполне реальная история). Это если говорить о долларовом миллионерстве. Но не миллионы долларов, но в разы больше того, что получилось в реальности, я мог бы получить, торгуя только Газпромом и даже не неся риски, как в плечевом buy&hold. Но что это? Это отказ от диверсификации, это умение выбирать «лидера» (как?) и в конце концов это повышенный риск ошибки (опять же урок от того же «безымянного трейдера»: удачно уйдя с рынка перед кризисом 2008-го, вернулся он во второй половине 2009-го именно на Газпром по старой привычке, но помучавшись с ним без особого успеха, переключился на Сбербанк и снова успешно). Есть ли у меня какие-то алгоритмы по выбору «лидера»? Увы, нет. Были попытки найти решение? Конечно были, но устроившего меня не нашлось. А значит об упущенных возможностях в этот период говорить некорректно. Это скорее, сидящий в «подкорке», подход к торговле на рынке: «сохранить и преумножить», где глаголы расставлены по своим приоритетам.
2008-2009
Вот тут даже говорить не о чем. Все сделано грамотно. Покажите мне еще трейдера, сделавшего почти 200% за эти два года на сотнях миллионов рублей, почти без использования плечей и шортов? Думаю, таких в России можно пересчитать по пальцам пары рук. Да и материально это лучшие мои годы после 2000-го, досрочно погашен ипотечный кредит на квартиру дочери, оплачена куча строительных и ремонтных работ и создана «подушка безопасности», которая даже при 10% годовых больше годового дохода среднего россиянина. Хотя конечно для покрытия расходов моей семьи надо 20-25%% годовых. В чем проблема? В том, что в последующие годы этих 20-25%% годовых в среднем и не было…
2010- 2011
Почему не было? Да рынок изменился. Простая статистика: возьмем росты на 10%+ за 5-7 дней в 3 самых ликвидных акциях. Сколько их было в среднем в 1999-2009? От 3-х и больше каждый год. А сколько получаем в 2010-2014? Около 1 в среднем в указанные годы. А ведь именно эти три акции – большая доля моего портфеля. А кто я? Да как правильно выразился один из участников форума howtotrade в далеком 2007-м: «Горчаков – ловец кусочно-перпендикулярных трендов». Он только забыл добавить, что растущих. Еще одна грустная статистика для моей торговли: время контртрендовых участков на дневках тоже выросло по сравнению с 1999-2009. Упущено ли что-то? Да конечно. Чтобы понять происходящее, мне потребовалось два года (с июля 2009 по июль 2011 – именно в июле 2011 на дневках нашего рынка встречается самый длинный по времени контртрендовый участок за его всю историю с сентября 1995-го).
И еще год мне потребовался на «перестройку». Что собственно она показала? А то, что в РИ можно было в эти годы делать по 20-30%% годовых в лонгах без тех же плечей (т. е. при расчете от номинала, а не ГО). Почему? Да потому что его долларовость увеличивала движения. Но я упорно «бежал» от фьючей, о чем говорил в своем интервью журналу D’. И только первый и последний годовой минус за всю историю моей торговли в 2011-м заставил меня изменить позицию. Как это по-русски: «Пока гром не грянет…». Второй вывод: куча прибыли упущено в шортах, где те же самые движения на 10%+ за 5-7 дней встречались гораздо чаще, чем в 2001-2007 (в 1999-2000 такие были). И в том же 2011 можно было бы сделать 40% на шортах в моих системах. Сделал бы я это? Да даже с сегодняшнего понимания – нет, потому что шорты в акциях я торгую только на одну треть от лонгов, а во фьючерсах на половину. Но 13% в акциях и еще 20% на РИ на шортах-2011 можно было сделать. А если к этому добавить «фильтр пилы» также созданный в первой половине 2012, который убрал большую часть убытка в лонгах акций в 2011-м и увеличил прибыль в лонгах Ри с 12% до 25%, то получим, что уж не меньше 10%+ годовых в 2011-м я получить точно мог (Каленкович считает это «нулем», но для меня это хорошая «прибавка в жалованию» — см. выше). А что в реальности? -16,8% за 2011. А если взять еще и 2010 с его +8.7%, которые легко «превращаются» в 25%+ «по новому». Итого больше 40% прибыли за два года упущено. Кошмар! Вот «цена» консервативности и … «почивания на лаврах» после успешных 2008-июнь 2009 :( Ведь «первый звонок» прозвучал на росте в июле 2009-го. Но тут сыграл свою роль метод аналогий: в сентябре-декабре 2006 была та же «байда», но в 2008-м все сменилось радикально: надо просто ждать «своего рынка» и терпеть. Сколько? Как оказалось, на фондовом рынке до 2015-го. Немало…
2012-2013
Как я уже написал первая половина 2012-го прошла в «перестройке», ну а потом, если и было что-то упущено, то только из-за решения ограничить просадку 15%, а не 25%, как было до июля 2012-го. Почему? Да очень просто: в момент смены управления старая «парадигма» имела просадку 24,4%, а новая с риском 25% — 7,2%. Проиграть еще 10-15%% без «слома парадигмы» — это нормально для торговли, но ненормально по рискам. Упустил ли я что-то? С точки зрения принципа «сохранить и преумножить» — ничего. Ну такой у нас был в эти годы низковолатильный рынок, ничего не поделаешь. Мы помним истории «успеха» в эти годы, кроме hft на небольших объемах? Нет, тогда еще и инвестиции с дивидендами были не модны. Что делать? Да только менять профессию или рынок и я всерьез думал над этим до 3 марта 2014-го, который хоть и дал мне кучу убытка, но в корне изменил мой взгляд на будущую волатильность. Эх, если б я угадал, где она «стрельнет»…
2014
А «стрельнула» она осенью 2014-го в рубле-долларе, но не в ликвидных рублевых акциях. Что удивительно: и в 1998 и в 2008-м волатильность в акциях в среднем была выше волатильности в рубле-долларе, а тут, хоть и выросла, но оказалась значительно ниже того, что давал рубль-доллар. Та система в Си, которую я поставил в торговлю в январе 2015, в 2014-м дала 83% прибыли и она была самой низкой по доходности в 2014-м, некоторые из моих систем давали и по 200%+. Почему я выбрал ее? Да потому что она лучше всех «прошла» 2012-2013 (те системы, что дали 200%+ в 2014-м, в 2012-2013 «ушли в минус», а зачем мне еще и дополнительный минус и так в низкодоходные годы?). И, как показал опыт 2016-2017, с этим отбором я оказался прав, если опять же придерживаться принципа «сохранить и преумножить».
2015-2017
Что упущено? Наверное, только то, что на личном счете я не увеличил риски до 25% в просадке 10%+. Но тому есть объяснение: на счете компании я торговал с рисками 27,5% и имел «виды на премию», которая была бы больше в абсолюте дополнительных 25-30%% на моем счете за три года. Да и упустил ли я, если на одной трети счета под автоследованием Форума в январе 2015-сентябре 2016 заработал гораздо больше, чем эти 20-25%% от оставшихся 2/3. А «геммороя» прибавилось бы. А вот с премией вышел «облом»:
ни 35% годовых фондирования в 2015-м (в формуле премирования в том году такой цифры не было, а была доля в постоянных расходах компании пропорциональная лимитам управляющего, но на практике это и было примерно 35% годовых), ни 25% годовых в 2016-м (в этом году % фондирования и ФОТ управляющего были введены вместо доли в постоянных расходах) я превзойти в компании не смог. Ну в 2017-м и вопрос с премией не стоял, а стоял вопрос выхода из просадки в компании, а значит риски там снижать было нельзя, а увеличивать у себя было и не приоритетно.
И что в «сухом остатке»? А то, что если ставить во «главу угла» принцип «сохранить и преумножить», то упустил то я только дважды: июль 2009-июль 2012 (два года на осознание и год на исправление) и рубль-доллар 2014. И по деньгам и по %% — это небольшая доля прибыли за весь период с сентября 1998-го, о которой не стоит жалеть, но уроки извлечь надо. Отказаться от приоритета «сохранить» и признать, что упущено гораздо больше, чем заработано? Не знаю. Да, надо признать, что с «сохранить» за все годы у меня получилось гораздо лучше, чем с «преумножить», но ведь так и были расставлены приоритеты. Причем четыре кризиса: 1998-й, доткомов, ипотечный и нефтяной сыграли в моем случае за «преумножить», а вот остальные годы не столь удачны в этой части. А потому приглашаю Вас сегодня на мой бесплатный вебинар, посвященный тому, что у меня получалось лучше
www.finam.ru/webinars/lesson1343/item11293
Собираясь «уходить в свободное плавание», необходимо учитывать ряд моментов. Для себя подметил следующее:
1.Высокий уровень самоорганизации. Занятие не для недисциплинированных товарищей, захотевших «легких денег». То, что на обычной работе за тебя делает работодатель, придется делать самому – планировать. Рабочий день, время на трейдинг, на исследование новых идей. Достигать целей и ставить новые задачи. Способность день за днем, месяц за месяцем, год за годом самостоятельно следовать этой рутине есть не у всех. Даже сказал бы, что у меньшинства.
Майкл Беллафиоре об этом написал так: «Какой смысл учить трейдера дисциплинированному поведению на рынке, если он расхлябан и несобран в повседневной жизни?»
Нашел на просторах интернета)))
Всем известно, что манипулировать рынками можно распуская слухи о каких-нибудь событиях, существенно влияющих на состояние той или иной компании. Такие манипуляции случаются довольно часто, они являются прямым нарушением законов практически всех развитых стран и подлежат расследованию с целью найти источник таких слухов.
Высказывания различных аналитиков, в принципе, тоже можно считать влиянием на рынок с целью манипулирования оным, но аналитика трудно уличить в злом умысле, поскольку он всегда может привести разные доводы в пользу своего мнения, и он, как человек, имеет право на ошибку, и вполне может не принять в расчёт тот или иной фактор, способный повлиять на его выводы, которые он озвучил в прессе. То есть высказывания аналитиков за манипулирование рынком обычно не считается.
Но это всё классические примеры манипуляций, однако есть другой метод манипулирования рынком, как, например, покупка или продажа (или выставление на покупку или продажу) огромного пакета активов (акций, фьючерсных контрактов или чего-то ещё). Иногда, что бы остановить движение цен, надо просто выставить заявку на огромный пакет актива, иногда надо агрессивно продавать или покупать (агрессивно — огромными объёмами, часто приказами «по рынку»), иногда надо агрессивно «сбивать волну» в течении нескольких дней и т. д. и т. п..
require"QL" log = "sbrf.log" seccode = "SRM6" lots_in_trade = 80 accnt = "" better = -5 chart = "sberbankxxx" is_run = true prev_datetime = {} len = 100 basis = 9 k_bal = {0,1,2,3} sell = false buy = false id = 0 first = true function trade_signal(shift) number_of_candles = getNumCandles(chart) bars_temp,res,legend = getCandlesByIndex(chart,0,number_of_candles-2*len-shift,2*len) bars={} i=len j=2*len while i>=1 do if bars_temp[j-1].datetime.hour>=10 then sk=true if bars_temp[j-1].datetime.hour==18 and bars_temp[j-1].datetime.min==45 then sk=false end if sk then bars[i]=bars_temp[j-1] i=i-1 end end j=j-1 end t = len+1 do_sell = false do_buy = true value = 0 if do_sell then value = 1 end if do_buy then value = -1 end toLog(log,"value="..value.." on candle: "..bars[len].datetime.year.."-"..bars[len].datetime.month.."-"..bars[len].datetime.day.." "..bars[len].datetime.hour..":"..bars[len].datetime.min.." O="..bars[len].open.." H="..bars[len].high.." L="..bars[len].low.." C="..bars[len].close.." V="..bars[len].volume) return value end function mysplit(inputstr, sep) if sep == nil then sep = "%s" end local t={} ; i=1 for str in string.gmatch(inputstr, "([^"..sep.."]+)") do t[i] = str i = i + 1 end return t end function OnInit(path) log=getScriptPath()..'\\'..log toLog(log,"==========OnInit: START") toLog(log,"==========OnInit: FINISH") end function OnStop() is_run = false toLog(log,"==========OnStop: script finished manually") end function CheckBit(flags, bit) -- Проверяет, что переданные аргументы являются числами if type(flags) ~= "number" then error("Ошибка!!! Checkbit: 1-й аргумент не число!"); end; if type(bit) ~= "number" then error("Ошибка!!! Checkbit: 2-й аргумент не число!"); end; local RevBitsStr = ""; -- Перевернутое (задом наперед) строковое представление двоичного представления переданного десятичного числа (flags) local Fmod = 0; -- Остаток от деления local Go = true; -- Флаг работы цикла while Go do Fmod = math.fmod(flags, 2); -- Остаток от деления flags = math.floor(flags/2); -- Оставляет для следующей итерации цикла только целую часть от деления RevBitsStr = RevBitsStr ..tostring(Fmod); -- Добавляет справа остаток от деления if flags == 0 then Go = false; end; -- Если был последний бит, завершает цикл end; -- Возвращает значение бита local Result = RevBitsStr :sub(bit+1,bit+1); if Result == "0" then return 0; elseif Result == "1" then return 1; else return nil; end; end; function killorders(ccode,scode) for i=0,getNumberOf("orders")-1,1 do local t=getItem("orders", i) if t ~= nil and type(t) == "table" then if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then local transaction={ ["TRANS_ID"]=tostring(math.random(2000000000)), ["ACTION"]="KILL_ORDER", ["CLASSCODE"]=ccode, ["SECCODE"]=scode, ["ACCOUNT"] = accnt, ["ORDER_KEY"]=tostring(t.ordernum), } res=sendTransaction(transaction) end end end end function killstoporders(ccode,scode) for i=0,getNumberOf("stop_orders")-1,1 do local t=getItem("stop_orders", i) if t ~= nil and type(t) == "table" then if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then local transaction={ ["TRANS_ID"]=tostring(math.random(2000000000)), ["ACTION"]="KILL_STOP_ORDER", ["CLASSCODE"]=ccode, ["SECCODE"]=scode, ["ACCOUNT"] = accnt, ["STOP_ORDER_KEY"]=tostring(t.ordernum), } res=sendTransaction(transaction) end end end end function main() toLog(log,"==========main: START") while is_run do if isConnected() == 1 then ss = getInfoParam("SERVERTIME") if string.len(ss) >= 5 then hh = mysplit(ss,":") str=hh[1]..hh[2] h = tonumber(str) if (h>=1000 and h<1400) or (h>=1405 and h<1845) or (h>=1905 and h<2350) then if first then for ti = 50,2,-1 do trade_signal(ti) end if buy and not sell then message(seccode.." Current state: green and buy",1) end if sell and not buy then message(seccode.." Current state: red and sell",1) end if buy and sell then message(seccode.." ERROR: green and red",1) end if not buy and not sell then message(seccode.." WARNING: nothing",1) end first = false end prev_candle = getPrevCandle(chart,0) if not isEqual(prev_candle.datetime,prev_datetime) then current_value = trade_signal(1) if current_value ~= 0 then optn = "B" if current_value==1 then optn = "S" end curvol=0 no=getNumberOf("FUTURES_CLIENT_HOLDING") if no>0 then for i=0,no-1,1 do im=getItem("FUTURES_CLIENT_HOLDING", i) if im.sec_code==seccode then curvol=im.totalnet end end end trvol = -current_value*lots_in_trade-curvol if trvol ~= 0 then killorders("SPBFUT",seccode) killstoporders("SPBFUT",seccode) f = io.open(getScriptPath().."\\sbrf2_pos.txt","r") sbrf2_pos=f:read("*n") f:close() f = io.open(getScriptPath().."\\sbrf3_pos.txt","r") sbrf3_pos=f:read("*n") f:close() pr,n,l = getCandlesByIndex ("futsber", 0, getNumCandles("futsber")-1, 1) local trans = { ["ACTION"] = "NEW_ORDER", ["CLASSCODE"] = "SPBFUT", ["SECCODE"] = seccode, ["ACCOUNT"] = accnt, ["OPERATION"] = optn, ["PRICE"] = toPrice(seccode,pr[0].close+current_value*better), ["QUANTITY"] = tostring(math.abs(curvol-sbrf2_pos-sbrf3_pos)), ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id) } id = id+1 --res = sendTransaction(trans) message(seccode.." Send : " .. res, 2) toLog(log,"Send: ".. res) for btr=0,200,5 do local trans = { ["ACTION"] = "NEW_STOP_ORDER", ["CLASSCODE"] = "SPBFUT", ["SECCODE"] = seccode, ["ACCOUNT"] = accnt, ["OPERATION"] = optn, ["PRICE"] = toPrice(seccode,pr[0].close-current_value*btr), ["STOPPRICE"] = toPrice(seccode,pr[0].close-current_value*(btr+better)), ["QUANTITY"] = tostring(6), ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id), ["EXPIRY_DATE"] = "GTC" } id = id+1 --res = sendTransaction(trans) message(seccode.." Send : " .. res, 2) toLog(log,"Send: ".. res) end if current_value == 1 then message(seccode..' RED: buy->sell',1) toLog(log,"RED signal") else message(seccode..' GREEN: sell->buy',1) toLog(log,"GREEN signal") end else if current_value == 1 then message(seccode..' RED: buy->sell',1) toLog(log,"RED signal, but nothing to do") else message(seccode..' GREEN: sell->buy',1) toLog(log,"GREEN signal, but nothing to do") end end else if buy and not sell then toLog(log,"Nothing to do. Current state: green and buy",1) end if sell and not buy then toLog(log,"Nothing to do. Current state: red and sell",1) end if buy and sell then toLog(log,"Nothing to do. ERROR: green and red",1) end if not buy and not sell then toLog(log,"Nothing to do. WARNING: nothing",1) end end prev_datetime = prev_candle.datetime end end end end sleep(5*1000) end toLog(log,"==========main: FINISH") end
В этом месяце исполняется одиннадцать лет, как открыл первый брокерский счет на российском фондовом рынке. Хороший срок. Уже почти треть жизни живу в торговле и инвестициях. Захотелось описать некоторые моменты своего пути на рынке. Во-первых, для того, чтобы самому освежить в памяти. Время идет. Все постепенно забывается. Во-вторых, может кому-то окажется полезным. Итак…
Предыстория
На начало 2006 года сложились несколько факторов. Бизнес, которым начал заниматься после универа, стал приносить лишнюю копейку. Высвободилось время, которое можно было посвятить саморазвитию. Фактически, это был поиск новой ниши, которой можно посвятить время и вложить свободные деньги.
Знакомый посоветовал «Руководство богатого папы…» Кийосаки. Зона поиска сузилась. Через неделю открыл счет на рынке акций. Оглядываясь назад, думаю, что повезло, так как избежал форекса: кухонь, излишних плечей и т.п.