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

по

Хороший прогноз знака будущего приращения цены - это Грааль?

Нет.

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

К сожалению это совсем не так.

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

Возьмем минутные бары по любому активу (ну, тики тоже подойдут). 5, 15 и более минутки уже не подойдут.
Актив в самом деле может быть любой. Валюты, металлы, крипта, товары, индексы, акции, фьючерсы (купонные инструменты не проверял, если честно, но думаю, что и там все будет Ок).

Строим тривиальную трендовую систему:
— если на предыдущем баре цена выросла — покупаем, если нет — продаем

Если цена актива — это x(i), то приращение эквити выглядит так:
(x(i)-x(i-1))*sgn(x(i-1)-x(i-2))
В Экселе моделируется за 1 мин. Только нужно заменить sgn на ЗНАК() в русскоязычной версии )))

Полученная эквити будет почти монотонно расти или падать.

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

Как отправлять сообщения из Квика в Телеграм! И писать в файлик разную дребедень!


Все очень и  очень просто!
Достаточно создать бота в телеге,  написать примитивный  луа  скрипт и запустить его.

Про ботов в телеге здесь  https://core.telegram.org/bots
в гугле  куча инфы  и примеров, как чего куда и зачем.


--
--СКРИПТ Niki для smart-lab.ru 260321  ревизия
---------------------------------------

-- Флаг для поддержания работы функции main
is_run=true

fut_limit_old =0
fut_limit_max =0
kgo_old       =0.5


