Избранное трейдера Denis Lisin

по

Надежность ОФЗ по сравнению с вкладами.

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

ОФЗ — доходность до 3 лет около 7,9% годовых.

Из минусов

1. Напрягает это долгое погашение купонов и вывод ден средств по 2-3 дня у гос брокеров (ВТБ, ПСБ, Сбер), комиссии брокера, что дает примерно к номинальной ставке минус 0,5% годовых.

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

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

3. Риск просадки. Более менее вменяемая доходность идет от 3 лет. Если повторится очередная ракета по ключевой ставке сидеть придется долго, попутно облизываясь на кризисные ставки в 20-30% годовых. 
Вспомним хотя бы 15 год.

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

Робот на синтетике

    • 17 апреля 2019, 12:01
    • |
    • T-800
      Smart-lab премиум
  • Еще
В смысле не сидит на синтетики, а торгует синтетическим инструментом (из трех компонентов).
Выпустил его с начала года в песочницу на депозите 250 т.р.
Понаблюдаю за ним годик, если попрет, то увеличу ему депозит.
Сделки очень часть закрываются в плюс. Вот одна из красивых сделок:
Робот на синтетике



За первый квартал должно было получиться 32 863 руб. прибыли, и вот такая эквити:
Робот на синтетике

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

Промежуточный итог дивидендного портфеля

    • 14 апреля 2019, 23:29
    • |
    • iireg
  • Еще

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

Вкратце: стратегия простая – купил дивидендные акции и держи, активное наполнение портфеля началось с 2016 года с суммы менее 50тыс. руб., основные характеристики и параметры портфеля можно найти в предыдущих записях

В прогнозируемых дивидендах ориентировался как на smart-lab.ru, так и еще на один сайт, в топе поисковика по запросу о прогнозируемых дивидендах на 2019 год. Если были разночтения между прогнозируемыми дивидендами, ориентировался на сторонний сайт (не в обиду smart-lab.ru), там информация полнее, включает не только ближайшие, но и прогноз всех дивидендов на 2019 год. Дивиденды учитывал только те, которые планируют выплатить в течение 2019 года, т.к. по моему учету они у меня попадут в текущий год, если отсечка будет в 2019 году, а выплата в 2020 году, это уже на следующий год пойдет

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



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

Тестирование робота 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, лишь совсем немного ей уступая.



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

Тренду никто не фрэнд!

    • 11 апреля 2019, 16:12
    • |
    • alext
  • Еще

Вчера прямо после выхода статистики зашортил нефть… Словил короткий стоп и наблюдая как она улетает на север, очень задумался.
Как после почти 10 лет торговли я могу делать такую глупость?!
 И тут же вчерашнее обсуждение на Смартлабе Василия Олейника. Упорно борется с долгосрочным сильным трендом в нефти. Всем весело, но
от такой торговли же рехнутся можно! Не может быть чтобы она сам верил что так делать правильно. Не идиот же! Тогда в чём дело? Это
болезнь! Настоящая лудомания! Дай бог у него хватит здоровья, нервов и денег на такую борьбу, но хорошо это кончиться никак не
может.

 Все знают что тренд — фрэнд! А вы ему? Кто умеет высиживать тренды? 
 Все боятся тренда. Даже Ливермор. Известная история с пшеницей. Забрал прибыль потому что было уже много в долларах и страх потери
заставил выскочить из сильного движения.
 Плавный тренд кажется слабым и сидеть в нём долго и трудно… Вот-вот же сломается.
 Сильный тренд с ускорением — развернётся же резко… Надо успеть соскочить… И перевернуться поскорее. Какая возможность
заработать! Ведь теперь он так же может ломануться обратно… ну хотя бы отскок! Короче шортим все дружно Сбер, хотя бы до 220.)))



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

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

    • 10 апреля 2019, 19:00
    • |
    • AlexChi
  • Еще

Совсем недавно я написал рецензию на книгу Стива Акелиса “Технический анализ от А до Я”. Вот эта рецензия:

Лучшая книга по техническому анализу

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

Будучи программистом, я все больше и больше начинал смотреть в сторону технического анализа и различных паттернов.  Правда, технический анализ не спешил дарить мне рабочие торговые системы. Что я только не тестировал и какие только параметры не перебирал! Казалось бы, вот она идея, но стоило ее протестировать на истории и меня в очередной раз ожидало сильное разочарование. В некотором роде мне повезло, я знал хотя бы где и куда копать. Еще в самом начале своего торгового пути я понял, что лучшие бумаги, как правило, остаются лучшими, а аутсайдеры, так и остаются аутсайдерами. Т.е. я не тратил время, нервы и деньги на ловлю падающих ножей и на усреднение убыточных позиций. Но как выжать максимум из тех бумаг, что растут и растут хорошо? Как из нескольких десятков лидеров определить ту одну-две бумаги, которые дадут максимальную прибыль?



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

