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

по

Стоит ли брать ОФЗн?

    • 29 августа 2019, 18:09
    • |
    • Alex
  • Еще
По ним доходность выше, около 9-10%, что на порядок выше и срок погашения близок — как раз рекомендуют многие брать именно краткосрочные облигации.

Однако в блогах иногда смотрю ОФЗ покупают, но обычные, не «народные». в чем подвох?

смотрю в терминале Сбер-инвестор, вот вижу там:
офзн 53001, 53002, 53003 вот и любопытно стало.


Индикатор наклонных уровней

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

Индикатор наклонных уровней

--[[
параметры: 
Procent - процент зигзага 
--]]
Settings={
Name="ZIGZAGPROF",
Procent=1,
    line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 0)
                    },
                    {  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    }							
                }
}

function Init()
  
  y1 = nil
  y2 = nil
  x1 = 1
  x2 = 1
    
  return 1
  
end

function OnCalculate(index)

  de = Settings.Procent
  
  delt = 0.01

  vl = C(index)
  if index == 1 then 
	y1 = vl
    y2 = vl
  else   
	  if C(index) > y1*(1+de/100) and y1 < y2 then 
	    x2 = x1
	    y2 = y1	
	    x1 = index 
	    y1 = C(index)	        
	  end 	
	  if C(index) > y1 and C(index) > y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 
	  	  		
	  if C(index) < y1*(1-de/100) and y1 > y2 then 
	    x2 = x1
	    y2 = y1
	    x1 = index 
	    y1 = C(index)  		
	  end 	
	  if C(index) < y1 and C(index) < y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 	  	  		
	end 	
  
  if x1 ~= index then 
    curfrom = x1
	curto = index
  else 
    curfrom = x2
	curto = x1
  end 
 
 --[[
  if curto ~= curfrom and curfrom ~= nil and curto ~= nil then 
    if C(curto) ~= nil and C(curfrom) ~= nil then 
      k = (C(curto)- C(curfrom))/(curto- curfrom)  
      for i = curfrom, index  do
        curv = i*k + C(curto) - curto*k  		          
	    SetValue(i, 1, curv)
      end   	
	end 
  end
--]]
    
    lev = nil
	if x1 ~= x2 then  
     
	
	k = (C(x1)- C(x2))/(x1- x2)    
	maxd = 0
    for i = x2, x1  do
      
	  lev = i*k + C(x1) - x1*k  		
	  
	  if  C(x2) > C(x1) and lev <= H(i) 
	  then 
	    if maxd < H(i) - lev  then 
          maxd = H(i) - lev 
		end
        --maxd = 0.5		
      end 
	  
      if  C(x2) < C(x1) and lev >= L(i) 
	  then 
	    if maxd > L(i) - lev  then 
          maxd = L(i) - lev
		end 
		--maxd = -0.5
      end 	  
	  
    end   	
      
    lev = nil 
    --[[if x1 < index 
	  and 
	  (
	  C(x2) > C(x1) and C(x1) < C(index) 
      or 
      C(x2) < C(x1) and C(x1) > C(index) 	  
	 )
	then --]]
      lev = 
	    index*k + C(x1) - x1*k + 
		maxd
	--end   
    
	  
	  
	--[[  
	
	map = 10
	lev = 0
	if index-map+1 > 0 then 
      for i = index-map+1, index  do
        lev = lev + C(i)
      end   		
	  lev = lev/map
	  ma = lev
	end
	
	map = 30
	lev2 = 0
	if index-map+1 > 0 then 
      for i = index-map+1, index  do
        lev2 = lev2 + C(i)
      end   		
	  lev2 = lev2/map
	  ma2 = lev2
	end	

	
	if 
	  C(x2) > C(x1) and C(x1) < C(index) and C(index) > lev and C(index) - C(x1) > C(index)*delt
	  or 
	  C(x2) > C(x1) and C(x1) < C(index) and C(index) > lev2 
	then 
	  lev = C(x1)--*(1-delt)
	  prev = lev        
	else  	
	  if 
	    C(x2) < C(x1) and C(x1) > C(index) and C(index) < lev and C(x1) - C(index) > C(index)*delt
	    or
	    C(x2) < C(x1) and C(x1) > C(index) and C(index) < lev2 
	  then 
	    lev = C(x1)--*(1+delt)
	    prev = lev
	  else
        lev = lev2  
	  end		
    end	

	if 
	  C(x1) > C(x2) and ( lev < C(index) or prev == C(x2) )
	then 
	  lev = C(x2)--*(1+delt)
	  prev = lev
	end
	
	if
	  C(x1) < C(x2) and ( lev > C(index) or prev == C(x2) )
	then 
	  lev = C(x2)--*(1-delt)
	  prev = lev
	end	
	
    if C(x1) < C(x2) and ( lev < C(index) or prev == C(x1) )
	then         	  
	  lev = C(x1)
	  prev = lev
    end
	  
    if C(x1) > C(x2) and ( lev > C(index) or prev == C(x1) ) 
	then         	  
	  lev = C(x1)
	  prev = lev       		
	end
	 --]] 

	
  end   
  
  return  lev
 
  
