Избранное трейдера Сергей Сергаев

по

Теория Аукциона / Trading Riot

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

Ценовое действие 

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

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

На рынке нет правильного или неправильного, трейдинг — это поиск того, что работает для Вас и что Вам подходит.

Почти у всех путь в торговле был  более чем одинаковым. В начале своего торгового пути Вы довольно часто слышите такие вещи, как “Трейдинг-это 80% психологии и 20% стратегии”, “Медитация-это все”, “Никогда не рискуйте больше, чем вы можете позволить себе потерять.” Из этих трех утверждений я на 100% согласен с последним.



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

Как ломаются алготрейдеры

По итогам 2020 и половины 2021 года стала понятна наилучшая стратегия для этого «пилящего» роста: «купи и держи», без стопов и без шортов. Конечно же, понятна она стала задним числом.

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

Но речь не об этом. А о том, что многие трейдеры (в том числе алгоритмисты) оказались разочарованы своими результатами по сравнению с «купи и держи» за этот отрезок времени. И стали «переходить в инвесторы» или менять свои стратегии на «купи и молись» в стиле «Пульса».

То, что так сделали интуитивисты, это понятно. Они вообще склонны отклоняться от своих же правил.

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

Это как раз тот случай, когда робот не спасает от тильта. 

Когда трейдер умом понимает, что всё нормально и менять ничего не надо — а надо лишь переждать — но всё равно не может удержаться:



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

Решение проблем с помощью пирамиды Дилтса

Решение проблем с помощью пирамиды Дилтса

     Не имеет значение где сформировалась проблема. Важно знать, что решить её можно с помощью пирамиды Дилтса. Этот дядька вывел 6 уровней этой пирамиды, каждый верхний уровень которой, влияет ни нижние, но не обязательно наоборот. А использовать её можно не только для решения личных проблем, но и решению проблем в бизнесе и обществе.
     Теперь, для решения проблем или изменению своей жизни к лучшему, достаточно воспользоваться этой пирамидой. Конечно, мы все знаем эти уровни, но я повторюсь для вооон того человека в 17 ряду на 37 месте слева.

     Окружение.

     Этот уровень отвечает на вопрос «что у нас есть?». Какое у нас образование, количество жировых складок, семейное положение, родственники, недвижимость, машина, время, место и та резиновая уточка в ванной. Что за люди меня окружают? Где я нахожусь (особенно утром в субботу), Кто мне помогает идти вперёд? Что я хочу, чтоб у меня было и кто меня бы окружал?
     Приведу пример: я — алкаш. Моё окружение смеётся надо мной. Значит, нужно создать круг единомышленников, которые будут прибухивать вместе со мной и будут поддерживать меня в этом увлечении.



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

Как скачать исторические котировки c yahoo finance и финама с помощью python

В одной из прошлых заметок мне нужно было скачать исторические котировки по 650 активам. Часть из них на российском рынке, часть крипта и большая часть на рынке США. Всё, что касается крипты, валют и американского рынка качал с yahoo finance. Российский рынок качал с финама. Естественно качал с помощью питона. Дальше расскажу как это можно повторить.

Yahoo finance и python


Пакет yfinance. Гитахб github.com/ranaroussi/yfinance Установка командой: pip install yfinance

Можно качать не только дневные данные. Интервалы из документации: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo На практике данные меньше дневных сильно ограничены. Например, часовые доступны за 60 последних дней.

Перейдём к делу, как качать котировки:

import yfinance as yf

data = yf.download(«TSLA», start=«2017-01-01», end=«2017-04-30»)

Как добавить интервал:

data = yf.download(«TSLA», start=«2017-01-01», end=«2017-04-30», interval='1h')

Данные скачиваются в датафрейм. Датафрейм можно сохранить в csv:

data.to_csv('tsla.csv')

Для тикеров с московской биржи нужно добавить постфикс .ME. То есть SBER и GAZP превращаются в SBER.ME и GAZP.ME Для валют тикеры выглядят вот так RUBUSD=X Для криптовалют BTC-USD

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

Интересный эффект в портфельном инвестировании

