Избранное трейдера Роман Давыдов

по

Получение котировок акций в Excel

До недавнего времени получал котировки в таблицы Google с помощью формулы
=IMPORTxml(«iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,PREVADMITTEDQUOTE», concatenate("//row[@SECID='",A2,"']/@PREVADMITTEDQUOTE"))

Сейчас она перестала работать.

Кто-нибудь может подсказать, как исправить формулу, чтобы она работала сейчас?

О ценах, модели Блэка-Шоулза и графическом анализе. Часть 1

    • 30 января 2023, 13:06
    • |
    • А. Г.
      Проверенный аккаунт
  • Еще

Эту таблицу я впервые приводил в своем выступлении на конференции Смартлаба  весной 2016-го и повторил на конференции 2018-го, акцентировав внимание на том, что хочу оформить письменно ниже

 О ценах, модели Блэка-Шоулза и  графическом анализе. Часть 1

Что в таблице?  В таблице доли участков RI (фьючерс на индекс РТС — прим. мое) из 10 приращений, как по отдельным периодам, так и в целом, которые я отнес к «трендам». Что я считал «трендом»? «Трендом» я считал участки, на которых среднее приращений цен (или приращений логарифмов цен, что эквивалентно) отлично от нуля и если оно больше нуля, то относим отрезок к «трендам вверх», а если меньше нуля – к «трендам вниз».

 Какой использовался критерий? Обычный модифицированный критерий Стьюдента на отличие приращений логарифма(!) цены от приращений гауссовского процесса со средним нуль  и дисперсией «почти равной» для 9 испытаний из 10 (нулевая гипотеза). Так как мы имеем критерий на различие сложной гипотезы против простой, то распределение статистики критерия точно известно нам только  при простой гипотезе. И потому при априори выбранных границах критерия мы можем знать только вероятности попадания последовательности из 10 значений в наши «классы» при верности нулевой гипотезы.



( Читать дальше )

Тестируем стратегию с помощью backtrader

Прошел полный месяц торгов, и мой робот показал +60%

Тестируем стратегию с помощью backtrader

В прошлом посте я просил у вас лайки, на данный пост я потратил 6 часов, которые мог бы потратить на что-то другое. Если вы хотите увидеть следующий пост, где мы уже будем подбирать параметры для нашей торговой системы. С вас 50 лайков :) 

Сам я НЕ программист, мне нравится, когда мне рассказывают все по шагам. Бродя по интернету я нашел блог Игоря Чечета, который выложил небольшой курс по старту в backtrader: https://finlab.vip/wpm-category/btquikstart/

Я просто просмотрел все видео и повторял каждый шаг. Нет никакой магии. Просто смотрите и повторяете у себя. 

Еще раз, для тех, кто читает слишком быстро: Просто смотрим видео, повторяем действия и у вас все получится. 

Тестируем стратегию с помощью backtrader



( Читать дальше )

Машинное обучение и точка минимальных выплат по опционам.

В продолжение. После обучения нейронки по прогнозированию цены фьючерса на конец торговой сессии по точке минимальных выплат опционов, решил попробовать другие методы машинного обучения. Сделал без подбора параметров. Результат уступает нейронке (но нейронку я долго гонял и подбирал конфигурацию). 
Если кто-то может посоветовать подбор параметров, то напишите пожалуйста.
Также интересно как реализовать кросс валидацию на нейронке.

Ссылка Colab Notebook по машинному обучению:
drive.google.com/file/d/1SY3qrqMF7XD4WDqoDCfzFexLe4LXeNZZ/view?usp=sharing

Наступает золотая эра опционных бабочек! 🦋

    • 30 ноября 2022, 16:03
    • |
    • KarL$oH
  • Еще
Привет, Малыш!

Сегодня мы с тобой побудем немного лепидоптерофилистами, ведь наступает золотая эра бабочек:

Наступает золотая эра опционных бабочек! 🦋

Что? Ты не знаешь кто это такие?

Оооо, мой друг, это любители халявы, но понять их сможет лишь опционщик.

Эквити у торговца бабочками должна выглядеть примерно следующим образом:

Наступает золотая эра опционных бабочек! 🦋

( Читать дальше )

Мог ли выжить Дядя Дёнер? Нет!

Через 5 месяцев, 25.04.2023 года, Дядя Дёнер должен будет погасить последний выпуск своих облигаций. Все прекрасно понимают, что это не произойдёт, но речь вовсе не об этом. Речь о том, а можно ли было просчитать такой сценарий событий вокруг Дяди Дёнера?
Целью данной статьи является пример анализа роста компании и её чистой прибыли и построение выводов почему был дефолт. Этой статьёй я хочу познакомить вас с методикой, которая позволяет прогнозировать и вовремя распознавать финансово несостоятельные компании.

