Избранное трейдера stas1112
Часть 1. Считаем НКД (накопленный купонный доход)
Мало кто из частных инвесторов заморачивается ведением своего портфеля. Конечно, это неправильно, но вполне можно понять. Слишком много времени уходит на учет, а его всегда и всем не хватает. Поэтому и доверяют своему торговому приложению. Но не видя картинки в целом, очень трудно принимать как стратегические, так и тактические решения по портфелю.
Сейчас есть приложения, которые помогают вести портфель. Они не бесплатные, но порядок в портфеле того стоит.
Но я хотела рассказать о тои, как можно вести облигационный портфель в Excel. Какие есть специализированные функции для этого. Возможно, кому-то это будет полезно.
Рассмотрим в качестве примера выпуск УральскаяСталь-БО-001Р-02. Какая информация о бумаге нам может понадобиться?
Для начала:
В нашем случае это будет выглядеть таким образом.
Доходы от купли-продажи иностранной валюты облагаются налогом по ставке 13% или 15% (для доходов, превышающих 5 млн рублей за год). Но платить нужно не всегда. Для того чтобы лучше это понять, давайте разберемся в основных моментах.
Для налоговых целей валюта является имуществом, а раз так, то при ее продаже применяются другие нормы и правила. Хотя есть и некоторые сходства.
Продажа минус покупка
Налоговая база определяется как разница между стоимостью продажи валюты и стоимостью ее покупки отдельно по каждой операции. Налог уплачивается с полученного результата в целом за год.
Приведем простой пример. Инвестор купил 2 000 долларов США по курсу 60 рублей за доллар. Через какое-то время продал валюту по 80 рублей за доллар, заплатив при этом 500 рублей комиссии брокеру. Налог рассчитывается так:
расходы на покупку: 2 000 у.е. * 60 рублей = 120 000 рублей;
доход от продажи — 2 000 у.е. * 80 рублей = 160 000 рублей;
прибыль — 160 000 рублей (доход) — 120 000 рублей (покупка) — 500 рублей (комиссия) = 39 500 рублей:
Сегодня рассмотрим:
Что такое таблица обезличенных сделок.
Настройка таблицы в терминале.
Что делать, если таблица открылась, но она пустая.
Вывод данных с таблицы по DDE.
Работа с таблицей обезличенных сделок через скрипт qlua с примерами.
Пишем советника, показывающего на графике крупных игроков.
Лента всех сделок (она же таблица обезличенных сделок, она же таблица всех сделок) — это тиковый массив сделок с одним или несколькими инструментами, в котором отражается информация по каждой сделке, в т.ч.: цена, объём и направление транзакции (покупка/продажа). Обычно для работы выбирается один инструмент, который отслеживается, реже 2 (например базовый актив и ближайший фьючерс на него). Встречал варианты, когда грузят сразу большой список, но в этом случае может сильно подвисать терминал.
Зачем нужна лента сделок: многие, пытаясь торговать внутри дня, проводят часы за медитативным наблюдением за биржевым стаканом. Однако стакан заявок это только намерение, далеко не все выставленные заявки перейдут в сделки. Более того иногда по некоторым акциям (2го и 3го эшелона) заявки в стакане могут активно «двигаться», создавая видимость, что в бумаге идет активная торговля, при этом, если открыть таблицу всех сделок, то будет видно, что реальных сделок практически нет.
Продолжаем изучение qlua, cегодня:
Интегрируем таблицы в структуру скрипта qlua.
Удаляем таблицы через DestroyTable.
Останавливаем скрипт через IsWindowClosed.
Обработка события закрытия таблицы через коллбэк.
Работа с цветом SetColor, Highlight, SetSelectedRow.
Пишем простого советника.
В прошлый раз мы рассмотрели как с помощью qlua создать таблицу в торговом терминале и заполнить её информацией из таблицы текущих торгов. Но это была статичная табличка, чтобы её «оживить» нужно разместить операции с нашей таблицей внутри структуры скрипта в функции main.
Саму таблицу мы можем создать до цикла while и внести неизменяемые данные (в нашем случае тикер и наименование бумаги), а уже заполнить цифрами и обновлять внутри цикла. Пока будет работать скрипт таблица будет обновляться.
function OnInit() tikers = {"GAZP", "SBER", "VKCO"} progname = "mytable :" timeout = 5000 end function OnStop() do_it = false message(progname.." Финиш.") end function main() message(progname.