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

по

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

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


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

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


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


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

Скальпинг и его миссия

Всем доброго времени суток! Много лет я не вел свой блок на смартлабе по личным обстоятельствам, хотя и зарегистрирован здесь больше 7 лет. Но в последнее время стал ощущать личную необходимость возобновить публикации здесь. Я считаю, что у меня есть небольшой опыт в торговле и было бы полезно им поделиться и обсудить. Планирую выкладывать как текст, так и видео. 
Видео ниже, это маленький кусочек выступления моего на конференции 02.03.2019 в Сочи. Если видео будет интересно, дальше планирую выложить и другие части. 


О "Русском Баффете" замолвите слово

Я уже писал тут о своей стратегии отбора акций в портфель b&h «Русский Баффет» на основе несложного анализа прошлой ценовой динамики только ликвидных акций (метод отбора описан в описании стратегии, ссылка на которое дана ниже, а там же в Блоге можно найти и результат теста с 30.12.2007 до 29.12.2017). Цель этой стратегии была доказать, что можно обгонять индекс без фундаментального анализа. С 29.12.2017 эта стратегия торгуется на реальных деньгах в рамках сервиса автоследования comon.ru.

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

— срок существования стратегии от года;
— подробное описание от автора;
— «плечо» за время существования стратегии не более 2:1, т. е. кредитные средства не превосходят собственный капитал автора;

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

Все о дивергенции и конвергенции в трейдинге

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

Все о дивергенции и конвергенции в трейдинге

Предлагаю сразу определиться с терминологией. Так повелось, что почему-то трейдеры практически не употребляют понятие конвергенция (схождение), а обобщают под один термин — дивергенция (расхождение). При этом разбивают дивергенцию на два типа: бычья и медвежья. Думаю, это связано с тем, что под дивергенцией имелось в виду не тип отклонения графика (расхождение или схождение), а расхождение данных графика цены с данными индикатора в принципе. Это, на мой взгляд, неверно. Поэтому, в рамках данного поста, я буду называть вещи своими именами, и употреблять термины дивергенция и конвергенция. Теперь к сути.

Для поиска дивергенций и конвергенций используют индикаторы. Самыми популярными являются:

  • MACD гистограмма
  • Cтохастик
  • RSI


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

Куда пойти работать кванту

Куда пойти работать кванту
Если вы хорошо знаете математику, умеете программировать и вам интересна работа в качестве Quantitative Researcher / Quantitative Trader / Quantitative Portfolio Manager / etc. — то обратите внимание на этот список из 70 компаний.

Одни занимаются высокочастотной торговлей, маркетмейкингом и арбитражем. Другие — управляют активами с использованием количественных методов. Третьи — занимаются оптимальным исполнением ордеров. Самая малость — разрабатывают low-latency инстраструктуру и предоставляют её своим клиентам. Примерно у десяти, кажется, есть офисы в России. Остальные — в Нью-Йорке, Чикаго, Лондоне, Берлине и т.д.

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

3Red Trading ( www.3redpartners.com/ )
ADG Capital Management ( www.adgcapitalmanagement.com/ )
AIM Tech (бывший AIM Fund) ( www.aimtech.com/ )
Akuna Capital ( akunacapital.com/ )
Algo Capital (бывший Nord Capital) ( algocapital.ru/ )

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

Источники маркетдаты для алготрейдинга

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

ВНИМАНИЕ: Проверяйте внимательно, что вы покупаете и кому вы платите (чтобы не получилось так, что вы заплатите каким-нибудь мошенникам, а реальная компания по ссылке давно вышла из бизнеса).

---

www.automatedtrader.net/tick_data.xhtm

www.activetick.com/activetick/contents/MarketDataServicesPricing.aspx

www.tickdata.com/

www.tickdatamarket.com/

www.tradingphysics.com/Feeds/DownloadableFeeds.aspx

www.cqgdatafactory.com/
www.portaracqg.com/

trdata.tickvault.com/sso/index.html
www.refinitiv.com/en/financial-data/market-data/tick-history
www.refinitiv.com/en/products/elektron-enterprise-data-management/market-data-feeds/
www.bellin.com/products/partner-offerings/market-data/

www.csidata.com/

www.algoseek.com/

www.nanex.net/

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

FinEx запустил на Мосбирже новый долларовый ETF на самые краткосрочные векселя казначейства США (TER всего 0,2%)

Привет, уважаемые посетители Смартлаба. FXTB – пожалуйста, проверьте – сможете найти его в Вашем QUIK?

FXTB инвестирует в американские казначейские векселя. Можно сказать, это «двоюродный брат» хорошо известного многим FXMM – только у FXTB нет рублевого хеджирования. А это значит, что вести он будет себя точно как портфель самых надежных краткосрочных облигаций Казначейства США. Что это значит? FXTB – долларовый фонд, позволяющий максимально надежно вкладывать свои деньги. Чтобы ни происходило, долларовые доходности T-Bills практически не колеблются. Да и когда им колебаться –погашение для этих дисконтных бумаг наступает через 1-3 месяца после выпуска. Самая малая дюрация (0,15- по индексу), значит – самый малый риск среди всех возможных вариантов облигационных инструментов. По сути это биржевое вложения в доллары под процент (сейчас 1-3х месячные T-Bills дают 2,4%) с торговлей в рублях и долларах.

Когда и кому этот инструмент может оказать полезен?

  • Это долларовый кэш, а значит – отличная «подушка безопасности» в вашем портфеле. Можно вкладывать без риска дефолта, рыночной волатильности и т.д. Прменять хоть для стратегического, хоть для тактического размещения активов.
  • Можно использовать как своеобразный долларовый сберегательный счет, причем в отличие о банковских сберсчетов, здесь никто не сможет волюнтаристски понизить ставку процента – что на рынке, то и на счете.
  • Можно использовать как замену долларовому депозиту – вместо страховки АСВ здесь есть гарантия США и высочайший рейтинг T-Bills
  • Используйте при риске обесценения рубля – рублевая цена увеличивается при падении курса национальной валюты. Эту стратегию можно применять как для краткосрочных спекуляций, так и для более длительного инвестирования
  • Можно разместить на ИИС, например, как дополнение к акциям российских компаний или ОФЗ – если с рублем за время 3х лет действия ИИС приключится падение и рублевым активам будет «плохо», на FXTB удастся заработать.


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

Доработал 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

zigzag5 переработал алгоритм горизонтальных уровней

zigzag5 модернизировал чтоб горизонтальные уровни рисовались более интеллектуально

zigzag5 переработал алгоритм горизонтальных уровней
zigzag5 переработал алгоритм горизонтальных уровней

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

....все тэги
UPDONW