Мог ли выжить Дядя Дёнер? Нет!

Вначале стоит напомнить, для чего компании берут долгосрочный долг. Долгосрочный заём берётся для того, чтобы нарастить активы компании. Ведь мы знаем, что именно активы компании приносят выручку и, как следствие прибыль, кстати, последнее необязательно, если расходы компании превышают выручку.

С оставшихся денег, после выплаты всех текущих обязательств, компания может заплатить дивиденды акционерам, вывести и поделить прибыль, или нарастить собственный капитал, то есть активы.



( Читать дальше )

Синтетическая облигация. Помогите с Qlua.

Приветствую всех!

Сам я не программист, но решил написать скрипт, который будет выводить табличку по доходности синтетических облигаций (покупка акций/продажа фьючерса). Идея в получении дохода от контанго. Скрипт работает и табличка выводится, но через некоторое время появляется ошибка о недостатке памяти.

Подскажите, что я сделал не так?

Синтетическая облигация. Ошибка памяти.
<code>-- ©2022 by Aleksey Manin
-- Таблица расчета доходности синтетической облигации
-- Какие инструменты(тикеры) отслеживаем. Таблица пар тикер - площадка
tickers = {GAZP = {GAZP = "TQBR", GZZ2 = "SPBFUT"},
           SBER = {SBER = "TQBR", SRZ2 = "SPBFUT"},
           PLZL = {PLZL = "TQBR", PZZ2 = "SPBFUT"},
           GMKN = {GMKN = "TQBR", GKZ2 = "SPBFUT"},
           LKOH = {LKOH = "TQBR", LKZ2 = "SPBFUT"},
           AFLT = {AFLT = "TQBR", AFZ2 = "SPBFUT"},
           NVTK = {NVTK = "TQBR", NKZ2 = "SPBFUT"},
           YNDX = {YNDX = "TQBR", YNZ2 = "SPBFUT"},
           --MOEX = {MOEX = "TQBR", MXZ2 = "SPBFUT"},
           ALRS = {ALRS = "TQBR", ALZ2 = "SPBFUT"},
           VTBR = {VTBR = "TQBR", VBZ2 = "SPBFUT"},
           SNGS = {SNGS = "TQBR", SNZ2 = "SPBFUT"},
           MGNT = {MGNT = "TQBR", MNZ2 = "SPBFUT"},
           NLMK = {NLMK = "TQBR", NMZ2 = "SPBFUT"},
           MTSS = {MTSS = "TQBR", MTZ2 = "SPBFUT"},
           ROSN = {ROSN = "TQBR", RNZ2 = "SPBFUT"}}
rows = {} -- Список строк в таблице по количеству тикеров
oblig_t = AllocTable() -- Указатель на саму таблицу
stopped = false -- Остановка скрипта

-- Функция вызывается перед вызовом main
function OnInit(path)
  AddColumn(oblig_t, 0, "Ticker_BA", true, QTABLE_STRING_TYPE, 8) -- "Ticker"- название первого столбца в таблице
  AddColumn(oblig_t, 1, "Lot_BA", true, QTABLE_INT_TYPE, 8) -- 
  AddColumn(oblig_t, 2, "Ask_BA", true, QTABLE_DOUBLE_TYPE, 10) -- 
  AddColumn(oblig_t, 3, "Ticker_F", true, QTABLE_STRING_TYPE, 10) -- 
  AddColumn(oblig_t, 4, "Lot_F", true, QTABLE_INT_TYPE, 8) -- 
  AddColumn(oblig_t, 5, "Bid_F", true, QTABLE_DOUBLE_TYPE, 10) -- 
  AddColumn(oblig_t, 6, "Day_EXP", true, QTABLE_INT_TYPE, 10) -- 
  AddColumn(oblig_t, 7, "Date_EXP", true, QTABLE_DATE_TYPE, 15) -- 
  AddColumn(oblig_t, 8, "Dohod%", true, QTABLE_DOUBLE_TYPE, 10) -- 
  AddColumn(oblig_t, 9, "Dohod", true, QTABLE_DOUBLE_TYPE, 10) -- 

  CreateWindow(oblig_t) -- Создание окна таблицы
  SetWindowCaption(oblig_t, "Синтетическая облигация") -- Даем название таблице

  for ticker, two in pairs(tickers) do -- Перебираем пары БА-Фьючерс
    rows[ticker] = InsertRow(oblig_t, -1) -- Заносим тикер в список строк
  end
end

