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

по

🇺🇸🇷🇺 Spb Exchange - биржа больших возможностей 😎 Как заработать во время обвала?! $$$ 🤖 Автоматизация (QLUA-робот) 🤖

Хорошей практикой диверсификации ваших инвестиций является покупка иностранных акций за валюту. Инвестировать в акции зарубежных компаний можно просто и выгодно через Санкт-Петербургскую биржу (https://spbexchange.ru/). Преимущества очевидны:

  1. Инвестиции производятся в долларах США и Евро
  2. Низкие комиссии за малые объемы инвестиций. Можно покупать акции хоть по одной штуке, тогда как на биржевых площадках в США минимальный торговый лот = 100 акций.

  3. Торговый терминал QUIK с возможностью создавать торговых роботов на языке lua. Пример скрипта в этом посте.

  4. Автоматизированные расчеты и удержание НДФЛ на сделки купли-продажи


Про покупку американских акций в свой частный инвестиционный портфель я создал уже несколько постов на смарт-лабе. Вот они:




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

Нейросеть выбрала лучшие акции

На Санкт-Петербужской бирже, по мнению нейросети Investington, сейчас актуальны следующие позиции:

FTI, оптимальная цена для покупки — 7.51$. Цель — 8.0964$. Вероятность роста 69.5%
ATRA, оптимальная цена для покупки — 18.73$. Цель — 19.9541$. Вероятность роста 69.5%
BOOT, оптимальная цена для покупки — 115.46$. Цель — 122.6769$. Вероятность роста 69.4%


Результаты поста от 2021-10-07

MRO, купили по 15.16$. Продали 11 октября по 16.4027$. Итоговый процент +8.2%
BZUN, купили по 18.67$. Продали 11 октября по 19.8371$. Итоговый процент +6.25%
VRTV, купили по 95.28$. Продали 19 октября по 101.1391$. Итоговый процент +6.15%

Итого: из 3 сигналов 3 оказались верными.


Что это такое? || Отчет

Не очень легкие деньги на американских (и не только?) акциях

Проголосовали за то что посложнее.
Давайте посмотрим.

Тест делается на списке Russel3000 за много лет. 

Берем бумаги дороже 20долл, с средним обьемом выше 200000 и торгующиеся выше МА200 на дневке. 
Правила очень простые — бумага упала, ставим лимитку на завтра ниже сегодняшнего лоя на К денежных единиц. К вычисляется адаптивно.

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

Входы так же 10к в акцию. 

Вариант с переносом вот такой получается


Не очень легкие деньги на американских (и не только?) акциях
Большие палки чуть левее середины не смотрим, видимо обратный сплит попался.

Средний трейд что-то вроде 0.7%, желающие могут все проверить самостоятельно. 


Практика показывает, что если у вас 50 сигналов за день, то нужно отбирать первые 5-10 по силе сигнала. Силу сигнала можно определять различно.

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

📈 #USDRUB — Неизбежный подъём с целями...

📈 #USDRUB — Неизбежный подъём с целями...

Предпочтительный подсчёт  

  • USDRUB (IDC): 🕐1W
📈 #USDRUB — Неизбежный подъём с целями...

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

Тициан | USDRUB

Повторяю свой пост от 13 сентября 2020 года.

___________________________________________________________

Позвольте пованговать!

Многих интересует курс доллара.

Сегодня вам его нарисует Тициан Вечеллио.

 Тициан | USDRUB
Почему он?

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

Кроме него, спрогнозировать столь популярную валютную пару, мне сегодня помогают Евклид, Лука Пачоли, сам Леонардо, Фибоначчи и многие другие, причастные к Золотому сечению.

Что будет, если вы погуглите “Золотое сечение”?

Вот это:

 Тициан | USDRUB



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

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


Подкорректировал индикатор

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


--[[
индикатор: 
канал на последнем зигзаге
индикатор строит канал по зигзагу, показывает слом тренда при выходе цены за границы канала
параметры:
  Procent - величина зигзага в %
  k - коэффизиент ширины канала
  Ext - =0-канал стоится по средним =1-канал стоится по экстремуму
--]]
Settings=              
        {                          
            Name = "Zigzag_channel_fast",   -- название индикатора
            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(255,0, 0)
                    }
                }
       }