Нефть. Среднесрок

    • 10 апреля 2019, 07:12
    • |
    • RUH666
  • Еще
Цена на нефть практически достигла первых целей движения, при этом пройдя ключевой уровень 64.08.
Нефть. СреднесрокИз этого следует, что, скорее всего, чёрное золото находится в 3) (трёшке в нескольких размерностях), цели которой по фибо 67-68. Импульс, прошедший с октябрьского максимума является скорее волной С в плоской коррекции, чем заходным или (разметка здесь). То есть ещё раз подтверждена высочайшаю вероятность приведённой здесь разметки.

Книга для тех, кто хочет систематизировать свою торговлю или создавать торговых роботов

Автор — известный в трейдерской среде mehanizator. Создатель сайта для алгоритмических трейдеров long-short.pro
Книга является квинтэссенцией многолетнего опыта автора в области исследований свойств рынка и разработки механических торговых систем.
Являясь практическим руководством к действию, книга глава за главой проводит читателя в мир систематизированной торговли, правил, алгоритма принятия решений и проверки тех или иных гипотез.
Состоит из 4 последовательно связанных глав. Внимание следует уделить всем главам, даже несмотря на то, что кажется что в начале книги автор льет воду. На самом деле воды в книги нет, описательные разделы поведения рыночных участников и свойств рынка необходимы в начале книги, чтобы в последующем читатель смог формировать рабочие гипотезы и, проверив их затем на тестах, выйти на устойчивую алгоримическую (системную) торговлю.
Рекомендую к прочтению всем, кто хочет отойти от импровизации и перейти на системный трейдинг — позволит сэкономить кучу времени и избежать иллюзий простоты этого вида деятельности.

 


TSLab Мартингейл

Иногда отчаянно не хватает простейшей информации. Вот ищешь какой-то вопрос, а по всему интернету ничего нет. Заумные советы, длинные скрипты, «вон там посмотри», «ну это же и так понятно» и т.п. А вот непонятно иногда.

Давайте отдельно и четко формулировать атомарную информацию, которую можно использовать для разных нужд.

Пример реализации на кубиках TSLab (без кода) простейшего, (всегда сливающего, до добра не доводящего, и рано или поздно накажущего) но всеми очень любимого Мартингейла для ФОРТС.
Просто пример, для вопроса очередного граалеищщущего новичка «с чего начать».
Скрипт (внезапно) даже зарабатывает. Ну, если параметры подогнать, разумеется.
Выглядит следующим образом:

Мартингейл Скрипт

Для упрощения схемы (это всё же просто пример) для закрытия сделки я применил не отдельные Тейк и Стоп, а кубик «Трейлинг Стоп Абс», при этом выставил в нем Stop Loss = Trail Enable, а Trail Loss = 0, для того, чтобы (теоретически) закрывались сразу при касании тейка. Можете поменять параметры и попробовать еще и трейлить.

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

Доработал zigzag5

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

