Избранное трейдера олег гуськов

по

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

CFTC. Три отчета CoT

Продолжаю разбираться с CoT. Хочу поделиться с Вами разбором Explanatory Notes
Есть три отчета Cot Legacy, TFF, Disaggregated CoT. Ниже какие организации входят в каждый из отчетов.

Cot Legacy — общий отчет по трем категориям
  • COMMERCIAL

    • Трейдеры, торгующие в интересах бизнеса или институционально управляемого портфеля.
    • Трейдеры которые хеджируют риски относительно реального бизнеса
  • NON-COMMERCIAL 

    • Индивидуальные инвесторы
    • Хедж-фонды
    • Некоторые крупные финансовые институты
  • NON-REPORTABLE (остальные трейдеры не попавшие в другие категории)


The Traders in Financial Futures (TFF) — валюты, индексы

  • Asset Manager/Institutional 

    • Пенсионные Фонды
    • Благотворительные фонды
    • Страховые компании
    • Паевые инвестиционные фонды и те 
    • Управляющие портфелями / инвестициями (чьи клиенты являются преимущественно институциональными)
  • Levereged Fund



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

Как правильно торговать опционами урок 4

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

Видео урок 1 https://www.youtube.com/watch?v=JSFRk3TXC3I&t=46s

Видео урок 2 https://www.youtube.com/watch?v=IVtHnX_3TVE

Видео урок 3 https://www.youtube.com/watch?v=ZJ05yBQXmUM



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

Как торговать фьючерсами на нефть.

Как торговать фьючерсами на нефть.

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



***
Итак, краткая инструкция для новичка, как торговать фьючерсами на нефть.

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

Влияние новостей на котировки
Как торговать фьючерсами на нефть.

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

Полезные ссылки с кратким описанием

    • 20 февраля 2019, 19:07
    • |
    • AlexChi
  • Еще

 


1. Календарь налоговых выплат:

http://www.oviont.ru/ru/useful/calendars/tax/

Здесь вы можете увидеть, когда предприятия выплачивают НДС, налог на добычу полезных ископаемых и акцизы. Данная информация, как считают многие аналитики, может быть полезна для прогнозирования курса рубля.
Логика такова: для выплаты налогов экспортеры будут продавать часть валютной выручки, что может вызвать укрепление рубля.
Особенно рекомендуют обратить внимание на квартальные выплаты.


2. Текущие технические рекомендации по акциям МосБиржи от компании БКС:

bcs-express.ru/tehanaliz

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


3. Здесь можно скачать историю торгов по акциям, товарам и индексам:

http://www.finam.ru/analysis/export/default.asp

Очень полезная ссылка. Именно отсюда я беру статистику по акциям МосБиржи и по значению индекса.



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

Зависит ли курс рубля от цены на нефть?

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

Каковы причины этих несоответствий?
Если взять начало прошлого года, то прежде всего нужно обратить внимание на бюджетное правило, которое начало действовать как раз с января 2018-го. В теории оно должно снизить зависимость бюджета страны от сырьевых доходов. На практике все несколько сложнее. Согласно данной норме, в бюджет закладывается стоимость барреля нефти Urals 40 долларов. Если фактическая цена нефти находится выше принятого значения, разницу конвертируют в валюту и направляют в «копилку» — Фонд национального благосостояния. И пока реальная цена нефти резко росла (что должно было привести к укреплению рубля), в контексте доходов бюджета она оставалась на уровне 40 долларов за баррель. Тем самым искусственно была разорвана связь между российской валютой и сырьем. Но это только на первый взгляд.

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

Как обойтись без склейки фьючей при тестировании и оптимизации торговой стратегии в Wealth-lab

Ответ на комментарий Дмитрия Власова «А как процесс «Перекладки» организован? График эквити в итоге один получается?» в посте «Как обойтись без склейки фьючей при тестировании и оптимизации торговой стратегии в ТСЛаб»
 
 

При тестировании и оптимизации в Wealth-lab 6.9 я раньше использовал склеенный фьючерс.
В коде прописывал даты выхода из всех позиций и даты, когда уже можно было входить (после гепа склейки и нормализации индикаторов).

Сейчас я использую портфель фьючерсов и влд отлично с этим справляется (он может тестировать и оптимизировать портфель инструментов).

Начнем с тиккеров. Нужно было сделать так, чтобы они шли по порядку по алфавиту.
Поэтому пришлось заняться переименовкой: самый первый SiH8 (2008г. выпуска) переименован в SI11, далее SiM8 (2008) ->SI12 ……  SiH9 (2019) ->SI55.



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

