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

по

ETF портфель. Interactive Brokers

Некоторые мне говорят, почему ты инвестируешь в ETF?

-Все очень просто. Этот инструмент удобен. Удобен мне.

 

Но он удобен для портфелей от 100 000 долларов и более.
Для портфелей меньше тоже можно.
Но там есть месячная комиссия за неактивность в 20 долл.
А это не всем клиентам нравится..

ETF – это инструмент позволяющий инвестировать долгосрочно.

Он снижает общий риск и увеличивает диверсификацию портфеля.

 

СамихETF  более 2000 штук.

 

Почему выгодно?

Рассмотрим пример.

Мы можем купить ETF на индекс s&p 500, и стоит он до 1000 долл за лот.

А вот если бы я делал также на акциях, то нужно всю корзину акций 500 шт купить в портфель.

Я думаю, в среднем, даже если мы возьмем по 1 лоту каждую. Это около 2 млн долл.

Согласитесь, не очень выгодно и удобно.

 

Совсем другое дело ЕТF на этот индекс, сумму можно разместить любую, удобство покупки, продажи. И  высокая ликвидность.



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

Анализ акций языком, понятным даже вашей бабушке

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

Анализ акций языком, понятным даже вашей бабушке

Неужели так сложно объяснить простыми словами то, что лежит на поверхности? Давайте попробуем разобраться.

Представьте, если вы вдруг захотите купить какой-нибудь маленький бизнес. Салон красоты, палатку с шаурмой, ресторан. Что угодно. Какие вопросы вы будете задавать продавцу:

  • Вы вообще прибыльны?
  • Через сколько мои вложения окупятся?
  • На что тратите больше всего?
  • Есть ли у вас долги?


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

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

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


--[[
индикатор: 
канал на последнем зигзаге
индикатор строит канал по зигзагу, показывает слом тренда при выходе цены за границы канала
параметры:
  Procent - величина зигзага в %
  k - коэффизиент ширины канала
  Ext - =0-канал стоится по средним =1-канал стоится по экстремуму
--]]
Settings=              
        {                          
            Name = "Zigzag_channel_inc",   -- название индикатора
            Procent=5,               -- величина зигзага в % 
            k=2,			         -- коэффизиент ширины канала
            Ext=1, -- =0-канал стоится по средним =1-канал стоится по экстремуму
            shif=0,			
            line=                                     
                {                               
                    {  
                        Name = "zigzagline",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(120,90, 140)
                    },
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,200, 200)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(200,200, 0)
                    },
					{  
                        Name = "cur4",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur5",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },
					{  
                        Name = "cur6",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur7",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur8",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur9",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur10",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur11",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur12",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 0)
                    }
                }
       }


function Init()

  y1 = nil
  y2 = nil
  y3 = nil  
  y4 = nil  
  x1 = 1
  x2 = 1
  x3 = 1
  x4 = 1  
  
  oldindex = 1
  
  a_01 = 0
  b_01 = 0
  a_02 = 0
  b_02 = 0
  
  vminus_01 = 0
  vplus_01 = 0  
  vminus_02 = 0
  vplus_02 = 0  
  vFrom_01 = 1
  vTo_01 = 1
  vFrom_02 = 1
  vTo_02 = 1
  
  vminus = 0
  vplus = 0
  vminus_n = 0
  vplus_n = 0  
  
  ret = 0
  
  last_ind = 1

  v1=nil
  v2=nil
  v3=nil
  v4=nil
  v5=nil
  v6=nil
  v7=nil
  v8=nil
  v9=nil
  v10=nil
  v11=nil
  v12=nil
  v13=nil  
  
  return 13
end

