секреты инвестирования


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

для тех кто хочет много бабок зарабатывать

публикую индикатор собственной разработки под quik, написанный на lua
если его значение больше 0,5 то выставляете заявку на покупку с тек профитом >= стоплоссу
гарантированно будете зарабатывать
подключить его можно так:
в папке quik создаете папку LuaIndicators туда кидаете текстовый файл с раcширением .lua
и содержанием приведенного индикатора, потом запускаете quik и добавляете как обычный индикатор к графику
название его в списке будет STATDIV (статистическое отклонение)
на рисунке отобразил его работу с периодом 25 и 50
его суть в том чтоб показать куда отклонено статистическое распределение вероятностей, вверх или вниз за определенный период
проще говоря, куда вероятнее пойдет рынок вниз или вверх
если значение индикатора выше 0,5 то разрешено лонговать, если ниже то разрешено шортить
рекомендации по подбору периода: период для этого индикатора выбираете как период между двумя
последними локальными вершинами
позже могу математически привести целесообразность его использования

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

Какие эффекты нужно использовать при инвестировании

Я бы отметил 6 моментов:

1. эффект сложного процента
2. эффект низкой базы
3. диверсификация
4. цикличность
5. перевод капитала между инструментами с обратной корреляцией, чтоб всегда быть в рынке
6. долгосрочные планы должны совпадать с краткосрочными по направлению торговли 

Для достижения хорошего результата необходимо задействовать хотя бы некоторые из списка.

Что стоит знать всем инвесторам — как опытным, так и начинающим.

Что стоит знать всем инвесторам — как опытным, так и начинающим.


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

Не надо читать новости

Чтобы понять, что делать дальше, трейдеры читают новости. Когда ФРС США поднимет ставки? Что там с активностью на рынке недвижимости? Вырос ли уровень безработицы?

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

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

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

Чтобы приучить себя реагировать подобным образом, надо думать так: «Раз все о чем-то беспокоятся, то сам я могу расслабиться — пусть они беспокоятся за меня. А я займусь чем-нибудь более важным».

Все готовы бесконечно обсуждать, что случится, когда ФРС поднимет краткосрочные ставки. Большинство людей приходит к каким-то выводам — неважно, каким. Но стоит обратить внимание на то, поднимала ли ФРС краткосрочные ставки в начале бизнес-цикла до этого. Как на это реагировали рынки?

Факты таковы: ФРС уже поднимала краткосрочные ставки в начале цикла — и делала так довольно часто. Можно проследить каждый из этих эпизодов, а также то, что произошло 3, 6, 12, 36 и 60 месяцев спустя. И вывод будет таков: первое повышение ставок в бизнес-цикле никогда нельзя было предсказать. Люди каждый раз беспокоятся по поводу одних и тех же вещей. А история учит нас, что переживать из-за них бесполезно.

Что должен знать молодой инвестор

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

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

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

Люди по природе своей склонны приписывать себе заслуги и перекладывать неудачи на других. Они говорят либо «Я купил эти акции, я такой умный», либо «Я купил эти акции, они упали в цене, я потерял деньги, это не моя вина».

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

Секрет инвестирования

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

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

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

https://vk.com/dolphin_traders


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