Избранное трейдера autotrade
TICER = "SBER"; CLASS_CODE = "TQBR"; FilePath = getScriptPath() .. "\\export.txt";--путь к файлу save = false;--сохранять данные в файл если false нет, true да f = nil; stopped = false; t_id = nil H = -1; M = -1; VSELL = 0; VBUY = 0; CDelta = 0; CountTrans = 0; PriceTrans = 0.0; t = ""; function OnInit() CountTrans = 0; if save then f = io.open(FilePath,"w"); end CreateTable(); end function main() while not stopped do if IsWindowClosed(t_id) then stopped = true; end sleep(10); end end function CreateTable() t_id = AllocTable(); AddColumn(t_id, 0, "Время", true, QTABLE_STRING_TYPE, 10); AddColumn(t_id, 1, "BUY", true, QTABLE_INT_TYPE, 10); AddColumn(t_id, 2, "SELL", true, QTABLE_INT_TYPE, 10); AddColumn(t_id, 3, "Дельта V", true, QTABLE_INT_TYPE, 10); AddColumn(t_id, 4, "AVG Цена", true, QTABLE_DOUBLE_TYPE, 15); AddColumn(t_id, 5, "Накопленная Дельта", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 6, "Кол-во сделок", true, QTABLE_DOUBLE_TYPE, 12); tab = CreateWindow(t_id); local NAME = tostring(getParamEx(CLASS_CODE,TICER,"LONGNAME").param_image); SetWindowCaption(t_id, TICER.." ("..NAME..") Баланс покупок/продаж"); SetTableNotificationCallback(t_id, EventCallBack); end function Calc(alltrade) if bit.test(alltrade.flags, 0) then VSELL = VSELL+alltrade.qty; --Продажа else VBUY = VBUY+alltrade.qty; end CountTrans = CountTrans+1; PriceTrans = PriceTrans+alltrade.price; end function OnAllTrade(alltrade) if alltrade.sec_code == TICER then local Rows, Col = GetTableSize(t_id); if H==-1 or H~= alltrade.datetime.hour then H = alltrade.datetime.hour; M = alltrade.datetime.min; t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min); end if M==alltrade.datetime.min then Calc(alltrade); else M=alltrade.datetime.min; InsertRow(t_id, -1); local Delta = VBUY-VSELL; Price = PriceTrans/CountTrans; SetCell(t_id, Rows, 6, tostring(CountTrans)); SetCell(t_id, Rows, 0, t); SetCell(t_id, Rows, 1, tostring(VBUY)); SetCell(t_id, Rows, 2, tostring(VSELL)); SetCell(t_id, Rows, 3, tostring(Delta)); local SEC_SCALE = tostring(getParamEx(CLASS_CODE,TICER,"SEC_SCALE").param_value); SEC_SCALE = string.format("%.0f",SEC_SCALE); SetCell(t_id, Rows, 4, string.format("%."..SEC_SCALE.."f", tostring(Price))); if Rows>=2 then local OldPrice = tonumber(GetCell(t_id,Rows-1,4).image); if OldPrice>Price then Red(Rows,4); else Green(Rows,4); end CDelta = tonumber(GetCell(t_id,Rows-1,5).image); CDelta = CDelta + Delta; else CDelta = Delta; end SetCell(t_id, Rows, 5, tostring(CDelta)); if Delta<0 then Red(Rows,3); end if Delta>0 then Green(Rows,3); end if CDelta<0 then Red(Rows,5); end if CDelta>0 then Green(Rows,5); end if save then local Str = tostring(H)..";"..tostring(M)..";"..tostring(VBUY)..";"..tostring(VSELL)..";" ..tostring(Delta)..";"..tostring(Price)..";"..tostring(CDelta); Str=Str.."\n"; SaveFile(Str); end t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min); VBUY = 0;VSELL = 0; PriceTrans = 0; CountTrans = 0; Calc(alltrade); end end --if alltrade.sec_code == TICER then end function SaveFile(Str) if f ~= nil then f:write(Str); f:flush(); end end function Red(row,col) SetColor(t_id, row, col, RGB(255,0,0), RGB(0,0,0), RGB(255,0,0), RGB(0,0,0)); end function Yellow(row,col) SetColor(t_id, row, col, RGB(240,240,0), RGB(0,0,0), RGB(240,240,0), RGB(0,0,0)); end function Green(row,col) SetColor(t_id, row, col, RGB(0,200,0), RGB(0,0,0), RGB(0,200,0), RGB(0,0,0)); end function EventCallBack(t_id, msg, par1, par2) if msg==QTABLE_CLOSE then OnStop(); end; end function OnStop(s) if f ~= nil then f:close(); end if t_id ~= nil then DestroyTable (t_id); end; stopped = true; end
За последнее десятилетие индекс S&P 500 вырос в 3,5 раза, что соответствует 13,5% ежегодной доходности. Но несколько акций, которые входят в состав индекса, сильно его опередили. Я сделал подборку этих компаний, описал, чем они занимаются, и посчитал, какую доходность они показали.
Netflix
Сфера: потоковое мультимедиа
Рост: 40x
Описание: американская развлекательная компания, которая производит и поставляет фильмы и сериалы. Если вы слышали про Ведьмака или Карточный Домик, то понимаете, о чем идет речь. Netflix начинался с проката DVD, затем добавились сервисы онлайн-подписки и потокового видео. Выручка компании стала активно расти в 2013 году, тогда же пошли вверх котировки. Среднегодовая доходность акций Netflix за десять лет составила 44,68% с учетом сложных процентов.
Broadcom
Доброе утро!
❗️ Экономика: заказы на товары длительного пользования в США выросли на 2,4% в декабре. Считаем, что отчет был негативным для рынка из-за снижения заказов, если исключить транспорт и военную технику (+168%). В то же время, уверенность потребителей выросла до 6-месячного максимума. Сегодня заседание ФРС и пресс-конференция.
✅ Apple (AAPL US) представил сильные результаты за квартал, существенно превысив прогноз (выручка $92 млрд при консенсусе $88.4 млрд). Прогноз выручки на следующий квартал: выручка $65 млрд при консенсусе $62,3 млрд, обусловленном высоким ростом продаж на развивающихся рынках. Акции Apple обновили исторический максимум на пост-торгах.
✅ LVMH (LVMH PA) сообщил о сильных результатах за 2019 год, опередив ожидания. Органический рост +10%, рост выручки + 15%. Компания объявила об увеличении дивидендов + 13% год к году. Акции выросли, несмотря на то, что на Китай и Гонконг приходится значимая доля в росте продаж компании.
Посмотрел тут на выходных сборник с официальной статистической информацией от Росстата — хотел там увидеть свежие цифры по вкладам россиян, но несмотря на то, что сборник опубликован 30.12.2019, данные по вкладам в нём актуальны на 01.01.2019.
Ну да ладно, не пропадать же добру, поэтому делюсь своими изысканиями с вами. Карты правда вставились не очень хорошо, чтоб детально разглядеть — откройте оригинал (ссылки на оригинал на файлообменнике — под каждой картой)
ДЕНЬГИ РОССИЯН
Итак, в банках в стране на 01.01.2019 хранится 28 триллионов 577 миллиардов рублей на счетах физлиц. Тут всё — вклады, накопительные счета, деньги на дебетовых карточках. Здесь не учтены все другие активы — недвижимость, ценные бумаги, наличность под матрасом и т.д.
Это, кстати, почти в два раза больше, чем на счетах юридических лиц!
Мне нравится Lua. Lua хороший компактный язык на котором можно сделать индикаторы, различные вспомогательные программы, помогающие трейдеру и даже несложные торговые системы (ТС, роботы). Пожалуй единственная книга по Lua — Роберту Иерузалимски: Программирование на языке Lua. Ее можно найти в интернете.
Lua имеет также несложный C-API позволяющий связать программы Quik Lua с внешним миром через DLL и получить доступ практически ко всему, в том числе к любым математическим библиотекам обработки данных, что необходимо для сколь-нибудь сложным ТС. Однако, для этого уже необходимо знание не только Lua, но и Lua C-API, языка С/С++, а также умения писать DLL. При этом надо будет решить еще ряд проблем, которые возникнут по ходу пьесы в процессе этой деятельности. Далеко не каждый пользователь Quik и Lua может все это реализовать в обозримое время.
У Quik Lua (QLua) есть еще недостатки — все события терминала в Lua работают в потоке терминала, и получив из них данные надо как можно быстрей завершать функции обработки этих данных и освобождать поток терминала, иначе терминал просто повиснет. Единственная функция QLua работающая в собственном потоке — это main() и вся сколь-нибудь сложная обработка может находиться только в ней.
Кроме того, для Lua крайне мало библиотек, а существующие работают оч не быстро. В принципе, это и не нужно, если можно организовать связь с внешним миром через C-API. Но нам от этого легче не становится.) Короче, для написания хорошей сложной ТС нам надо выйти за пределы QLua и установить связь с внешним миром, и сделать это доступными средствами.
Сейчас наиболее продвинутым языком, включающим в себя массу библиотек обработки данных является Python. По применимости для обработки данных он, пожалуй, занимает первое место в мире, а по распространенности входит в первую пятерку. В числе библиотек — математические, статистические, машинного обучения и пр., и пр. Таких библиотек более тысячи только в Anaconda, большинство из которых устанавливается при ее инсталяции. Вы можете не использовать Anaconda и скачать Python с сайта
Кто слышал, что сидячий образ жизни вреднее курения? Это, конечно, звучит как доведенный до абсурда заголовок желтой
прессы, но автор этой фразы не собирается отступаться. Это доктор Джеймс Левайн, директор Инициативы по борьбе с ожирением клиники Майо и Университета штата Аризона, и он зашел даже дальше. Вот что он говорит: «Сидение опаснее, чем курение, убивает больше людей, чем ВИЧ, и коварнее, чем парашютный спорт». Его вывод прост: «Сидя, мы убиваем себя» . Добрый доктор — не единственный, кто бьет тревогу. Доктор Левайн и все большее число других экспертов, основываясь на целой горе научных исследований, говорят, что если сидеть всего два часа без перерыва, это внесколько раз повышает риск развития болезней сердца, диабета, метаболического синдрома, рака, боли в шее и спине и других ортопедических проблем. Сидение, как и курение, сокращает вашу жизнь. Многие исследования также показывают, что эффекты от долгосрочно-
го сидения невозможно обратить вспять физическими упражнениями или другими хорошими привычками. Это значит, что даже если вы правильно
питаетесь и целый час в день проводите в спортзале, но потом практически весь день сидите, то все ваши физические упражнения просто не до-
стигнут цели. Вы все равно ведете сидячий образ жизни. Некоторые эксперты даже заявляют, что сидение воздействует на здоровье
еще пагубнее, чем курение. Исследование, проведенное в Австралии в 2008 году, показывает, что каждый час, проведенный у телевизора
после 25 лет, сокращает ожидаемую продолжительность жизни телезрителя на 21,8 минуты. Для сравнения, выкурив одну сигарету, вы сокращаете свою жизнь на 11 минут. Доктор Левайн утверждает, что каждый сидячий час сокращает нашу жизнь на два часа .
У типичного сидячего офисного работника больше мышечно-скелетных травм, чем у любого другого работника производственных отраслей, вклю-
чая строительство, металлургию и транспорт. Один исследователь пришел к выводу, что сидение — это такой же профессиональный риск, как поднятие тяжестей или разгрузка вагонов . Последние два десятилетия врачи и ученые-исследователи очень активно
изучали опасность сидения. Пресса же лишь недавно снизошла до того, чтобы назвать эту проблему «кризисом в здравоохранении» — только по-
сле того, как появилось множество доказательств связи сидячего образа жизни с самыми разнообразными негативными эффектами для здоровья.
Сегодня Всемирная организация здравоохранения ставит недостаточную физическую активность — слишком много времени, проведенного в сидячем положении, — на четвертое место в списке предотвратимых причин смерти в мире: ежегодно, по оценкам, она вызывает 3,2 миллиона смертей.
Множество инвесторов фондового рынка часто применяют для отбора акций теорию Бенджамина Грэма. По мнению авторов, каждая акция обладает некой внутренней (истинной, реальной) стоимостью, которая находится в зависимости от ее рыночной стоимости. Один из постулатов теории гласит, что стоимость актива предопределена фундаментальными показателями, и обычно на нее не действуют спекулятивные прогнозы о грядущей доходности.
В долгосрочной перспективе те, кто работает, отталкиваясь от внутренней стоимости, ожидают приближения котировок к действительной цене. При этом цены могут долго колебаться значительно выше или ниже этого уровня, прежде чем вернуться, подобно тому, как они всегда возвращаются к скользящей средней на ценовом графике.
Б. Грэм смог доказать состоятельность своих доводов даже в годы американской Великой Депрессии, когда большинство фондовых инвесторов потерпели крах. Его труды «Анализ ценных бумаг» (Benjamin Graham, David L. Dodd – Security Analysis, 1934 г.) и «Разумный инвестор» (Benjamin Graham – The Intelligent Investor, 1949 г.) – настоящая классика, не теряющая актуальности и в наши дни. Самым известным практиком теории Грэма является Уоррен Баффет.