Недавно для себя открыл интересное явление в портфельном инвестировании
Оно заключается в том что количество акций в портфеле с прибылью меняется по линейному закону в то время как сама прибыль меняется по квадратичному (по параболе — растет быстрее)
Рассмотрим на примере
Если мы возьмем распределение прибыли и убытков в портфеле и попробуем рассчитать общую сумму прибыли и общую сумму убытков и получить их соотношение, а так же соотношение количества акций с отрицательной прибылью и положительной и взять их соотношение, то увидим что, к примеру, для соотношения по количеству 1/3, убыток к прибыли будут соотносится как 1/9 или примерно 0,1.
Другими словами, если мы захотим полностью закрыть портфель фиксируя 10% убытка, забирая 90% прибыли, мы будем избавлять от 25% убыточных акций и 75% прибыльных (90% прибыли создает 3/4 акций, 10% убытка создает 1/3 акций)
А при соотношении в портфеле количества убыточных акций к прибыльным = 1/10, получим всего 1% суммы убытка по отношению к 99% прибыли

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

FXRU или FXRB

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

Итак, оба этих фонда представляют индекс на еврооблигаций российских компаний, которые торгуются в долларах и в евро. Среди эмитентов еврооблигаций только крупные компании, такие, как Газпром, Лукойл, ГМК Норникель, МКБ, Фосагро и прочие.

Еврооблигации выбираются таким образом, чтобы средний срок до погашения всего портфеля не превышал 3 лет. Это значит, что сюда могут входить облигации с погашением через год, через два, три или четыре года. Грубо говоря, если в портфеле 2 облигации в равных долях, у одной погашение через год, а у второй через 4 года, то средний срок до погашения по портфелю будет равен (1+4) / 2 = 2,5 года.

FXRU или FXRB


Для простоты рассмотрим оба фонда и основные факторы, которые будут влиять на доходность в рублях.

FXRU
Здесь все более-менее понятно. Доходность данного фонда будет складывать из следующих параметров:

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

Энергетика: если не нефть, то что?

Мировой фондовый рынок показал небывало сильное восстановление после коронавирусного шока и нефтяного коллапса из-за отмены сделки ОПЕК+ в марте 2020 года. Это стало возможным благодаря беспрецедентным мерам помощи ключевых экономик мира через массивные программы количественного смягчения и прямую раздачу денег населению. Рынок всегда торгует будущее, поэтому в оценках некоторых секторов (высокотехнологический бизнес, разработка ПО и т.д.) в период фазы восстановления (апрель 2020 года – январь 2021 года) инвесторы уже заложили результаты на несколько лет вперед, что позволило им забрать свою сверхприбыль с рынка. Усиление инфляционных ожиданий ввиду быстрого восстановления экономической активности может стать встречным ветром для секторов «будущего», что помешает инвесторам повторить подобный успех. Наоборот, это является попутным ветром для циклических активов и акций стоимости. 

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

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

2048

Нашел у себя тексты некогда популярной игрушки 2048, на скорую руку адаптировал к квику. Ловите, улыбайтесь )

local stopped