Доработал zigzag5
код индикатора:
Settings=              
        {                          
            Name = "Zigzag5",   -- название индикатора
            delta=2,                  -- параметр индикатора                          
            deltaY=1,                  -- параметр индикатора   			
            linedeltaY=0.75,                  -- параметр индикатора   				
            line=                                     
                {                               
                    {  
                        Name = "zigzagline3",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,255, 0)
                    },
                    {  
                        Name = "upline",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
                    {  
                        Name = "lowline",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },
                    {  
                        Name = "declineline",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
                    {  
                        Name = "upline2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    },
                    {  
                        Name = "lowline2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 255)
                    },
                    {  
                        Name = "declineline2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    }				
                }
       }
	
	
function getradius(x, y)
  return math.sqrt(Settings.deltaY*y*y+x*x)
end

function koef(val)
  return 1 - 1/(1-1/val)
end


function Init()

  vMin = 0
  vMax = 0
  vMinindex = 0
  vMaxindex = 0
  voldMinindex = 0
  voldMaxindex = 0
  upval = 0
  lowval = 0
  upindex = 1
  lowindex = 1  
  veu = nil
  vel = nil
  curfrom = 1
  curto = 1

  return 7
end


function OnCalculate(index)
  local printz = 0
  vsize = Size()	  

  ve = nil
  veu = nil
  vel = nil 
  curv = nil 
  veu2 = nil
  vel2 = nil 
  curv2 = nil  
  
  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		
		
        if (C(vMinindex) > C(vsize)) and (upval > koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))) then
		  upval = koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))
		  upindex = vMinindex
		end
        if (C(vMinindex) < C(vsize)) and (lowval > koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))) then
		  lowval = koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))
		  lowindex = vMinindex
	   end	
	   
	    curfrom = voldMaxindex
	    curto = voldMinindex	  	   
	      	    
      else      
	  
        if vMin > C(index) then
          vMin = C(index)
          vMinindex = index
          vFrom = voldMaxindex      
          vTo = index
          printz = 0
		  curto = index		
        else
          vFrom = vMinindex 
          vTo = index
          printz = 0
        end 		
	  
	    curfrom = voldMaxindex	
		
      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
	
        if (C(vMaxindex) > C(vsize)) and (upval > koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))) then
		  upval = koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))
		  upindex = vMaxindex
		end                   
        if (C(vMaxindex) < C(vsize)) and (lowval > koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))) then
		  lowval = koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))
		  lowindex = vMaxindex
		end		
		
	    curfrom = voldMinindex		
	    curto = voldMaxindex
		
      else 
	    	    
        if vMax < C(index) then
          vMax = C(index)
          vMaxindex = index
          vFrom = voldMinindex    
          vTo = index
          printz = 0
		  curto = index		
        else  
          vFrom = vMaxindex  
          vTo = index        
          printz = 0
        end
		
	    curfrom = voldMinindex
		
      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  
           
        -- up level line 
        if upindex ~= nil then
		  if C(upindex) > C(index) then		
            for i = upindex, index do
              SetValue(i, 2, C(upindex))
              SetValue(i, 5, C(upindex)-Settings.linedeltaY*C(vsize)/100)			  
            end  	
            veu = C(upindex)	
          end 		  
		end
		
		-- low level line 
		if lowindex ~= nil then
		  if C(lowindex) < C(index) then
            for i = lowindex, index do
              SetValue(i, 3, C(lowindex))
              SetValue(i, 6, C(lowindex)+Settings.linedeltaY*C(vsize)/100)				  
            end  			
            vel = C(lowindex)
         end
       end		
        
       if voldMaxindex >= voldMinindex then     
	    vsign = -1
		if curfrom == voldMinindex then
		  vsign = -1
		end
		if curfrom == voldMaxindex then
		  vsign = 1
		end		

        -- inclined line
	    if curto- curfrom > 0 then
	     maxcurv = 0
	     k = (C(curto)- C(curfrom))/(curto- curfrom)
         for i = curfrom, curto  do        
          curv = i*k + C(curto) - curto*k	
          if vsign == -1 then  		  
 		    if L(i) < curv then
		      if maxcurv < curv - L(i) then
		        maxcurv = curv - L(i)
              end
            end
		  else
 		    if H(i) > curv then
		      if maxcurv < H(i) - curv then
		        maxcurv = H(i) - curv
              end
            end		  
		  end
         end   		
         for i = curfrom, index  do
          curv = i*k + C(curto) - curto*k + vsign*maxcurv	  
          SetValue(i, 4,curv)
		  curv2 = curv+ vsign*Settings.linedeltaY*C(vsize)/100
		  SetValue(i, 7,curv2)		  
         end   		
	    end
	    curv = nil	
	   end 
	  
       if voldMaxindex <= voldMinindex then
	    vsign = -1
		if curfrom == voldMaxindex then
		  vsign = 1
		end		
		if curfrom == voldMinindex then
		  vsign = -1
		end			
  
        -- inclined line
        if curto- curfrom > 0 then
         maxcurv = 0
         k = (C(curto)- C(curfrom))/(curto- curfrom)
         for i = curfrom, curto  do        
          curv = i*k + C(curto) - curto*k		  
          if vsign == -1 then  		  
 		    if L(i) < curv then
		      if maxcurv < curv - L(i) then
		        maxcurv = curv - L(i)
              end
            end
		  else
 		    if H(i) > curv then
		      if maxcurv < H(i) - curv then
		        maxcurv = H(i) - curv
              end
            end		  
		  end
         end   		
         for i = curfrom, index  do
          k = (C(curto)- C(curfrom))/(curto- curfrom)
          curv = i*k + C(curto) - curto*k + vsign*maxcurv	  		
          SetValue(i, 4,curv)
		  curv2 = curv+ vsign*Settings.linedeltaY*C(vsize)/100
		  SetValue(i, 7,curv2)
         end   		     
        end
	    curv = nil		
       end	  
	          
      end
    end

  end  
  
  return ve, veu, vel, curv, veu2, vel2, curv2  
  
end



  • обсудить на форуме:
  • Quik Lua

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