end



Классический "риск-менеджмент" - полная фигня!

Здравствуйте, дамы и господа!

Наверное, все слышали исполняемую многими хорошими певцами песню на популярную мелодию Шолома Секунды «В Кейптаунском порту, с пробоиной в борту, “Жанетта” исправляла такелаж…». Меня всегда удивляло, почему люди повторяют когда-то искаженные слова этой песни, не задумываясь о том, что если у судна пробоина в корпусе, то надо чинить пробоину, а не «исправлять такелаж».

Вот примерно также обстоят дела и с так называемым «управлением рисками». Число авторов, включивших главу об этом в свои книги и статьи о биржевой торговле, огромно. И большинство из них ошибаются!

Как говорил один мой знакомый математик, любая достаточно сложная задача имеет простое, логичное, очевидное для всех неверное решение. Таким решением, по мнению незадачливых авторов, является выдерживание бОльшим единицы отношения расстояния от цены открытия позиции до уровня тейк-профита к расстоянию от нее же до уровня стоп-лосса, то есть отношения потенциальной прибыли к потенциальному убытку в сделке (далее по тексту для краткости — ТП/СЛ), чем, якобы, обеспечивается положительное математическое ожидание прибыли. Чаще всего встречается рекомендация, что это отношение должно быть не менее чем 2:1.



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

Эксперименты на языке R

Сделал квази-онлайн вывод цен в скрит на языке R, без использования dll.  R позволяет проводить разнообразный анализ ценовых рядов, проверять доходность стратегий, строить необходимые графики. На 1мин графике фьючерса на Сбербанк, первые 30 значений.  Кроме цены клоз на картинке показаны линии 5-ти кластеров, параллельных оси времени и коричневая линия тренда и наклонными линиями канала, отстоящими на 1 и 2 стандартных отклонения. Ширина этих каналов изменяется с учетом волатильности. Наклонными синими линиями,  отмечен канал 0,5 SD без учета волы.


Боковое движение
Начало трендового движения



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

Как повысить «Средний П/У%»? Часть 2 | Полезные мелочи

   «Полигон для новичка» отдыхает до сентября, а я продолжаю пополнять «сундучок» полезных мелочей, просматривая старые, прошедшие ранее Полигоны.
   В «Полигоне для новичка №3» принимала участие ТС «Скальпер», которая по итогам этого полигона заняла первое место с хорошим результатом.
   Автор данной ТС задал мне вопрос, как можно в его ТС улучшить показатель «Средний П/У%»? На такой вопрос есть всегда один общий ответ. Для увеличения нормы прибыли надо принять на себя больший риск.
   В этом видео я даю два предложения по улучшению этой ТС. Первое мое предложение, как раз увеличивает принимаемый риск, а второе – несколько упорядочивает открытие позиций.
   Что такое «Полезные мелочи» можно посмотреть здесь https://smart-lab.ru/blog/473161.php


Горизонтальные объемы, последняя версия

Горизонтальные объемы, последняя версия
Settings={
Name="GVOL",
period=200,
maxline=20,
width=4,
count=50,
xshift=0,
vlm=1,
line={} 
}
--[[

описание свойств:

xshift - сдвиг по горизонтали
count - количество черточек по вертикали
period- сколько баров берутся в подсчет
maxline - количество баров для максимальной черточки
width - толщина черточки
vlm - 1-c учетом оъема 0-просто распределение без объема,

--]]