game = {
	cell = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
	best = 0,
--	key = nil,
-- t = nil,
	colors =	{	[0]	= QTABLE_DEFAULT_COLOR,
					[2]	= RGB(248,248,255),
					[4]	= RGB(255,239,213),
					[8]	= RGB(255,222,173),
					[8]	= RGB(255,218,185),
					[16]	= RGB(205,92,92),
					[32]	= RGB(255,69,0),
					[64]	= RGB(238,238,0),
					[128]	= RGB(238,118,33),
					[256]	= RGB(255,160,122),
					[512]	= RGB(255,0,0),
					[1028]= RGB(238,18,137),
					[2048]= RGB(139,0,0)
				},
	
	create_table =
		function(self)
			self.t = AllocTable()
			for i = 1,4 do
				AddColumn(self.t, i, "", true, QTABLE_INT_TYPE, 10)
			end
			CreateWindow(self.t)
			SetWindowPos(self.t,100,100,300,130)
			for i = 1,4 do
				InsertRow(self.t,i)
			end
			SetTableNotificationCallback(self.t, 		
												  function(_t, msg, _p, key)
													if msg == QTABLE_VKEY then
														self.key = key
													elseif msg == QTABLE_CLOSE then
														stopped = true
													end
												  end)
			SetWindowCaption(self.t, "2048 game by www.bot4sale.ru")
		end,
	
	draw = 
		function(self)
			local cell = self.cell
			for row=1,4 do
				for column=1,4 do
					local value = cell[(row-1)*4 + column]
					SetCell(self.t,row,column,value==0 and "" or tostring(value))
					SetColor(self.t,row,column,game.colors[value],0,game.colors[value],0)
				end
			end
	  end,
  
	incr = 
		function(self)
			local t,open = self.cell,{}
			for i=1,16 do 
				if t[i]==0 then 
					open[#open+1]=i 
				end
			end
			t[open[math.random(#open)]] = math.random()<0.1 and 4 or 2
		end,
  
	pack = 
		function(self,ofr,oto,ost,ifr,ito,ist)
			local t = self.cell
			for outer=ofr,oto,ost do
				local skip = 0
				for inner=ifr,ito,ist do
					local i = outer+inner
					if t[i]==0 then 
						skip=skip+1 
					else 
						if skip>0 then 
							t[i-skip*ist],t[i],self.diff = t[i],0,true 
						end 
					end
				end
			end
		end,
  
	comb = 
		function(self,ofr,oto,ost,ifr,ito,ist)
			local t = self.cell
			for outer=ofr,oto,ost do
				for inner=ifr,ito-ist,ist do
					local i,j = outer+inner,outer+inner+ist
					if t[i]>0 and t[i]==t[j] then 
						t[i],t[j],self.diff,self.best = t[i]*2,0,true,math.max(self.best,t[i]*2) 
					end
				end
			end
		end,
  
	move = 
		function(self,dir)
			local loopdata =	{	{0,12,4,1,4,1},
										{0,12,4,4,1,-1},
										{1,4,1,0,12,4},
										{1,4,1,12,0,-4}
									}
			local ofr,oto,ost,ifr,ito,ist = table.unpack(loopdata[dir])
			self:pack(ofr,oto,ost,ifr,ito,ist)
			self:comb(ofr,oto,ost,ifr,ito,ist)
			self:pack(ofr,oto,ost,ifr,ito,ist)
		end,
  
	full = 
		function(self)
			local t = self.cell
			for r=0,12,4 do
				for c=1,4 do
					local i,v = r+c,t[r+c]
					if (v==0) or (c>1 and t[i-1]==v) or (c<4 and t[i+1]==v) or (r>0 and t[i-4]==v) or (r<12 and t[i+4]==v) then
						return false
					end
				end
			end
		return true
	end,
  
	play = 
		function(self)
			math.randomseed(os.time())
			self:incr()
			self:incr()
			while not stopped do
				self:draw()
				if self.best == 2048 then 
					message("Поздравляю!\n\nwww.bot4sale.ru") 
					break 
				end
				if self:full() then 
					message("Game Over!")
					break 
				end
				
				self.diff = false
				if		 self.key==0x25 then 		-- Left
					self:move(1)
				elseif self.key==0x27 then			-- Right
					self:move(2)
				elseif self.key==0x26 then 		-- Up
					self:move(3)
				elseif self.key==0x28 then			-- Down
					self:move(4)
				end
				self.key = nil
				if self.diff then 
					self:incr() 
				end
				sleep(100)
			end
		end,
		
	rules = 
		function()
			message("Правила игры:\n\nВ каждом раунде появляется плитка номинала «2» или «4». Нажатием стрелки игрок может скинуть все плитки игрового поля в одну из 4 сторон. Если при сбрасывании две плитки одного номинала «налетают» одна на другую, то они превращаются в одну, номинал которой равен сумме соединившихся плиток. После каждого хода на свободной секции поля появляется новая плитка номиналом «2» или «4». Если при нажатии кнопки местоположение плиток или их номинал не изменится, то ход не совершается. Если в одной строчке или в одном столбце находится более двух плиток одного номинала, то при сбрасывании они начинают соединяться с той стороны, в которую были направлены.\nЛевый столбец с номерами строк участия в игре не принимает.\n\ns_mike@rambler.ru")
		end
}
local game = game

--------------------------------------------------

function main()
	game:create_table()
	game:rules()
	game:play()
end

 

 Оригинал здесь


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