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

по

Индикатор - кривая наименьших квадратов MNKM

Индикатор - кривая наименьших квадратов MNKM


Settings={
Name="MNKM",
period=200,
line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    }
                }

}
--[[

описание свойств:
period - период, за каротрый делается расчет

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

использовался метод:
метод наименьших квадратов (аппроксимация линией)

--]]

function Init()
 	
  return 1
end

function OnCalculate(index)
    
  sz = Size()
  n = Settings.period
  
  if index == 1 then 
    a1_0 = 0
	a2_0 = 0
	a3_0 = 0
	a4_0 = 0  
    a1_1 = 0
	a2_1 = 0
	a3_1 = 0
	a4_1 = 0 
  end  
       

   i = index
   a1_1 = a1_1+i*C(i)
   a2_1 = a2_1+i
   a3_1 = a3_1+C(i)
   a4_1 = a4_1+i*i  
   y = nil
   
   if index-n > 0 then
        
    i = index-n
	a1_0 = a1_0+i*C(i)
	a2_0 = a2_0+i
	a3_0 = a3_0+C(i)
	a4_0 = a4_0+i*i
	
	a1 = a1_1-a1_0
	a2 = a2_1-a2_0
	a3 = a3_1-a3_0
	a4 = a4_1-a4_0
	
	if((n*a4 - a2*a2) ~= 0) then
	  
	  a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
	  b = (a3 - a*a2)/n
       
      y = a*index + b
	  
    end 
	
   end 
   
   return y
 
  
end

Канал по средним значениям

Канал по средним значениям

Settings={
Name="MNKAVG",
period=200,
delta=0,
line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,255, 0)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur4",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,255, 0)
                    },
					{  
                        Name = "cur5",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    }

                }

}
--[[

описание свойств:
period - период, за каротрый делается расчет
delta - смещение назад 

назначение:
построение тенденции

использовался:
метод наименьших квадратов (аппроксимация линией)

--]]

function Init()
  
  return 5
end

function OnCalculate(index)
    
  sz = Size()
  n = Settings.period
  d = Settings.delta
       
  if (index ~= sz) then
    return nil, nil, nil, nil, nil
  else  	
   y = nil    
   if index-n-d > 0 then
    a1 = 0
	a2 = 0
	a3 = 0
	a4 = 0
    for i=index-n+1-d, index-d do  

	  a1 = a1+i*C(i)
	  a2 = a2+i
	  a3 = a3+C(i)
	  a4 = a4+i*i
	
    end  
	
	if((n*a4 - a2*a2) ~= 0) then
	 a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
	 b = (a3 - a*a2)/n
    
	 c1 = 0
	 c2 = 0
	 n1 = 0
	 n2 = 0
     for j=index-n+1-d, index-d do  
      y = a*j + b
      SetValue(j, 1, y) 
	  if C(j) < y then
	    c1 = c1 + (y -C(j))
		n1 = n1 + 1
	  end
	  if C(j) > y then
	    c2 = c2 + (C(j) - y)
		n2 = n2 + 1
	  end	  
     end	
	 
	 if n1 ~= 0 then
	   c1 = c1/n1
	 end
	 if n2 ~= 0 then
	   c2 = c2/n2
	 end	 
	 
     for j=index-n+1-d, index-d do  
      y = a*j + b
      SetValue(j, 2, y-c1) 
	  SetValue(j, 3, y-2*c1) 	  
      SetValue(j, 4, y+c2) 
	  SetValue(j, 5, y+2*c2) 	  
     end		 
	 
    end 
   end 	
   return y
  end
 
  
end

 

Индикатор наклонного канала

сам тренд это такая линия сумма квадратов расстояний до которой от каждой цены закрытия бара минимальны (метод наименьших квадратов)
дайте мне тимофейчиков
:)
Индикатор наклонного канала
 
 

Settings={
Name="MNKHL",
period=200,
delta=0,
line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,255, 0)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur4",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur5",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,255, 0)
                    }

                }

}
--[[

описание свойств:
period - период, за каротрый делается расчет
delta - смещение назад 

назначение:
построение тенденции

использовался:
метод наименьших квадратов (аппроксимация линией)

--]]

function Init()
  
  return 5
end