function Run()
  for ticker, two in pairs(tickers) do -- Перебираем пары БА-Фьючерс
    ask_ba = 0.0
    bid_f = 0.0
    lot_f = 0
    for ticker_two, board in pairs(two) do -- Перебираем Тикеры внутри пары БА-Фьючерс
      if ticker == ticker_two then -- Если Тикер БА
        SetCell(oblig_t, rows[ticker], 0, ticker_two) -- Заполняем ячейке Тикера БА
        SetCell(oblig_t, rows[ticker], 1, -- Заполняем лот БА
                string.format("%u", getParamEx (board, ticker_two, "LOTSIZE").param_value))
        ask_ba = getParamEx (board, ticker_two, "OFFER").param_value
        SetCell(oblig_t, rows[ticker], 2, string.format("%.2f", ask_ba)) -- Аск БА
      else -- Если Тикер фьючерса
        SetCell(oblig_t, rows[ticker], 3, ticker_two) -- Заполняем ячейку Тикера фьючерса
        lot_f = getParamEx (board, ticker_two, "LOTSIZE").param_value
        SetCell(oblig_t, rows[ticker], 4, string.format("%u", lot_f))
        bid_f = getParamEx (board, ticker_two, "BID").param_value
        SetCell(oblig_t, rows[ticker], 5, string.format("%u", bid_f))
        day_exp = getParamEx (board, ticker_two, "DAYS_TO_MAT_DATE").param_value
        SetCell(oblig_t, rows[ticker], 6, string.format("%u", day_exp))
        SetCell(oblig_t, rows[ticker], 7, 
                string.format("%u", getParamEx (board, ticker_two, "MAT_DATE").param_value))
        --message('Дата:'..getParamEx (board, ticker_two, "MAT_DATE").param_type)
      end
    end
    sum_ba = ask_ba * lot_f
    --message('Тикер:'..ticker..' lot_f:'..lot_f..' sum_ba:'..sum_ba)
    sum_year = (bid_f - sum_ba) / day_exp * 365
    percent = sum_year * 100 / sum_ba
    SetCell(oblig_t, rows[ticker], 8, string.format("%.2f", percent))
    SetCell(oblig_t, rows[ticker], 9, string.format("%.2f", bid_f - sum_ba))
  end
end

-- Функция вызывается перед остановкой скрипта
function OnStop(signal) stopped = true end

-- Функция вызывается перед закрытием квика
function OnClose() stopped = true end;

-- Основная функция выполнения скрипта
function main()
  while not stopped do 
    Run()
    sleep(10) 
  end
end</code>
  • обсудить на форуме:
  • Quik Lua

Любопытная заметка за 1875 год

    • 18 октября 2022, 08:57
    • |
    • *FXRB*
  • Еще
Любопытная заметка за 1875 год



Любопытная заметка за 1875 год

Периоды, когда нужно зарабатывать деньги

А: Годы, когда происходят паники и будут происходить снова

В: Годы хорошего времени, высоких цен: в такое время нужно продавать акции и прочие ценности

С: Годы тяжелого времени, низких цен: нужно покупать акции, товары и пр., чтобы держать их до момента наступления хороших времен и тогда продать

Обратите внимание как довольно точно выпадают годы на «тяжелое время» и «время паники».

Это в очередной раз доказывает, что все события цикличны и довольно четко спланированы, никаких совпадений нет


Виды арбитража которые торговала наша команда. Арбитраж #1

Начинаю новую рубрику в блоге: «АРБИТРАЖ»

Виды арбитража которые торговала наша команда. Арбитраж #1

Рис. 1. Ура! А наконец-то не про тренд!


Сегодня поговорим про те виды арбитража которые мне в своей карьере алго-трейдера удалось закодить и оттестить. 


Парный

 

Это когда берутся два инструмента. Их цена делиться одна на другую – получается отношение цены двух инструментов.

Когда это отношение вдруг меняется, мы один инструмент покупаем, а другой продаём. Ожидая что отношение инструментов вернётся в первоначальное состояние.

 

Парный Межбиржевой

 

Здесь берутся инструменты с разных бирж. Одинаковые. BTCUSDT с Binance и BTCUSDT с ByBib. Опять же, делятся друг на друга и полученное отношение в виде графика подвергается анализу.

Когда отношение инструментов меняется на какую-то велечину за определённое время — один инструмент покупаем, а другой продаём. Ожидая что отношение инструментов вернётся в первоначальное состояние.



( Читать дальше )

Что творится? Утренний обзор

Что творится? Утренний обзор

Доброе утро, всем привет!

Тут в одном из обзоров уже всплывала девочка из прошлого. Вчера она всплыла не то что «по рубку», а по самые помидорки!
Что творится? Утренний обзор

( Читать дальше )

....все тэги
UPDONW
Новый дизайн