function recalcline(num, index, rec)

 if index == Size()-sh and rec == 0 then
   for i = 1, index do
     if m == 1 then 		
	   SetValue(i, 3, nil)
	   SetValue(i, 4, nil)
	 end
     if m == 2 then 		
	   SetValue(i, 6, nil)
	   SetValue(i, 7, nil)
	 end 	 
   end 
 end 

 if index == Size()-sh or rec == 1 then
	
  if num == 1 then 
	  vFrom = 0 --[[ --]] 
	  vTo = 0
	if x3 < x2 then 
	    vFrom = x3
	    vTo = x2
	  else
	    vFrom = x2
	    vTo = x3
	  end 
  end
  if num == 2 then 
	  vFrom = 0
	  vTo = 0
	  if x1 < x2 then 
	    vFrom = x1
	    vTo = x2
	  else
	    vFrom = x2
	    vTo = x1
	  end 
  end    
  
      if vFrom < 1 then
	    vFrom = 1
	  end 	
  
	  a1 = 0
	  a2 = 0
	  a3 = 0
	  a4 = 0
	  n = 0
	  a = 0
	  b = 0
      for i = vFrom, vTo do
        n=n+1	  
	    a1 = a1+i*C(i)
	    a2 = a2+i
	    a3 = a3+C(i)
	    a4 = a4+i*i	
	  end
	  if((n*a4 - a2*a2) ~= 0) then	  
	  
	  -- if oldindex ~= Size() then
	   a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
	   b = (a3 - a*a2)/n

	   vminus = 0
	   vplus = 0
	   vminus_n = 0
	   vplus_n = 0
       for i = vFrom, index do
        y = a*i + b		
		if C(i) < y and i <= vTo then
		  if ex == 0 then 
	        vminus = vminus + y - C(i)
            vminus_n = vminus_n + 1	
		  else 
		    if i == vFrom then 
			  vminus = 0
			end
            if y-C(i) > vminus then
              vminus = y-C(i) 			
            end				
		  end 
        end		  
		if C(i) > y and i <= vTo then
		  if ex == 0 then 
	        vplus = vplus + C(i) - y
	        vplus_n = vplus_n + 1
		  else 
		    if i == vFrom then 
			  vplus = 0
			end		  
            if C(i)-y > vplus then
              vplus = C(i)-y 			
            end			
		  end 
		end 
        m = 0
        if C(vTo) >	C(vFrom) and y < C(vTo)+0.1*(C(vTo)-C(vFrom)) and y > C(vFrom)-0.1*(C(vTo)-C(vFrom)) then
          m = 1
		end 	
        if C(vTo) <	C(vFrom) and y < C(vFrom)+0.1*(C(vFrom)-C(vTo)) and y > C(vTo)-0.1*(C(vFrom)-C(vTo)) then
          m = 1
		end 
        if m == 1 then 		
	      --SetValue(i, 2, y)
        end 		
	   end
	   --end
	  
	   if ex == 0 then  
	    if vminus_n ~= 0 then
	     vminus = kk*vminus/vminus_n          
	    end 
	    if vplus_n ~= 0 then
	     vplus = kk*vplus/vplus_n          
	    end 
	   end 	  
      end

  if num == 1 then 
    a_01 = a
    b_01 = b 
    vminus_01 = vminus
    vplus_01 = vplus
	vFrom_01 = vFrom
    vTo_01 = vTo
  end
  if num == 2 then 
    a_02 = a
    b_02 = b  
    vminus_02 = vminus
    vplus_02 = vplus
	vFrom_02 = vFrom
    vTo_02 = vTo	
  end  
  return 1 
 end
 
 return 0
end 

function levels(x, y, num, index, rec)

  if y ~= nil and x ~= 1 and (index ==Size() or rec==1) then 
  
    for i = 1, index do	
	  if i >= x then 
	    SetValue(i, num, y)
      else 		
	    SetValue(i, num, nil)
	  end 
    end
	
  end 

end