function OnCalculate(index)
    
  sz = Size()
  n = Settings.period
  d = Settings.delta
       
  if (index ~= sz) then
    return nil, nil, nil, nil, nil
  else  	   
   y = nil  
   if index-n-d > 0 then
    a1 = 0
	a2 = 0
	a3 = 0
	a4 = 0
    for i=index-n+1-d, index-d do  

	  a1 = a1+i*C(i)
	  a2 = a2+i
	  a3 = a3+C(i)
	  a4 = a4+i*i
	
    end  
	
	if((n*a4 - a2*a2) ~= 0) then
	 a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
	 b = (a3 - a*a2)/n
    
	 j = index-n+1-d
	 mh1 = H(j)
	 ml1 = L(j)
	 mh2 = H(j)
	 ml2 = L(j)
	 dmh1 = 0
	 dml1 = 0
	 dmh2 = 0
	 dml2 = 0
     for j=index-n+1-d, index-d do  
      y = a*j + b
      SetValue(j, 1, y) 
	  if H(j) < y and y - H(j) > dmh1 then
	    mh1 = H(j)
		dmh1 = y - H(j)
	  end
	  if L(j) < y and y - L(j) > dml1 then
	    ml1 = L(j)
		dml1 = y - L(j)
	  end
	  if H(j) > y and H(j) - y > dmh2 then
	    mh2 = H(j)
		dmh2 = H(j) - y
	  end
	  if L(j) > y and L(j) - y > dml2 then
	    ml2 = L(j)
		dml2 = L(j) - y
	  end
     end	
	 
     for j=index-n+1-d, index-d do  
      y = a*j + b
      SetValue(j, 2, y-dmh1) 
	  SetValue(j, 3, y-dml1) 
      SetValue(j, 4, y+dmh2) 
	  SetValue(j, 5, y+dml2) 	  
     end		 
	 
    end 
   end 	
   return y
  end
 
  
end

АлгоТрейдинг на кубиках - визуальный редактор TsLab 2.0

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

АлгоТрейдинг на кубиках -  визуальный редактор TsLab 2.0



Данное Программное обеспечение универсальное и называется TsLab. Его можно использовать как на акциях, фьючерсных, торгуемых на Мос.Бирже, а так же и на криптовалютных парах.  СКАЧАТЬ 

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

Уделив данному занятию несколько месяцев, человек начинает отчетливо понимать, что ТС и ее параметры устойчиво зарабатывают лишь в тех случаях, когда рынок идеален для них, при отклонениях (изменения вол-сти, ATR, смены тенденции рынка) система начинает показывать результаты убыточных сделок.  Данные выводы наводят на мысль, что одной системой на одном инструменте обойтись нельзя.

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

Мой список Telegram каналов

Всем привет!
Сегодня я решил поделиться списком Telegram каналов, на которые я подписан.
Каналы разобью на две группы и отсортирую в порядке убывания количества подписчиков.

Поехали!

Рынок / инвестиции

РынкиДеньгиВласть https://t.me/AK47pfl ~ 57.9 подписчиков
Очень популярный канал, интересные и аргументированные рекомендации (а то часто бывает советуют покупать без четкого обоснования почему)
Чувствуется наличие инсайда. Попадались на fake news (если помните то это была отставка Миллера).
Посты небольшие с аргументами почему покупаем или продает.
Поставлю 5 из 5.

MarketTwits https://t.me/markettwits ~ 34.3 подписчиков
Самый классный рыночный канал с моей точки зрения. Финансовые новости компаний, FX, зарубежных рынков, рынка РФ.
Нравится их тонкий юмор и троллинг).
Посты короткие, рекомендаций покупок / продаж нет.
Ставлю 5 из 5.

ДОХОДЪ https://t.me/dohod ~ 22.3 подписчиков



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

Качайте, алгоритмы и стратегии для торговли на NYSE и NASDAQ. +список сайтов.

Представляю три стратегии и алгоритма для торговли акциями на NYSE и NASDAQ.
По сути они мало чем отличаются друг от друга. 1-й вариант наиболее полноценный. Самым оптимальным вариантом думаю будет сделать самому один свой из этих трех, взяв с каждого наиболее полезное и подходящее под себя. Так же в конце топика будет список брокеров и полезных сайтов для торговли.
Здесь весь материал выкладывать не буду, его много только по первому варианту 45 страниц. Предоставлю несколько скринов с каждого варианта.
Ссылка на весь материал внизу топика.
Качайте, алгоритмы и стратегии для торговли на NYSE и NASDAQ. +список сайтов.
Качайте, алгоритмы и стратегии для торговли на NYSE и NASDAQ. +список сайтов.

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

Калькулятор доходности облигаций. Ничего кроме пользы.

Всем привет.

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

Итак начнем.

Первое что нам может пригодится, это калькулятор на сайте мосбиржи, лично мне он не особо помогает, но общие цифры для быстрого анализа дает: https://www.moex.com/ru/bondization/calc

Второе, это сайт финама, на котором можно посмотреть в очень удобном виде всю информацию по выпуску. Обращайте внимание на проспект эмиссии, особенно в части возможных оферт: bonds.finam.ru/issue/info/

Третье, это опять сайт мосбиржи, и несколько калькуляторов в екселе: https://www.moex.com/s606

Четвертое, это формулы по которым мосбиржа транслирует данные, все формулы можно достаточно легко посчитать при помощи программы Mathcad, и перевести в ексель (файл PDF начнет загружаться автоматически): http://fs.moex.com/files/6908/

