Избранное трейдера V.V.

по

Грааль забесплатно - максимально примитивная стратегия на американском рынке

Всем привет!

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

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

Стратегия #1. Портфель быстрорастущих компаний

Стратегия предполагает, что портфель в любой момент времени на 100% укомплектован компаниями, которые отвечают следующим критериям:

  1. Темп роста выручки y-o-y по результатам последней квартальной отчетности – выше 25%


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

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

 

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


Как слать сообщения в телеграм из питона в три строчки

Удобно когда бот шлёт сообщения в телеграм, а не в лог файл. Как это можно сделать в python? Очень просто.

Как слать сообщения в телеграм из питона в три строчки

Шаг 1. Устанавливаем либу loguru. Вам же нужно логирование в боте? Через loguru настраивается парой строчек.
Шаг 2. Устанавливаем либу notifiers которая шлёт сообщения куда угодно тоже парой строчек.
Шаг 3. Настраиваем

# подключаем либы
from loguru import logger
from notifiers.logging import NotificationHandler

# прописываем параметры телеграм бота, от чьего имени и куда слать, где их взять думаю сами разберетесь
params = {
    'token': 'dfdfsfasdfljsahdfkljhasdfklj',
    'chat_id': 'dfkdsflksdjfls;kfjas;ldkf'
}
tg_handler = NotificationHandler("telegram", defaults=params)

# добавляем в logger правило, что все логи уровня info и выше отсылаются в телегу
logger.add(tg_handler, level="INFO")

Я у себя настроил уровень info. Использую его как раз для сообщений в телегу. А вот debug сообщения в телегу уже не приходят. Нечего эфир засорять. Подробнее про уровни логов можно почитать в справке docs.python.org/3/library/logging.html#logging-levels

Шаг 4. Отправляем сообщение
logger.info("Слава роботам! Убить всех человеков!")

Если не нужны логи, можно слать просто через notifiers.

А вдруг 2020 это всё?

Автор закрытого топика кинул такую картинку и мне стало немного страшно.

А вдруг 2020 это всё?

А вдруг вся фигня с «ковидом», карантины и истерия были ради того чтобы напечатать 7 триллионов долларов, провести массовые тесты на использование РНК технологий для изменения людей, ну и чуть сбить потребление среднего класса на западе? Вдруг мы просто увидим инфляцию по 10-30% и всё. Никаких армагеддонов на рынке и возможности закупиться по вкусным ценам? 


Мечел 10х

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

Если принять во внимание исключительно спекулятивные настроения фондового рынка и более дешёвый рубль, то перед нами безумная «ракета» по очень вкусной цене на старте. В декабре 2020 кто-то очень «жирный» зашёл в бумагу на огромных объёмах!

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

Мечел 10х


В долларах котировки ещё интереснее и потенциал роста просто безграничный.

Мечел 10х

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

Большая ставка на девальвацию рубля

Интересная ситуация происходит с открытыми позициями на рубль. Кто-то уже несколько недель открывает большие позиции в опционах на доллар/рубль, делая ставку на обесценение рубля. Причем делал он это сначала на июньской экспирации, а потом перешел на майскую.

Сейчас на майской экспирации  (20.05.21) открыто 463330 опционов колл с 85000 страйком, а на июньской 420746 опционов колл с 100000 страйком.

Большая ставка на девальвацию рубля

Если предполагать, что это чьи-то покупки об маркетмейкера, то куплено на сумму 18.5 млн. майских и 9.2 млн. июньских, а с продающей стороны это 2.3 млрд. майских и чуть менее 1.9 млрд июньский, т.к. при продаже ГО по опционам стремится к ГО по фьючерсу лежащему в его основе. Данный момент дает основание предполагать, что продающая сторона это все-таки маркетмейкер, а покупатель, некто делающий ставку на черного лебедя по рублю.



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

Топ компаний по R&D

    • 24 апреля 2021, 13:22
    • |
    • a1pha
  • Еще
Если бы вам предложили инвестировать в компанию на 10-20 лет на основании лишь одного параметра, что бы это было? Мой ответ однозначен - R&D (Research & Development). По-русски: НИОКР (Научно-исследовательские и опытно-конструкторские работы).

Топ компаний по R&D

В полном масштабе здесь.


Как вам R&D Amazon? Сумма даже чуть больше, чем бюджетные расходы Москвы за тот же год (~$42 мрд).


Именно R&D показывает сколько компания инвестирует в своё развитие. Чем больше эта статья расходов, тем больше шансов, что компания займёт (или продолжит занимать) лидирующее положение в своей отрасли. Конечно, зависимость не прямая, но она однозначно есть. Как вариант, можно оценивать мультипликатор R&D/Sales — так мы увидим какие компании прикладывают максимум «усилий», чтобы оставаться инновационными. Однако, на мой взгляд, именно абсолютное значение R&D имеет наибольшую ценность, ведь если ты можешь позволить себе тратить десятки миллиардов долларов на разработки и нанимать лучшие умы, то именно твои технологии будут приносить максимальную пользу и пользоваться максимальным спросом.



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

Сделки с валютой от $1 и €1 на Московской бирже

Привет, смартлабовцы!

С 26 апреля мы начнем торги основными мировыми валютами от $1 и €1! Сделки будут проходить в режиме TOM.

USDRUB_TMS – пара доллар-рубль

EURRUB_TMS – пара евро-рубль

Лайкните, если рады новым инструментам!)


Если санкции распространят на весь гос. долг, то будет хороший вход для покупки ОФЗ. Про ОФЗ с защитой от инфляции (52 серия).

7% объема ОФЗ держат американские инвесторы.
Всего выпущено ОФЗ на сумму почти 14 трлн.рублей.
Если США распространят санкции на весь гос. долг, то будет хороший вход для покупки ОФЗ.

ОФЗ 52 серии
(с ежедневно растущим номиналом на величину индекса потребительских цен с 3-месячным лагом 
и НКД, доходность = рост номинала + НКД, в н/вр выше, чем по другим ОФЗ)
Цена = номинал х рыночная котировка в % + НКД.

Про традиционный ОФЗ (с фиксированным купонным доходом) знают все, 
про ОФЗ — флоатеры знают почти все  кто интересуется финансовыми рынками.
Про ОФЗ 52 серии знают не все, поэтому пишу именно про ОФЗ 52 серии.


Напоминаю: по любым облигациям, их держатель ежедневно получает НКД (накопленный купонных доход). По ОФЗ 52 серии еще и ежедневно растёт номинал. При покупке, Вы платите НКД, при продаже Вам платят НКД. Облигации торгуются по формуле Т+1: цена сделки фиксируется на момент совершения, купить акции и облигации на собственные средства можно сразу же после продажи ОФЗ, но вывести деньги можно на следующий рабочий день (поэтому называется Т+1).



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

Кто-то поставил крупную ставку на курс выше 85

Общий объем «коллов» на курс 85 рублей за доллар к 20 мая достиг 412 194 контрактов, и на данный момент это крупнейшая позиция на всем рынке рублевых опционов.

В контрактах, истекающих 17 июня, самый популярный курс еще выше — 100 рублей за доллар. В опционах колл с таким страйком объем открытых позиций достигает 368 046 контрактов.

www.finanz.ru/novosti/valyuty/do-100-za-dollar-krupny-pokupatel-opcionov-postavil-na-obval-rublya-1030313434

Кто-то поставил крупную ставку на курс выше 85
Кто-то поставил крупную ставку на курс выше 85



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

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