function main( ... )  -- чудотворная функция внутри  которой все  работает

		   
		    --"r": режим чтения (по умолчанию);
			--"w": режим записи;
			--"a": режим добавления;
			--"r+": режим обновления, все предыдущие данные сохраняются;
			--"w+": режим обновления, все предыдущие данные стираются;
			--"a+": режим добавления и обновления, предыдущие данные сохраняются, запись разрешена только в конец файла.     b бинарные файлы
		   
		   -- Пытается открыть файл в режиме "чтения/записи"
		   f = io.open(getScriptPath().."\\Limits.txt","a");
		   -- Если файл не существует
		   if f == nil then 
			  -- Создает файл в режиме "записи"
			  f = io.open(getScriptPath().."\\Limits.txt","w"); 
			  -- Закрывает файл
			  f:close();
			  -- Открывает уже существующий файл в режиме "чтения/записи"
			  f = io.open(getScriptPath().."\\Limits.txt","a");
		   end;

    while is_run do    
        sleep(1000)   -- 1000 = 1 секунда    --волшебная пауза в  работе  скрипта
		
		if getFuturesLimit("A111", "A111111", 0, "SUR") ~= nil then     -- защита от  пустых таблиц    -- впишите ваши данные из Квика
		
			-- %c   - дата и время (по-умолчанию) (пример, 03/22/15 22:28:11) 
			-- %x   - дата (пример, 09/16/98)
			-- %X   - время (пример, 23:48:10)
			
			seconds = os.time(); -- в seconds будет значение 1427052491
			date1 = os.date("%x",seconds);  --  %c   - дата (по-умолчанию) (пример, 03/22/15 22:28:11) 
			time1 = os.date("%X",seconds);  --  %c   - время (по-умолчанию) (пример, 03/22/15 22:28:11) 
			
			
			--[[
			liquidity_coef           --NUMBER  Коэффициент ликвидности  
			cbp_prev_limit           --NUMBER  Предыдущий лимит открытых позиций на спот-рынке» 
			cbplimit                 --NUMBER  Лимит открытых позиций  
			cbplused                 --NUMBER  Текущие чистые позиции  
			cbplplanned              --NUMBER  Плановые чистые позиции  
			varmargin                --NUMBER  Вариационная маржа  
			accruedint               --NUMBER  Накопленный доход   
			cbplused_for_orders      --NUMBER  Текущие чистые позиции (под заявки)  
			cbplused_for_positions   --NUMBER  Текущие чистые позиции (под открытые позиции)  
			options_premium          --NUMBER  Премия по опционам  
			ts_comission             --NUMBER  Биржевые сборы  
			kgo                      --NUMBER  Коэффициент клиентского гарантийного обеспечения  
			currcode                 --STRING   Валюта, в которой транслируется ограничение  
			real_varmargin           --NUMBER  Реально начисленная в ходе клиринга вариационная маржа. Отображается с точностью до 2 двух знаков. При этом в поле «varmargin» транслируется вариационная маржа, рассчитанная с учетом установленных границ изменения цены  
			--]]
			
			
			fut_limit    = getFuturesLimit("A111", "A111111", 0, "SUR").cbplused_for_positions    --  NUMBER  Текущие чистые позиции (под открытые позиции)     -- впишите ваши данные из Квика
			varmargin    = getFuturesLimit("A111", "A111111", 0, "SUR").varmargin                 -- впишите ваши данные из Квика
			accruedint   = getFuturesLimit("A111", "A111111", 0, "SUR").accruedint                -- впишите ваши данные из Квика
			ts_comission = getFuturesLimit("A111", "A111111", 0, "SUR").ts_comission              -- впишите ваши данные из Квика
			kgo          = getFuturesLimit("A111", "A111111", 0, "SUR").kgo                       -- впишите ваши данные из Квика
			
			profit = varmargin + accruedint;
	 
			--if  math.abs(fut_limit-fut_limit_old) > 10000 then       -- каждые 10000 рублей изменения ГО,   слишком частый файл печати 
			if  math.abs(fut_limit-fut_limit_old) > 100000 then       -- каждые 100000 рублей изменения ГО,   настраиваем под себя.
			
				open_lim     = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit                  --NUMBER  Лимит открытых позиций
				f:write( tostring(date1).."  "..tostring(time1).."  ".."ГО: "..tostring(fut_limit).."  ".."Профит: "..tostring(profit).."  ".."Комис: "..tostring(ts_comission).."  ".. "КГО: "..tostring(kgo).."  Lim: "..tostring(open_lim)..  "\n"); -- "\n" признак конца строки
				--f:write( tostring(date1).. "  " ..tostring(time1)..  "  " .. "BID: " .. tostring(res_trans) .. "  " .. "ASK: " ..  tostring(MXU8ask_vol) .. "\n"); -- "\n" признак конца строки
				   -- Сохраняет изменения в файле на диск
				f:flush();
				
				fut_limit_old = fut_limit;
			end
			
			if fut_limit_max == 0  then   								
				fut_limit_max = fut_limit;
			end	
				
			if ( math.abs(fut_limit-fut_limit_max) > 1000000 and fut_limit>0 ) then   	  -- настраиваем под себя							
				message( tostring(fut_limit) )   ----сообщение в Квик--
				--message( tostring(time1) )
				---------------------------------------- отправляем сообщение в  Телеграмм--
				pos_free     = getFuturesLimit("A111", "A111111", 0, "SUR").cbplplanned               --NUMBER  ГО свободных денег от позы без пониженного ГО 
				open_lim     = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit                  --NUMBER  Лимит открытых позиций
				tg_message = tostring(open_lim).."   ГО:"..tostring(fut_limit).."   Поза:"..tostring(open_lim-pos_free) 
				os.execute('curl  "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ')    -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм
				----------------------------------------
				-- Пример строки   https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text=  + Привет Квик!
				----------------------------------------
				fut_limit_max = fut_limit;
			end	
			
			if  math.abs(kgo-kgo_old) > 0 then
				---------------------------------------- отправляем сообщение в  телеграмм
				tg_message = tostring(kgo).." Внимание! Изменился коэффициент КГО" 
				os.execute('curl  "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ')    -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм
				----------------------------------------
				-- Пример строки   https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text=  + Привет Квик!
				----------------------------------------
				kgo_old = kgo;
			end
		end
		
		
		
    end
f:close();  -- закрываем файл печати.
end		
		

-- Остановка скрипта из Квика
function OnStop(stop_flag)

    is_run=false

end


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

Использование API Fmp Cloud для отбора акций по дивидендам на Nasdaq с помощью Python

    • 21 марта 2021, 20:02
    • |
    • Aleks
  • Еще

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

Что такое дивидендная доходность?

Возьму определение из Википедии. Дивиде́ндная дохо́дность (англ. dividend yield) — это отношение величины годового дивиденда на акцию к цене акции. Данная величина выражается чаще всего в процентах.

Пример

При цене акции ОАО «Лукойл» 1124,37 рублей и дивиденде 28 рублей на акцию дивидендная доходность будет равна:

Использование API Fmp Cloud для отбора акций по дивидендам на Nasdaq с помощью Python
Так же необходимо обратить внимание, что многие растущие компании, такие как для примера Amazon и Yandex, не выплачивают дивиденды, поскольку они реинвестируют всю прибыль в развитие бизнеса. Поэтому дивидендная доходность для этих фирм будет равна нулю.