Пятое, это замечательный автор Буренин А.Н. и его книга: Рынок ценных бумаг и производных финансовых инструментов. Автор коротко дает характеристику инструмента на бирже и формулы. Или этот задачник: Буренин А.Н. — Задачи с решениями по рынку ценных бумаг (Теория и практика финансового рынка) — 2008

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

Малая энциклопедия трейдера. Книга и формации.

Добрый день.

Прилагаю некоторые скрины из книги "Малая энциклопедия трейдера"

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

картинка 1 — сильный сигнал, нефть-сигнал на лонг
Малая энциклопедия трейдера. Книга и формации.



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

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

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

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

--[[
параметры: 
Procent - процент зигзага 
--]]
Settings={
Name="ZIGZAGPROF",
Procent=1,
    line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 0)
                    },
                    {  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    }							
                }
}

function Init()
  
  y1 = nil
  y2 = nil
  x1 = 1
  x2 = 1
    
  return 1
  
end

function OnCalculate(index)

  de = Settings.Procent
  
  delt = 0.01

  vl = C(index)
  if index == 1 then 
	y1 = vl
    y2 = vl
  else   
	  if C(index) > y1*(1+de/100) and y1 < y2 then 
	    x2 = x1
	    y2 = y1	
	    x1 = index 
	    y1 = C(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 
	    x2 = x1
	    y2 = y1
	    x1 = index 
	    y1 = C(index)  		
	  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
--]]
    
    lev = nil
	if x1 ~= x2 then  
     
	
	k = (C(x1)- C(x2))/(x1- x2)    
	maxd = 0
    for i = x2, x1  do
      
	  lev = i*k + C(x1) - x1*k  		
	  
	  if  C(x2) > C(x1) and lev <= H(i) 
	  then 
	    if maxd < H(i) - lev  then 
          maxd = H(i) - lev 
		end
        --maxd = 0.5		
      end 
	  
      if  C(x2) < C(x1) and lev >= L(i) 
	  then 
	    if maxd > L(i) - lev  then 
          maxd = L(i) - lev
		end 
		--maxd = -0.5
      end 	  
	  
    end   	
      
    lev = nil 
    --[[if x1 < index 
	  and 
	  (
	  C(x2) > C(x1) and C(x1) < C(index) 
      or 
      C(x2) < C(x1) and C(x1) > C(index) 	  
	 )
	then --]]
      lev = 
	    index*k + C(x1) - x1*k + 
		maxd
	--end   
    
	  
	  
	--[[  
	
	map = 10
	lev = 0
	if index-map+1 > 0 then 
      for i = index-map+1, index  do
        lev = lev + C(i)
      end   		
	  lev = lev/map
	  ma = lev
	end
	
	map = 30
	lev2 = 0
	if index-map+1 > 0 then 
      for i = index-map+1, index  do
        lev2 = lev2 + C(i)
      end   		
	  lev2 = lev2/map
	  ma2 = lev2
	end	

	
	if 
	  C(x2) > C(x1) and C(x1) < C(index) and C(index) > lev and C(index) - C(x1) > C(index)*delt
	  or 
	  C(x2) > C(x1) and C(x1) < C(index) and C(index) > lev2 
	then 
	  lev = C(x1)--*(1-delt)
	  prev = lev        
	else  	
	  if 
	    C(x2) < C(x1) and C(x1) > C(index) and C(index) < lev and C(x1) - C(index) > C(index)*delt
	    or
	    C(x2) < C(x1) and C(x1) > C(index) and C(index) < lev2 
	  then 
	    lev = C(x1)--*(1+delt)
	    prev = lev
	  else
        lev = lev2  
	  end		
    end	

	if 
	  C(x1) > C(x2) and ( lev < C(index) or prev == C(x2) )
	then 
	  lev = C(x2)--*(1+delt)
	  prev = lev
	end
	
	if
	  C(x1) < C(x2) and ( lev > C(index) or prev == C(x2) )
	then 
	  lev = C(x2)--*(1-delt)
	  prev = lev
	end	
	
    if C(x1) < C(x2) and ( lev < C(index) or prev == C(x1) )
	then         	  
	  lev = C(x1)
	  prev = lev
    end
	  
    if C(x1) > C(x2) and ( lev > C(index) or prev == C(x1) ) 
	then         	  
	  lev = C(x1)
	  prev = lev       		
	end
	 --]] 

	
  end   
  
  return  lev
 
  
end



Подборка книг. Годится для изучения с нуля.

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

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

Кстати, ещё обратил внимание на то, что Мартынов Тимофей очень любит книги по типу прикладной медицины и биологии. К его счастью, у меня есть майнор в дипломе по вычислительной нейробиологии (хоть где-то мне этот навык пригодился)! Скину сюда архив с учебниками и полезными ссылками в следующий раз.

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

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