Избранное трейдера Дмитрий Власов

по

Основы (волатильность опциона и стратегия «Граальчик»)

Сразу файл. Лист «Вола опциона + стратегия «Граа»

https://cloud.mail.ru/public/3LAJ/wZRwmt882

В предыдущих топиках мы сравнивали волу опциона и волу БА, вернее то, что дает дельта хедж. Условия были немного надуманными.  Волу опциона мы брали за константу. Пора ее расчехлить и понять, как она меняется на самом деле. Для чего? Немного философии.

Один широко известный, но мало по малу успешный трейдер-профессор,  приводил аналогию торговли на бирже и торговле на Одесском Привозе. Работая биндюжником, он видел, как закупаются оптом помидоры. Купил за рубель, продавай за два. Поэтому, когда он попал, в Америку, то попробовал использовать эти знания на фондовых рынках. Но тут возникли тонкости.

В чем то, он прав. Цивилизация научила нас торговать. И схема достаточно проста. Вы покупаете много помидоров и начинаете продавать их в розницу. То есть, одновременно существуют две цены. Покупка и Продажа. То есть спред. На Привозе он широкий, но в нем участвует время. Купили оптом за 10 минут, продаешь весь день, а то что испортилось ешь сам. На Привозе ни кому не придет в голову купить много помидоров, с расчетом, что завтра они подорожают. Поэтому, естественным ощущением торговли является понимание, за что купил и за что продашь. И тут цена не является критерием. Критерием является маржа, между покупкой и продажей. Для этого не надо учиться на трейдера. Можно оставаться биндюжником. Вы точно знаете, за что покупаете и как будите продавать. А дальше вы наберетесь опыта. Сколько закупить, где стать, почем продать и т.д.



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

Подбрасываем монетку с помощью языка R

    • 25 апреля 2019, 22:09
    • |
    • Dmitryy
      Smart-lab премиум
  • Еще
Данное руководство, прежде всего рассчитано для начинающих или тех, кто и слухом не слышал о таком прекрасном языке как R. Из-за своих математических особенностей, этот язык очень удобен для моделирования и анализа различных данных, в частности поведение активов.


На СЛ я часто замечаю, как умные и опытные люди моделируют или вычисляют всё в экселе. Это тоже отличный инструмент, но я думаю им стоит обратить внимание на язык R и попробовать, ничего сложного, как оказалось, там нет. Конечно какие-то базовые навыки программирования всё же потребуются.


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

Настройка среды для запуска R

Сразу хочу сказать, что ничего сложного в настройке нет. Нужно скачать пару файлов и последовательно их установить. Никаких особых настроек и сложных выборов, качаем и ставим, всё заработает.



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

Тестирование робота AVP в программе Wealth-Lab

    • 13 апреля 2019, 17:05
    • |
    • AlexChi
  • Еще

 

Введение


На сегодняшний день у меня есть три краткосрочные спекулятивные торговые системы и, соответственно, три одноименных торговых робота:
  1. CandleMax
  2. PVVI
  3. AVP

Описание и тестирование в программе Wealth-Lab первых двух роботов я уже приводил. Вот соответствующие ссылки:

Тестирование рабочей свечной модели на исторических данных

Тестирование модели CandleMax в программе Wealth-Lab

Индикатор PVV (price/volume/volatility)

Тестирование робота PVVI в программе Wealth-Lab

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

Торговая система AVP (average volume/price) не является свечной моделью, как CandleMax, и не основана на красивой математической формуле, как система PVVI. Из трех моих спекулятивных роботов, робот AVP выдает сигналы реже всех. Тем не менее, результативность этого робота практически совпадает с результативностью робота PVVI, лишь совсем немного ей уступая.



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

Пэйроллы за 100 лет

Пост будет полезен только тем, кто кодит на Питоне.
Осваиваю базу данных quandl.com
Оттуда можно качать котировки, а можно и экономическую статистику. Например, там есть нонфарм-пэйроллы с 1921 года.
Как и положено питону, там всё очень просто.
Не знаю почему, пэйроллы с 1947 года по значениям сильно отличаются от предыдущих:
Пэйроллы за 100 лет
Будем брать те, которые идут с 1947 года.
Инструкция шаг за шагом.
1. Качаем питон, если он у вас до сих пор не установлен: https://www.python.org/
2. Открываем командную строку cmd.exe (чёрное окошко).
3. Пишем в нём pip install quandl
Пэйроллы за 100 лет

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

Робот "Два Боллинджера" с исходниками