function inclevels(x_1, y_1, x_2, y_2, y_3, index, num, rec)

  if y_2 ~= nil and x_2 ~= 1 and (index ==Size() or rec==1) then 
  
   need = 1
   for i = x_2+1, x_1-1 do	  
     y = ((y_2 - y_1)*i - x_1*y_2 + x_2*y_1 )/(x_2-x_1)
     if (y_1 < y_3 and C(i) < y ) or (y_1 > y_3 and C(i) > y ) then 
	   need = 0
	   break
	 end 	 
   end 
   --need = 1
   if need == 1 then 
    for i = x_2, index do	  
	
	  y = ((y_2 - y_1)*i - x_1*y_2 + x_2*y_1 )/(x_2-x_1)
	
	  if i >= x_2 then 
	    if i > x_1 and (C(Size())*1.3 < y or C(Size())*0.7 > y) then 
	      SetValue(i, num, nil)
        else 		
	      SetValue(i, num, y)
	    end 
      else 		
	    SetValue(i, num, nil)
	  end 
    end
   end 
   
  end 

end

function OnCalculate(index)
  
  de = Settings.Procent
  kk = Settings.k 
  ex = Settings.Ext
  sh = Settings.shif
  
  v1=nil
  v2=nil
  v3=nil
  v4=nil
  v5=nil
  v6=nil
  v7=nil  
  v8=nil
  v9=nil
  v10=nil  
  v11=nil  
  v12=nil    
  
  if index > Size()-sh then  
    --return nil, nil, nil, nil, nil, nil, nil 	 
    return v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11 , v12, v13  
  end 
  
  vl = C(index)
  if index == 1 then 
	y1 = vl
    y2 = vl
  else   
	  if C(index) > y1*(1+de/100) and y1 < y2 then 
	    x4 = x3
	    x3 = x2
	    x2 = x1
		y4 = y3
		y3 = y2
	    y2 = y1	
	    x1 = index 
	    y1 = C(index)	
        ret = recalcline(1, index, 0)
        ret = recalcline(2, index, 0)   
        levels(x1, y1, 8, index, 0)		
		levels(x2, y2, 9, index, 0)
		levels(x3, y3, 10, index, 0)
		levels(x4, y4, 11, index, 0)
		inclevels(x1, y1, x3, y3, y2, index, 12, 0)
		inclevels(x2, y2, x4, y4, y3, index, 13, 0)
	  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 
	    x4 = x3
	    x3 = x2
	    x2 = x1
		y4 = y3
		y3 = y2		
	    y2 = y1
	    x1 = index 
	    y1 = C(index)	  	
        ret = recalcline(1, index, 0)
        ret = recalcline(2, index, 0)
        levels(x1, y1, 8, index, 0)		
		levels(x2, y2, 9, index, 0)
		levels(x3, y3, 10, index, 0)
		levels(x4, y4, 11, index, 0)
		inclevels(x1, y1, x3, y3, y2, index, 12, 0)
		inclevels(x2, y2, x4, y4, y3, index, 13, 0)		
	  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 
  	--]] 




	if index == Size()-sh and ret == 0 then
    
        ret = recalcline(1, index, 1)
        ret = recalcline(2, index, 1)	
		
		levels(x1, y1, 8, index, 1)		
		levels(x2, y2, 9, index, 1)
		levels(x3, y3, 10, index, 1)
		levels(x4, y4, 11, index, 1)

		inclevels(x1, y1, x3, y3, y2, index, 12, 1)
		inclevels(x2, y2, x4, y4, y3, index, 13, 1)
		
    end 	
	
	
	
	if index == Size()-sh  then  --- and index ~= last_ind
		  
	   if vTo_01 - vFrom_01 > 500 then
         vFrom_01 = vTo_01-500 
       end 	  
		  
       for i = vFrom_01, index do
        y = a_01*i + b_01 + vplus_01		
        m = 0
        if C(vTo_01) >	C(vFrom_01) and y < C(vTo_01)+0.3*(C(vTo_01)-C(vFrom_01)) and y > C(vFrom_01)-0.3*(C(vTo_01)-C(vFrom_01)) then
          m = 1
		end 	
        if C(vTo_01) <	C(vFrom_01) and y < C(vFrom_01)+0.3*(C(vFrom_01)-C(vTo_01)) and y > C(vTo_01)-0.3*(C(vFrom_01)-C(vTo_01)) then
          m = 1
		end 
        if m == 1 then 		
	      SetValue(i, 3, y)
		  if i == index then 
		    v3 = y 
		  end 
        end 	
		
        y = a_01*i + b_01 - vminus_01		
        m = 0
        if C(vTo_01) >	C(vFrom_01) and y < C(vTo_01)+0.3*(C(vTo_01)-C(vFrom_01)) and y > C(vFrom_01)-0.3*(C(vTo_01)-C(vFrom_01)) then
          m = 1
		end 	
        if C(vTo_01) <	C(vFrom_01) and y < C(vFrom_01)+0.3*(C(vFrom_01)-C(vTo_01)) and y > C(vTo_01)-0.3*(C(vFrom_01)-C(vTo_01)) then
          m = 1
		end 
        if m == 1 then 		
	      SetValue(i, 4, y)
		  if i == index then 
		    v4 = y 
		  end 
        end 			
	   end	  
	    
	   if vTo_02 - vFrom_02 > 500 then
         vFrom_02 = vTo_02-500  
       end 	 
	  
       for i = vFrom_02, index do
        y = a_02*i + b_02 + vplus_02		
        m = 0
        if C(vTo_02) >	C(vFrom_02) and y < C(vTo_02)+0.1*(C(vTo_02)-C(vFrom_02)) and y > C(vFrom_02)-0.1*(C(vTo_02)-C(vFrom_02)) then
          m = 1
		end 	
        if C(vTo_02) <	C(vFrom_02) and y < C(vFrom_02)+0.1*(C(vFrom_02)-C(vTo_02)) and y > C(vTo_02)-0.1*(C(vFrom_02)-C(vTo_02)) then
          m = 1
		end 
        if m == 1 then 		
	      SetValue(i, 6, y)
		  if i == index then 
		    v6 = y 
		  end 
        end 	
		
        y = a_02*i + b_02 - vminus_02		
        m = 0
        if C(vTo_02) >	C(vFrom_02) and y < C(vTo_02)+0.1*(C(vTo_02)-C(vFrom_02)) and y > C(vFrom_02)-0.1*(C(vTo_02)-C(vFrom_02)) then
          m = 1
		end 	
        if C(vTo_02) <	C(vFrom_02) and y < C(vFrom_02)+0.1*(C(vFrom_02)-C(vTo_02)) and y > C(vTo_02)-0.1*(C(vFrom_02)-C(vTo_02)) then
          m = 1
		end 
        if m == 1 then 		
	      SetValue(i, 7, y)
		  if i == index then 
		    v7 = y 
		  end 
        end 			
	   end	
	  
	  last_ind = index 
	end 
  
 
    return v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11 , v12, v13 

