Избранное трейдера _sg_

по

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

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


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

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

Вопрос про хлеб маркетмейкеров

Является ли «хлеб» маркетмейкеров гарантированным? Ведь их торговля ярко выражено контртрендовая — продавать, когда растёт, не взирая на  рост, и покупать, когда снижается, не взирая на снижение. Но ниоткуда не следует, что контртрендовая торговля всегда гарантированно выигрышна — ни в моменте, ни в лонгране.

Почему так хочется продавать края опционов и что лучше продавать

    • 26 марта 2019, 11:05
    • |
    • FZF
  • Еще

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

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

Определимся с терминами и понятиями, которые будем рассматривать:

[Тэта] -  потеря стоимости опциона за определенный промежуток времени [t]

У нас есть текущая волатильность базового актива. Исходя из этой волатильности, мы можем посчитать ожидаемый средний путь, который пройдет цена базового актива за время [t]. Этот путь назовем



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

Новый индикатор Zigzag на lua под quik

Создал свой индикатор зигзаг
Предлагаю его для ознакомления
при установке имя индикатора будет Zigzag
параметр delta задает в % плечо индикатора
цель данного индикатора — помочь быстро найти значимые уровни

планирую этот совместить с предыдущим: https://smart-lab.ru/blog/528924.php
и сделать адаптивный STATDIV

в дальнейшем в зигзаг добавлю отображение уровней

файл индикатора:
https://dropmefiles.com/WyjM2

выглядит на графике так:
Новый индикатор Zigzag на lua под quik





сам код индикатора:

Settings=              
        {                          
            Name = "Zigzag",   -- название индикатора
            delta=3,                  -- параметр индикатора                          
            line=                                     
                {                               
                    {  
                        Name = "zigzagline",
                        Type =TYPE_LINE,
                        Width = 1,
                        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)
  
  if index == 1 then
    vMin = C(index)
    vMax = C(index)
    vMinindex = index
    vMaxindex = index
    voldMinindex = index
    voldMaxindex = index
    v = 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 = vMinindex  
      else     
        if vMin > C(index) then
          vMin = C(index)
          vMinindex = index
          vFrom = voldMaxindex      
       else
          vFrom = vMinindex 
        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 = vMaxindex
      else 
        if vMax < C(index) then
          vMax = C(index)
          vMaxindex = index
          vFrom = voldMinindex    
       else  
          vFrom = vMaxindex          
        end
      end  
    end
    end
 
    for i = vFrom, index do
      k = (C(index)- C(vFrom))/(index- vFrom);
      v = i*k + C(index) - index*k
      SetValue(i, 1, v)
    end   
 
  end   

end

экспирация

    • 24 марта 2019, 22:40
    • |
    • Reznor
  • Еще
Не хотел ничего писать, так как время уже упущено, но кому то возможно пригодится...
Итак в четверг прошла экспирация.
Я, как обычно, скальпируя, уделил этому дню особое внимание.
На старом контракте РТС удалось наскальпить за этот день примерно 34 тыс. рублей.экспирация
У кого — возможно, то возникнет резонный вопрос: «Как на таком тухлом рынке можно было вообще хоть что то наскальпить?»
Ответ очень прост.
В старом контракте в день экспирации сильно снижается конкуренция «в стакане».
И если выполнять роль условного маркет-мейкера, для тех, кто непременно хочет переложиться из старого контракта в новый здесь и сейчас, то будьте уверены, что рынок отблагодарит вас за это. При этом не нужны какие-либо хитроумные алгоритмы, колокейшены и т.д. Достаточно обычного квика и привода к нему.
Итак резалты:
Маржа +45 300р;
комис бирже 11 400р;
комис брокеру — фикс (10% от прибыли за месяц).

Мой оборот в этот день составил примерно 1 ярд руб, (проторгованно 6 440 контрактов мартовского РТС) от общего оборота 35 ярдов, что примерно соотвтствует 3% от общего оборота этого контракта в этот день.
Да, да… вы не ослышались, вот так вот, сидя дома за стареньким 14-дюймовым ноутбуком в труселях,  теперь можно «делать» наш один из самых «ликвидных» инструментов на нашей любимой мособъебирже.
Такие дела…

Юношам , изучающим опционы (почему нельзя продавать дальние края опционов)

    • 24 марта 2019, 12:21
    • |
    • FZF
  • Еще

Для начала рассмотрим, как меняются цены опционов в зависимости от волатильности:

На данном графике      1 – это центральный страйк;  Синяя линия – цены опционов на момент вашей продажи;  Зеленая линия – цены опционов при увеличении волатильности в 1,5 раза; Красная линия – цены опционов при увеличении волатильности в 2 раза.

На первый взгляд, ничего трагичного не наблюдается
Юношам , изучающим опционы (почему нельзя продавать дальние края опционов)



Теперь посмотрим не  на сколько увеличиваются цены опционов, а во сколько раз увеличиваются цены.

Юношам , изучающим опционы (почему нельзя продавать дальние края опционов)



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

Знаменитый Гуру... без торговли или Исповедь голого Короля

    • 22 марта 2019, 16:53
    • |
    • Wunder
  • Еще

Недавно Игорь Максимов (Proscalping) опубликовал пост с видео smart-lab.ru/blog/528464.php
в котором описал свой нелёгкий путь от сопливого юнца до просветлённого Гуру в трейдинге.
Канал с тысячами подписчиков в тюбике изобилует тоннами видео его «Успеха в торговле».
Но… так ли всё на самом деле?
Ребята его проверили — смотрите что из этого вышло: vk.com/video-179612560_456239025


Интеграл побеждает Логарифм: реальность и зазеркалье

Интеграл побеждает Логарифм: реальность и зазеркалье

из моих предыдущих статей создана и распечатана книжка
и новейшая версия разделена на 2 части и есть общий вариант

между прочим с разных форумов
скачали и/или/либо прослушали почти 55 раз

12 мб скачать / слушать 30 м. я-диск ИнтЛог_зазеркалье_64_dav.mp3
12 мб скачать / слушать 27 м. я-диск ИнтЛог_реальность_64_dav.mp3
25 мб скачать / слушать 55 м. я-диск ИнтЛог_озвуч_64_dav.mp3

7 мб скачать / слушать 30 м. я-диск ИнтЛог_зазеркалье_32_dav.mp3
7 мб скачать / слушать 27 м. я-диск ИнтЛог_реальность_32_dav.mp3
12 мб скачать / слушать 55 м. я-диск ИнтЛог_озвуч_32_dav.mp3



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

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