Хорош философствовать. Давайте писать более полезные посты.
Итак, робот на двух графиках Боллинджера.
Общий принцип:
1) На цену накладываются два графика Боллинджера: с периодами 20 и 120 (назовем их local и global).
2) В зависимости от параметра внутри робота, входим либо когда цена входит внутрь local-Боллинджера (ContrTrendFlag=1), либо выходит из него (ContrTrendFlag=0).
3) Дополнительный фильтр: Лонг только когда когда мы в верхней половине global-Боллинджера, шорт — если в нижней.
Данные робот берет из графиков, так что график должен быть открыт, и прописаны идентификаторы.

График с двумя Боллинджерами выглядит примерно так:

Робот "Два Боллинджера" с исходниками

Настройки на цене и индикаторах не забудьте:

Робот "Два Боллинджера" с исходниками

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

Метод инвестирования CAN SLIM как самый эффективный на американском рынке

В этой статье я сделаю обзор на самую эффективную стратегию инвестирования на американском рынке с 1998 по 2009 год (по версии Американской ассоциации индивидуальных инвесторов). Столкнулся я с ней после прочтения книги  «Как делать деньги на фондовом рынке» Ульяма О’Нила ссылка, который основал газету Investor's business daily, которая благодаря публикациям списка акций выбранных по системе CAN SLIM ещё в 50х завоевала широкую популярность среди инвесторов США. Идея по мне весьма здравая и логичная, краткий обзор на неё уже был сделан на Смартлабе ссылка, суть в том что по фундаменталу отбираются лучшие акции NASDAQ (выручка, прибыль на акцию, продажи, рентабельность и пр.) в секторах которые сильнее других растут и которые обладают институциональной поддержкой (их покупают крупные фонды). Вот кстати список на сегодняшний день:
Метод инвестирования CAN SLIM как самый эффективный на американском рынке



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

Сложности в алгоритмизации боковика

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


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

1 Что есть боковик? почему в одном случае мы считаем что это боковик, а в другом похожем случае это не является боковиком?
2 Размер боковика! Локальный боковик может быть как 0.1% от цены так и несколько процентов от цены. 
Так же можно описать множество пунктов, но они все смежные будут с выделенными двумя пунктами. 

Как определить, что рынок возле той или иной цены остановится и пойдет обратно? только не постфактум, а именно онлайн. Да, мы рисуем уровни руками, или же смотрим на объемы и тд, но изначально никто не знает где и почему цена остановилась. Мы всегда наблюдаем уже постфактум, либо это синусоида цены, либо  накопление объемов на уровне и тд. А значит мы с определением боковика всегда будем опаздывать от реального рынка. 
Второй же пункт, это границы бокового движения. Пример сбера, последние две три недели он гулял в большом диапазоне от 20300 до 21000 грубо говоря, но при этом были и локальные уровни остановки цены в пределах 100-200р канала. В таком ракурсе получается, что при движении от нижнего канала к верхнему с учетом остановок, можно получать 300-400р с движения если отталкиваться от того, что цена вышла из маленького боковика и движется к большому. 
Именно эти сложности приходится преодолевать при алгоритмизации. Ведь алгоритм должен сам определить боковое это движение или вялотекущее направленное. 
Пока что не придумал ничего толкового. Есть идея, которую наполовину реализовал
1 проверяю выше закрытие предыдущего или нет, и строю верхний канал по большему значению
2 аналогично для нижнего канала, проверяю ниже мы предыдущего закрытия или нет. 
3 слежу за ситуациями при которых верхнее значение канала как и нижнее значение не менялось более 60минут (это уже параметр, можно и без него конечно, через счетчик получив просто силу канала, например что мы 5 часов не вышли за границы, или же например сколько раз «кололи» канал но вернулись в его границы и тд)
4 канал считается не действительным при резком закреплении цены выше его границ, допустим большой минутной свечой закрылись выше/ниже границ
5 границы канала должны меняться после направленного движения и новой остановки
6 размах от верхнего к нижнему значению, не должен превышать Х% от цены 

Какие минусы
1 Процент размаха дает возможность смотреть маленький ли канал в данный момент или большой, но это является параметром, а значит может привести к «лудоманству». Каких либо других возможностей поиска локального боковика пока что, не видится возможным, потому остановился на этом
2 Я всегда опаздываю за ценой. Если действовать сразу и брать с первых же баров определение боковика, то будет очень большое количество ложных определений, и соответственно, множество не правильных входов
3 Любые остановы движения цены, ломают логику и идет поиск очередного боковика, обычно это преждевременно получается. 
4 Ложное расширение боковика, которое можно определить только постфактумом и нужно перерисовывать границы. 
Ниже примеры в картинках
 Сложности в алгоритмизации боковика
Ложный выход из боковика



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

Zigzag2 на lua под quik