function Init()

  y1 = nil
  y2 = nil
  y3 = nil  
  x1 = 1
  x2 = 1
  x3 = 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
  
  return 10
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 i>0  then 
		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	
        end		
		if i>0  then 
		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 
		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)

  if y ~= nil and x ~= 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 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  
  
  if index > Size()-sh then  
    --return nil, nil, nil, nil, nil, nil, nil 	 
    return v1, v2, v3, v4, v5, v6, v7, v8, v9, v10 
  end 
  
  vl = C(index)
  if vl~=nil then 
   if index == 1 then 
	y1 = vl
    y2 = vl
   else   
	  if C(index) > y1*(1+de/100) and y1 < y2 then 
	    x3 = x2
	    x2 = x1
		y3 = y2
	    y2 = y1	
	    x1 = index 
	    y1 = C(index)	
        ret = recalcline(1, index, 0)
        ret = recalcline(2, index, 0)   
        levels(x1, y1, 8, index)		
		levels(x2, y2, 9, index)
		levels(x3, y3, 10, 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 
	    x3 = x2
	    x2 = x1
		y3 = y2		
	    y2 = y1
	    x1 = index 
	    y1 = C(index)	  	
        ret = recalcline(1, index, 0)
        ret = recalcline(2, index, 0)
        levels(x1, y1, 8, index)		
		levels(x2, y2, 9, index)
		levels(x3, y3, 10, index)
	  end 	
	  if C(index) < y1 and C(index) < y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 	  	  		
	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)		
		levels(x2, y2, 9, index)
		levels(x3, y3, 10, index)
    
    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 = 1, index do		   		
	     SetValue(i, 3, nil)	
         SetValue(i, 4, nil)	 
	     SetValue(i, 6, nil)	
         SetValue(i, 7, nil)			 
       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 

end

 





Научиться можно всему

Тут возникла тема, что обладатели некоторых профессий считают себя небожителями. Скажу, что научиться можно всему и далеко не так невозможно, как думают обладатели сакральных знаний.
Мы привыкли, например, к подобной сакральности музыкантов. Они учатся лет по 10 — музшкола, консерватория. Я лично ни одной ноты не знала. Мне стало интересно, а когда мне интересно, я погружаюсь в тему как экскаватор в землю, правда, бросаю, когда интерес пропадает. Я за пару-тройку месяцев прошла галопом несколько книг по теории музыки инаписала пару партитур на 1 и 2 мин, которые отослала на конкус. Партитуры были как у больших — на оркестр, я даже валторны транспонировала и пр. Я не прошла даже отборочный тур, но конкурс был международный и даже в отборочный тур прошла сотня партитур из более 1000 из множества стран мира. Из России было 200!!! партитур, хотя конкурс прводила местная московская филармония и приз был очень большим, а участие бесплатное, чего в международных конкурсах почти не бывает.

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

Выплаты на ребенка для инвестора – ФНС дала «добро»

Добрый день, друзья.

Мне недавно задавали вопрос – как правильно рассчитать сумму дохода на каждого члена семьи, чтобы получить ежемесячные выплаты на ребенка от 3 до 7 лет? Дело в том, что у инвестора порой сумма дохода «космической» величины, а налоговая база (прибыль) маленькая. Какую сумму надо применять для расчета?

Я обращалась с соцзащиту – даже пришлось немного поругаться, они строго используют только «доходы», без расходов. Но это глупо и неверно, логика отсутствует окончательно. И сегодня увидела долгожданное письмо ФНС России, я его опубликовала у себя…

По мнению ФНС России, сумму дохода, полученного физическим лицом, в частности, по операциям с ценными бумагами, обращающимися на организованном рынке ценных бумаг (код дохода 1530), следует определять с учетом понесенных расходов по операциям с ценными бумагами, обращающимися на организованном рынке ценных бумаг (код вычета 201).



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

Всепогодный портфель — вариант «пассивного» инвестирования? Разбираемся

Всепогодный Портфель (ВП) стабилен к любым волнениям на рынке, его средняя по году волатильность в два раза ниже, чем у S&P 500 (7,68% ВП - 15,37% S&P 500).

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

В этой связи, данная всепогодная стратегия подходит для пассивных «ленивых» инвесторов, для инвесторов, которые ищут «кнопку бабло» этот пост скорее всего будет не интересен!

Ну что, начнем разбираться

Идея создания All weather portfolio — всепогодного портфеля, принадлежит инвестору Рэю Далио. В 90-е годы его личный капитал вырос настолько, что для управления им пришлось сформировать отдельную трастовую компанию.

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



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

Фортс: проскальзывания в этом году

При моём методе торговли рыночными ордерами по стакану наиважнейшее значение имеет знание реального проскальзывания.
Эталонная цена для меня это закрытие завершенной (предыдущей) минуты. Как только минута закрылась и клоуз определился,
если есть сигнал на трейд, то у меня в стакан кидается лимитная заявка по биду-0,2% или по аску+0,2%. Ну и получается какая-то цена сделки.
От каждого трейда я измеряю проскальзывание.
Получилась любопытная статистика в этом году:
Фортс: проскальзывания в этом году
Это в одну сторону из без учета комиссий брокера и биржи.
Самый скользкий оказался брент. Однако! По нему в тестах мне надо закладываться на -0,04% с каждого трейда.
Самый нескользкий это сишка (что не неожиданно). По ней в тестах надо учитывать хотя бы -0,01% с трейда.

Такие дела.

Вообще по ощущениям ликвидность стала какой-то умной, если её сравнивть даже с 5-летней давностью.
Часто там, где у меня идут трейды, ликвидность становится хуже, чем в те моменты, когда я просто глазами смотрю на стакан.



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