function Init()

    n=Settings.count  
	
    vol={}
    for j = 1, n do        
      vol[j]=0
      Settings.line[j] = {Color=RGB(192,192,192),Type=TYPE_LINE,Width=Settings.width}
      --for i=Size()-Settings.xshift-Settings.maxline, Size()-Settings.xshift do 	
	  for i=1, Size() do 	
	   SetValue(i, j, nil)
	  end 
    end  
    
  return Settings.count  
end

function OnCalculate(index)
    

 
  if (index < Size()-Settings.xshift)or(index > Size()-Settings.xshift) then
    return nil
  else  	   
  
    n=Settings.count  
	
    maxv=0
    maxc=0
    minc=9999 
         
    for i=Size()-Settings.xshift-Settings.period, Size()-Settings.xshift do  
       
      if C(i) ~= nil then         
        if maxc < C(i) then 
          maxc = C(i)      
        end        
        if minc > C(i) then 
          minc = C(i)      
        end
      end
            
    end   
     
    delta = (maxc - minc)/n
     
    for i=Size()-Settings.xshift-Settings.period, Size()-Settings.xshift do  
 
      for j = 1, n do 
       if C(i) ~= nil then      
        if (C(i) > minc + (j-1)*delta) and (C(i) <= minc + j*delta) then 
		  if Settings.vlm == 1 then
		    if V(i) ~= nil then
              vol[j]=vol[j]+V(i) 
            end 			
          else 		  
		    vol[j]=vol[j]+1
		  end
        end  
       end    
      end
            
    end   

    for j = 1, n do
	  vol[j] = math.floor(vol[j]+0.5)
      if maxv < vol[j] then 
        maxv = vol[j]
      end                
    end    
      

    k = 0 
    for i=Size()-Settings.xshift-Settings.maxline+1, Size()-Settings.xshift do  
      k = k + 1
      for j = 1, n do
        if vol[j] >= (Settings.maxline - k)*maxv/Settings.maxline then 
          SetValue(i, j, minc + j*delta)		  
        else  		
          SetValue(i, j, nil)
        end      
      end
    end
	  
     
  end


end


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

Горизонтальные объемы

ввел новые свойства в индикатор:
xshift — сдвиг по горизонтали
count — количество черточек по вертикали
period- сколько баров берутся в подсчет
maxline — количество баров для максимальной черточки
width — толщина черточки


т.о. можно на одном графике выставить несколько вертикальных объемов с разными смещениями:

Горизонтальные объемы


Горизонтальные объемы


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

Как повысить эффективность ТС. Часть 2 | Полезные мелочи

   «Полигон для новичка» отдыхает до сентября, а я продолжаю пополнять «сундучок» полезных мелочей. Для этого я просматриваю старые, прошедшие ранее Полигоны и на их основе делаю видео.
   В данном видео я продолжаю искать способы повысить эффективность ТС «ММ», которая участвовала в «Полигоне для новичка №2». Если в предыдущем видео я пытался внести такие изменения в скрипт этой ТС, которые бы вывели убыточные сделки в «плюс», то теперь объектом моих предложений стали положительные сделки, которые я пытаюсь улучшить.
   Что такое «Полезные мелочи» можно посмотреть здесь https://smart-lab.ru/blog/473161.php


Нужен ли фундаментальный анализ в среднесроке?

Часто меня спрашивают использую ли я как-то фундаментальный анализ, может быть учитываю дивидендную политику компании, акции которой торгую? Скорее нет, чем да, однако стараюсь быть немного в курсе дел! Самое главное график — наилучший показатель любых фундаментальных параметров, причем очень часто это самыйнаилучший индикатор предстоящих фундаментальных изменений, поскольку большая часть крупных участников работает на ожидания, а эти ожидания нигде не написаны и не учтены, их сложно угадать и предсказать, если у тебя нет пары десятков друзей в банках и фондах. Однако если смотреть на график, там эти ожидания прочитать можно!

Только что частично закрыл сделку, закрыл больше половины, вторая часть на более длинные цели с трейлинг стопом, эта сделка хорошо показывает важность теханализа как отражения ожиданий! Несколько дней назад взглянув на акции АФК Система, я увидел интересный момент развития тренда, причем он был связан с классическим тестом консолидации, я принял решение, что это тот самый момент, поскольку я сначала года слежу за этой акцией, начал следить за ней, я еще в сентябре прошлого года :) наибольшие надежды на нее возложил уже в 2019 году, о чем упомянул тут - https://smart-lab.ru/blog/516902.php



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

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