Расчет дивидендной доходности с помощью Python



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

Бионические нейронные сети и оценка инвестиционной привлекательности активов

Одна из основных претензий к модели ценообразования капитальных активов и всей сопутствующей теории состоит в том, что она рассматривает жизнь как нечто унифицированное, бесплодное, состоящее из одинаковых, серых человечков. И, надо сказать, имеет на это полное право – лицензии ФСФР, сертификаты CFI, различные стандарты и ограничения превращают ярких, неповторимых управляющих в скучную серую массу, представители которой возглавляют столь же скучную первую строку Forbes... 


Что ж, давайте возьмем всех этих успешных управляющих и промоделируем их простым, бионическим нейроном.  Модель очень проста: если их долго раздражать, то они будут становиться всё более и более напряженными, пока, вдруг, не взорвутся в буре своих эмоций и не сбросят накопившееся напряжение в порыве страсти. После чего, наконец, успокоятся и уснут. И, напротив, если их вовсе не трогать, то их напряжение спадет само собой, и они уснут сами, без всякого бурного действа. Это модель возбуждения-торможения, одинаково хорошо применима и к инфузориям туфелькам, и к президенту Соединенных Штатов Америки, и, уж тем более, к нашим гениям финансового рынка. 



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

Оценка устойчивости алгоритма на Si

Многих почему-то пугает тестирование алгоритма на Forex, поэтому я решил взять понятный для всех Si. Впрочем, Forex (с его USD/RUB) тоже пригодится.

В своём предыдущем посте я уже говорил, что лучшая (по определённому показателю своей результативности на истории конкретного инструмента) торговая стратегия (т.е. комбинация значений параметров алгоритма) гарантировано не будет лучшей на другом инструменте или на этом же инструменте в будущем. Все алготрейдеры это знают, но лично мне каждый раз в это верится с очень большим трудом. Откуда затруднения? Я объясню.

Если взять результаты бэктеста алгоритма на паре USD/RUB (котировки Forex-брокера Dukascopy с марта 2007 г. по сентябрь 2017 г.) и отсортировать их по коэффициенту линейности (далее — L), то лучшая стратегия (L=0.99811) будет выглядеть так:

Оценка устойчивости алгоритма на Si

Отношение среднегодовой прибыли к среднегодовой max[просадке] (далее — R) — 3.61 (без учёта потери на спреде).

Вот казалось бы, что может пойти не так при использовании этой стратегии в будущем (на этом же инструменте или на смежных)? Чтобы это выяснить, я протестирую эту же стратегию (без изменений) на смежном активе: фьючерсе на USD/RUB (свечной график M1 от Finam с декабря 2008 г. по декабрь 2020 г.):

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

Тренд и контртренд. Существуют ли они вообще?

Доброе утро, коллеги!

Всем Вам хорошо известно, что такое тренд. В любом, даже самом начальном учебнике ТА, написано про теорию Доу и его определение тренда (монотонная последовательность экстремумов, возрастающая (максимумы) или убывающая (минимумы)).

О контртренде известно значительно меньше. Приведу несколько мнений:
1. Все, что не тренд — это контртренд
2. Контртренд — это пила (ну а пила — это когда кто-то пилит (и сливает) мой счет...)
3. Контртренд — это сложная коррекция. Характеризуется аномально высоким пересечением областей действия близких волн (Alexander_FXO)
4. Контртренд — это когда показатель Херста ценового процесса уходит ниже отметки 0.5
Ну и т.д. и т.п.
В целом понятно, что ничего не понятно.

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

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

Опционы. Текущий рейтинг методов расчета исторической волатильности HV

В начале 2017 года я сделал расчет, в котором сравнил различные способы расчета HV.
Свои выводы я представил на завтраке инвестора у Алины Ананьевой.
Были рассмотрены восемь активов на различных рынках и период с 2010 по 2016 гг.
Методы сравнивались по критерию наименьшей ошибки прогноза будущей волатильности.
Лучшими подходами по моему мнению оказались методы господина Твардовского, господина Механизатора, экспоненциальный способ, а также усреднение этих трех прогнозов. Сейчас мне стало любопытно, насколько я оказался прав тогда в своих выводах.