Доработал свой предыдущий zigzag чтоб работал быстрее

название нового индикатора zigzag2

скачать можно здесь:
https://dropmefiles.com/5EOWp

как выглядит:
Zigzag2 на lua под quik



код индикатора:
Settings=              
        {                          
            Name = "Zigzag2",   -- название индикатора
            delta=2,                  -- параметр индикатора                          
            line=                                     
                {                               
                    {  
                        Name = "zigzagline2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(120,90, 140)
                    }
                }
       }


function Init()

    vMin = 0
    vMax = 0
    vMinindex = 0
    vMaxindex = 0
    voldMinindex = 0
    voldMaxindex = 0

  return 1
end


function OnCalculate(index)
  local printz = 0
  
  if index == 1 then
    vMin = C(index)
    vMax = C(index)
    vMinindex = index
    vMaxindex = index
    voldMinindex = index
    voldMaxindex = index
    ve = C(index)  
  else
         
    if voldMaxindex >= voldMinindex then
      if C(index) > (1 + Settings.delta/100)*vMin then
        vMin = C(index)  
        vMax = C(index) 
        vMaxindex = index
        voldMinindex = vMinindex 
        vFrom = voldMaxindex  
        vTo = vMinindex
        printz = 1
      else     
        if vMin > C(index) then
          vMin = C(index)
          vMinindex = index
          vFrom = voldMaxindex      
          vTo = index
          printz = 0
        else
          vFrom = vMinindex 
          vTo = index
          printz = 0
        end 
      end
    else
     
    if voldMaxindex <= voldMinindex then
      if C(index) < (1 - Settings.delta/100)*vMax then
        vMax = C(index) 
        vMin = C(index)  
        vMinindex = index
        voldMaxindex = vMaxindex
        vFrom = voldMinindex
        vTo = vMaxindex
        printz = 1
      else 
        if vMax < C(index) then
          vMax = C(index)
          vMaxindex = index
          vFrom = voldMinindex    
          vTo = index
          printz = 0
        else  
          vFrom = vMaxindex  
          vTo = index        
          printz = 0
        end
      end  
    end
    end
 
    if (printz == 1) or (Size() == index) then
      for i = vFrom, vTo do
        k = (C(vTo)- C(vFrom))/(vTo- vFrom);
        v = i*k + C(vTo) - vTo*k
        SetValue(i, 1, v)
        ve = v
      end   
      if (Size() == index) then
        ve = C(index)
        if voldMaxindex >= voldMinindex then
          vFrom = voldMaxindex 
          vTo = vMinindex
        end 
        if voldMaxindex <= voldMinindex then  
          vFrom = voldMinindex
          vTo = vMaxindex
        end 
        for i = vFrom, vTo do
          k = (C(vTo)- C(vFrom))/(vTo- vFrom);
          v = i*k + C(vTo) - vTo*k
          SetValue(i, 1, v)
        end  
      end
    end

  end   
  return ve
end

Как правильно торговать опционами урок 4

В этом видео уроке мы рассмотрим железную бабочку, поговорим о гамме, узнаем как срок экспирации влияет на конструкцию, обсудим подводные камни, на которые наступают опционщики.

Видео урок 1 https://www.youtube.com/watch?v=JSFRk3TXC3I&t=46s

Видео урок 2 https://www.youtube.com/watch?v=IVtHnX_3TVE

Видео урок 3 https://www.youtube.com/watch?v=ZJ05yBQXmUM



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

Кубик для Управление размером позиции в ТСЛаб - где взять и как использовать

В течение долгого времени я создавал торговые стратегии в программе Wealth-Lab, а затем переделывал код и проторговывал эту стратегию в ТСЛаб. Мне было так удобно поступать в том числе и потому, что в Wealth-lab есть уже готовые методы управления размером позиции (так называемые PosSizer).

Однако как оказалось в ТСЛаб можно создавать самостоятельно модули управления размером позиции с помощью написания кода. Потратив несколько часов, мне удалось создать несколько «кубиков», которые по определённым методам рассчитывают количество контрактов которые нужно купить (или продать) в момент сделки.

Сегодня я покажу как они выглядят и как их можно получить и использовать.

Для начала создадим простейшую стратегию — для демонстрации работы кубиков:

Правила такие:

1) Строим по ценам High верхний уровень, а по ценам Low нижний уровень.
2) Сдвигаем эти уровни на одну свечу вправо.
3) Если цена закрытия (Close) закрывается выше сдвинутого верхнего уровеня — входим в длинную позицию на следующем баре с помощью лимитной заявки (по цене Close).

( Читать дальше )
  • обсудить на форуме:
  • TSLab

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