end

Как ускорить терминал Квик

Всем привет.

Все кто давно пользуется терминалом Квик – знают, что со временем он начинает «подтормаживать», долго загружаться, медленно переключаться между вкладками, а в особо тяжёлых случаях проводить заявки с задержкой. А это уже чревато потерей реальных денег….

В этой статье мы рассмотрим простые действия для ускорения работы Квика, которые нужно проводить регулярно, как сервисное обслуживание в автомобиле. А чтобы был спортивный интерес – проведем замер скорости загрузки терминала.

Поехали!

Итак – включаем секундомер и делаем первоначальные замеры:

Результат времени загрузки до появления окна загрузить новую версию

1 минута 21 секунда.

Ну что ж…. За работу:

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

Как ускорить терминал Квик

Находим файл        info.log

Как ускорить терминал Квик



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

ЗОЖ лайфхак на время изоляции.

Хотите привести свое тело в порядок. Мышцы в тонус. Укрепить связки. Если бег для вас муторное нудное занятие.
Купите гирю на АВИТО. Старого советского образца.
Ниже я вам поясню почему нет ничего лучше её если заниматься в домашних условиях.
Народ цена от 1тыщ рублей до 2 тыщ. Куда еще дешевле. В зависимости от веса и региона.  
Сразу скажу если будите покупать то берите только старого советского образца соревновательные.
16, 24, и 32 кг они только есть.
ЗОЖ лайфхак на время изоляции.
Есть такие модные, ну это не для нас гламурные какие то, это тоже самое что в лосинах в тренажерку придти. Нам нужен только хардкор, голимое железо. 
ЗОЖ лайфхак на время изоляции.

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