Реально становиться страшно

Сегодня так много «рецензий», невольно начинаешь задумываться — чего на самом деле пытаются найти в книгах о трейдинге их читатели?

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


Что вы хотите там вообще найти и зачем вам это нужно?

что такое график — сочетание текущей и последующей свечи.

сколько таких сочетаний может быть?

Вам покажется это смешным, но реально (на любом таймфрейме) их всего — 11

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

Задайте себе вопрос — что я делаю на рынке, если не могу понять элементарное!

почему я как попугай готов повторять за каждым идиотом о — непредсказуемости рыночного движения?

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

Возможно, эта важная информация сэкономит кому-то жизнь. Это важно знать!

Здоровье — моя ценность №1. Здоровье поважнее денег, трейдинга и инвестиций. Надеюсь вы это понимаете и разделяете. Хочу рассказать, с какими профессиональными проблемами могут столкнуться трейдеры.

Реально, я пишу, потому что думаю, что мой рассказ может кому-то жизнь продлит.

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

  1. Мой отец умер в 39 лет от чего-то такого. Никогда не занимался спортом.

  2. Знаю трейдера у которого инсульт случился примерно в 32.

  3. Мой научный руководитель пережил инсульт где-то лет в 45. Стал малоподвижен. Второй инсульт его добил. Я тогда много думал — почему его накрыло?

Какова механика этих историй? Я могу ошибаться, мой взгляд очень дилетантский. Поэтому очень приближенно:
(p.s. описан один из сценариев приводящий к инсульту, это не значит что описана основная причина инсульта, которая как правила состоит в заболеваниях сосудов и формировании тромбов)

  1. стресс создает статическое напряжение в мышцах шеи.

  2. мышцы каменеют и перестают работать, нарушается кровообращение.

  3. из-за этого повреждаются межпозвоночные хрящевые ткани (остеохондроз)
  4. голова со временем как будто вжимается в шею

  5. при этом мышцы перестают поддерживать позвонок

  6. позвонок начинает гулять, идет защемление нервов, нерв воспаляется, возникает боль, что не повернуть головой

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

  8. а во время сна голова тянет в одну сторону, тело — в другую, нагрузка возрастает

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

Возможно, эта важная информация сэкономит кому-то жизнь. Это важно знать!

Так, мою бабушку второй инсульт накрыл как раз тогда, когда она встала с кровати среди бела дня. Фух, у нее большое кровоизлияние в мозгу, но она жива, ей 80 и она даже нормально соображает!

Так вот, что надо делать, чтобы этого не произошло?

(опять таки, пока неполный и дилетантский взгляд)

  1. вы в зоне риска если вы

    1. испытываете стресс — перестаньте торговать

    2. у вас сидячая работа — работайте стоя, либо делайте перерывы))

  2. делайте зарядку для шеи (есть специальная лайтовая гимнастика)

  3. регулярно ходите в бассейн и плавайте кролем

  4. регулярно делайте массаж шеи, особенно перед сном

  5. выберите правильную подушку!
  1. обязательно проконсультируйтесь с врачом!

Если вам >30 лет, можете сделать МРТшку, чтобы оценить, насколько все запущено.

Если вам есть что сказать по этому поводу, дополняйте мой дилетантский взгляд на вопрос в комментариях.

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


Качаем котировки с Финама

    • 08 января 2019, 11:21
    • |
    • Albus
  • Еще
Недавно начал учить язык программирования Python. Жаль, что я к нему приступил в 36 лет, а не в 16. Он прекрасно подходит для анализа исторических данных. Выкладываю скрипт, который заходит на сайт финама, скачивает оттуда котировки акций и записывает их в файл quotes.txt. Для того, чтобы всё работало, должен быть установлен Питон https://www.python.org/.
---
В интернете есть информация, как качать котировки с Финама не вручную, а с помощью скрипта. Вот эти статьи. Ими я пользовался при написании своего кода:
Программный сбор данных о котировках
Загрузка котировок валют с сайта finam.ru
Дополнительно пришлось хорошенько поработать головой, чтобы адаптировать эту информацию для моих нужд. Там кое-что устарело и коды авторов потребовали доработки. Также в моём скрипте вы найдёте цифровые символы, которые соответствуют каждой акции. Например Алроса лежит на сайте финама под цифрой 81820.

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

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