Для теста я взял часовые свечки различных активов с января 2017г. по январь 2021г.
Основные выводы представлены ниже, объяснения и таблички  следуют за ними.
 

Выводы

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

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

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

4. Подход г-на Механизатора с выбранным мной множителем уступил лидерские позиции другим методам, но оказался полезен при совместном использовании с другими способами .

5. Для часового таймфрейма популярные подходы Parkinson, Yang-Zhang, Rogers-Satchell и Garman-Klass в большинстве случаев оказались хуже даже базового метода расчета исторической волатильности. Впрочем, для дневного таймфрейма показатели этих методов (в частности, подхода 



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

Скользящая средняя с динамическим диапазоном усреднения

    • 17 февраля 2021, 14:06
    • |
    • semikot
  • Еще

Решил поделиться одним техническим способом, который я использую для определения тренда – среднюю с изменяющимся диапазоном усреднения. Но перед тем, как выложить все это искушенной публике, проверил есть ли что похожее. Оказывается, есть, но только по названию, а не по сути (может, правда, я чего-то не нашел). Это индикатор VIDYA. Ниже я приложу справку с описанием из интернета с расчетом VIDYA. VIDYA немного модифицирует экспоненциальную скользящую среднюю EMA. Период усреднения в EMA – это доля, которая определяет сколько взять текущей цены, а сколько предыдущего значения EMA. То есть вся фишка VIDYA в добавлении переменной в размер доли.

Если озвучивать задачу, которую я перед собой поставил, то это максимально быстро выявить тренд с минимальными ошибками. Самый простой трендовый индикатор – средняя, да и самый удобный при работе в Excel. У меня в Excel в принципе все расчеты. Дальше немного порассуждаю. При боковике с быстрыми изменениями направления движения средняя с большим усреднением не покажет хорошего результата, а при длительном движении средняя с маленьким периодом усреднения  будет чаще показывать разворот, которого еще нет. Значит при боковике или быстро изменяющихся движениях рынка период средней должен уменьшаться, а при трендовом движении в одну сторону период средней должен увеличиваться.



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

Ликбез: анализируем отчетность банков 3.

Давайте немного поговорим о теории (чтобы лучше понимать мои обзоры по банкам)...

На основе чего строится математическая оценка структуры баланса:

Значения обязательных нормативов (вес 4):

  • Н1.1 – норматив достаточности базового капитала банка
  • Н1.4 – норматив финансового рычага
  • Н2 – мгновенная ликвидность
  • Н3 – текущая ликвидность
  • Н4 – долгосрочная ликвидность
  • Н7 – Максимальный размер крупных кредитных рисков

Качество активов (вес 1-3):

  • Коэффициент качества кредитного портфеля
  • Коэффициент эффективности использования активов
  • Анализ «тяжести» кредитного портфеля
  • Валютная составляющая кредитного портфеля
  • Доля просроченных ссуд
  • Коэффициент соотношения высоколиквидных активов и привлеченных средств

Качество пассивов (вес 2):

  • Коэффициент зависимости от привлеченных МБК
  • Коэффициент стабильности ресурсной базы
  • Коэффициент стабильности клиентской базы
  • Коэффициент структуры привлеченных средств


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

Математическая задачка для трейдера/инвестора

Добрый день, коллеги!

Прошу прощения за вынужденное отсутствие — был сильно занят.

Хочу предложить уважаемому community не слишком сложную, но весьма интересную задачку.
Она в теории даже может иметь практическое применение.

Вводная:

Не секрет, что на рынке золотых слитков и монет присутствует большое количество подделок. Еще не утихли страсти по массовой подделке канадских золотых монет (gold maple leaf), как выяснилось, что и с российскими «победоносцами» все не слава Богу (в Москве уж точно).
Возить на каждую сделку ювелира достаточно накладно. Опять же, на сегодняшний день не существует неразрушающих методов, позволяющих убедиться, что содержание золота в инвестиционном изделии примерно соответствует пробе (допустим, 99% при пробе 999). Всем неверующим Гугл в помощь (ищем «подделка золото вольфрам»).

Задача:

Инвестор хочет приобрести золотые слитки/бары/монеты пробы 999 (для упрощения) и хочет быть уверен, что это золото на 99%.
Неразрушающей диагностики не существует. После распила/сверления/растворения в кислоте цена единицы тестируемого изделия падает на 25% (восстановление из раствора/расплава, переплавка, отсутствие клейма etc.).

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

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