Ловушка АТР

    • 18 апреля 2020, 11:26
    • |
    • mariam
  • Еще

Не нашла ничего лучшего, чем начать с цитаты:

«Не придавайте чрезмерного значения тому, где открыть позицию.

Важно лишь, каково направление позиции — бычье или медвежье.

Точкой входа все­гда считайте вчерашнюю цену закрытия.

Я сразу узнаю трейдера-новичка по вопросу: «Какая у вас позиция — длинная или короткая?» Какой бы она ни была, это не должно иметь никакого отношения к его мнению о рынке. Затем (если я отвечу, что длинная) он спросит: «А с какого времени?» Какая разница, с какого. Ведь это не имеет отношения ни к медвежьему или бычьему настрою рынка, ни к текущему балансу риска и прибыли длинной позиции.

Важнейшее правило торговли — мощная оборона, а не наступление. Каждый день я делаю допущение, что все мои позиции ошибочны, и решаю, где будут мои стоп-уровни по риску. Я делаю это для того, чтобы определить свои максимально возможные потери». Пол Тюдор Джонс.

***

 Речь сегодня – об АТР.

 Average true range — Средний истинный диапазон (ATR) — это показатель волатильности рынка. Его ввел Уэллс Уайлдер в книге 'Новые концепции технических торговых систем' и с тех пор индикатор применяется как составляющая многих других индикаторов и торговых систем. (Википедия).



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

QUIK 8.5 важно для алготрейдеров на Lua

Вышел QUIK 8.5 качаем и тестируем тут ftp://ftp.quik.ru/public/updates/8.5/quik_8.5.1_upd.zip

Ключевое это поддержка идентификатора заявок и сделок 19 десятичных знаков+переход на Lua 5.3.5 x64

Отличия Lua 5.1(5.2) от 5.3 можно глянуть например тут http://antirek.github.io/luabook/incompatibility.htm

Подробнее про необходимость перехода и кому переходить тут https://forum.quik.ru/forum1/topic5117/

С 25 мая на бирже будет переход на идентификатор заявок 19 знаков, поэтому из Lua нельзя будет работать с заявками на срочном рынке.

P/S Модератор перенеси в раздел алготрейдинг

Возможности новой версии
1. Реализован функционал быстрого фильтра в таблицах. Для активации \ деактивации быстрого фильтра используется пункт «Включить быстрый фильтр» \ «Выключить быстрый фильтр» контекстного меню, открываемого для заголовка самого левого столбца таблицы. Данный функционал позволяет фильтровать информацию в таблицах QUIK с наглядным отображением критериев фильтрации.



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

Все, что дешевле 500 руб., пить нельзя. Навеяно постом уважаемого Криптокритика.

Доброй ночи, коллеги!

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

Эх, как же я люблю читать отзывы о хорошем и не очень вине от людей, которые его не пили. Это так же хорошо, как читать отзывы об элитных б"№дях от людей, которые их не трахали, и гораздо интереснее, чем знакомиться с рыночными советами от людей, которые никогда не торговали в плюс… В связи с этим считаю необходимым вставить свои 4 копейки © известный анекдот

Что же я хотел бы прокомментировать и отметить отдельно.
1. Сравнивать цены на вино в Европе/США/ЮАР/… и в России — это бред. У нас цена всегда сильно выше (акцизы, НДС, жадность...)
2. Спич про «выдержанные красные или превосходные белые» по цене до EUR 8 за бутылку в Европе и рядом — это лютая вредная ересь. Минимально интересные (не столовые) вина начинаются от EUR 10. Бывают исключения — на Кипре до сих пор за EUR 2 можно купить феерическое молодое белое, в ЮАР (но это отдельная тема) есть масса интересных позиций до $6-8 за бутылку. Но исключения (их менее 5%) просто подтверждают правила. Столовое вино — это ординарное некрепленое пойло, для энтузиастов есть профильное крепленое пойло. Все приведенные цены, ессно, магазинные, а не ресторанные.

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

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