Избранное трейдера Ramil Shahattudinov

по

Как проверь инвестиционные стратегии?

    • 01 октября 2019, 01:41
    • |
    • Gregori
  • Еще

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

Посчитать допустим историческую доходность при таком алгоритме:
1. если цена не выше чем на n(допустим 10) процентов от минимума  и акция входит в  топ k% по недооцененности   (суммарная стоимость акций относительно денежного потока или допустим относительно стоимости имущества компании), то покупать. Суммарный объём таких акций составят NN%
2. Если дивидендная доходность растёт в течении x лет и доходность относительно текущей цены акций выше на y% чем инфляция или скажем доходность по ОФЗ, то покупаем.

Тут же подбор различных активов портфеля по принципу дополнения (что бы снизить общую волатильность). Можно конечно по книжкам  действовать. И всё же хочется ещё и протестировать. Понятно предсказать как в следующие 10 лет будет никто не может. но хоть посмотреть как было в последние 100- хоть какие то ошибок возможно избегу так.



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

Автологин для Quik 8 x64

Здравствуйте, друзья :)
Автологин для Quik 8 x64


Был у всех нас раньше хороший скрипт Autologin.lua, который авторизовывался автоматически в Quik, но с выходом 8-й версии он работать перестал, т.к. перестала работать библиотека w32.dll. Мы по совету одного из участников нашего сайта решили пойти самым быстрым путем и написали консольное приложение, которое ловит окно авторизации терминала Quik, вводит в него указанные логин и пароль и нажимает кнопку «Войти в систему».
Данное решение очень упрощает жизнь, особенно при алготорговле, когда терминал стоит на выделенном сервере.

Кому интересно, качайте https://quikluacsharp.ru/quik-qlua/qlua-lua-skript-avtomaticheskoj-avtorizatsii/

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

  • обсудить на форуме:
  • QUIK

Какой планшет выбрать для торговли?

Всем добрый вечер.
Были аналогичные темы от 2017 и 2016 годов… Однако время идет, прогресс не стоит на месте.
В настоящее время ищу планшет для торговли.
Параллельно изучаю LUA.

Не могли бы подсказать, пожалуйста:
А) Планшет с какой ОС выбрать для торговли? Что лучше, винда, андроид, ИОС?
Б) На какие характеристики планшета вообще обратить внимание? Какая оперативка минимум должна быть?
В) Какой текстовый редактор лучше всего подойдет в зависимости от ОС?
Г) Можно ли вообще на планшете заниматься полноценным программированием на LUA?

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

Судак-Тудак (робот)

Алгоритм данной торговли был описан уважаемым Гном  (https://smart-lab.ru/blog/499606.php) и, поскольку я являюсь любителем различных теорий Мартингейла и усреднения, написал робота по этой стратегии.

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

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

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

Итак, представляю: «Судак-Тудак» Универсальный (одновременно для акций и фьючерсов).

Судак-Тудак (робот)

Если хотите добавить инструменты (а они добавляются в массив aTickerList), не забудьте вписать их данные в массивы:



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

Индикатор PVV (price/volume/volatility)

    • 10 апреля 2019, 19:00
    • |
    • AlexChi
  • Еще

Совсем недавно я написал рецензию на книгу Стива Акелиса “Технический анализ от А до Я”. Вот эта рецензия:

Лучшая книга по техническому анализу

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

Будучи программистом, я все больше и больше начинал смотреть в сторону технического анализа и различных паттернов.  Правда, технический анализ не спешил дарить мне рабочие торговые системы. Что я только не тестировал и какие только параметры не перебирал! Казалось бы, вот она идея, но стоило ее протестировать на истории и меня в очередной раз ожидало сильное разочарование. В некотором роде мне повезло, я знал хотя бы где и куда копать. Еще в самом начале своего торгового пути я понял, что лучшие бумаги, как правило, остаются лучшими, а аутсайдеры, так и остаются аутсайдерами. Т.е. я не тратил время, нервы и деньги на ловлю падающих ножей и на усреднение убыточных позиций. Но как выжать максимум из тех бумаг, что растут и растут хорошо? Как из нескольких десятков лидеров определить ту одну-две бумаги, которые дадут максимальную прибыль?



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

Робот "Два Боллинджера" с исходниками

Хорош философствовать. Давайте писать более полезные посты.
Итак, робот на двух графиках Боллинджера.
Общий принцип:
1) На цену накладываются два графика Боллинджера: с периодами 20 и 120 (назовем их local и global).
2) В зависимости от параметра внутри робота, входим либо когда цена входит внутрь local-Боллинджера (ContrTrendFlag=1), либо выходит из него (ContrTrendFlag=0).
3) Дополнительный фильтр: Лонг только когда когда мы в верхней половине global-Боллинджера, шорт — если в нижней.
Данные робот берет из графиков, так что график должен быть открыт, и прописаны идентификаторы.

График с двумя Боллинджерами выглядит примерно так:

Робот "Два Боллинджера" с исходниками

Настройки на цене и индикаторах не забудьте:

Робот "Два Боллинджера" с исходниками

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

Забота о здоровье во время просадки

    • 19 марта 2019, 15:00
    • |
    • Andrey
  • Еще
Многие тут жалуются на инфляцию, на то что яйца подорожали. Кто-то терпит убытки, кто-то в глобус на бесплатные дегустации ездит и так далее.
Предложу свой вариант выхода из ситуации, как сильно сэкономить на еде, но остаться здоровым, ну или нетерять здоровье именно за-за херовой и подорожавшей еды.

Что нужно организму, чтоб функционировать:
1. Белки, чтоб строить ткани.
2. Жиры, чтоб строить ткани.
3. Витамины и минсоли, чтоб ткани строились, а не всё в унитаз улетало.
4. Энергия (обязательно, а иначе в энергию белки и жиры пойдут).
5. Здоровье кишечника.


Обычно человек всё это получает из еды, но если еда подорожала, то из подножного корма. Поэтому, что мы делаем — покупаем нужные вещества отдельно в бутылочках.
1. Белки догоняем сывороточным белком для спортсменов. Можно гороховым, но это дороже. В идеале надо половину сывороточного, половину соевого. Нужно 20-30г белка в день. Это примерно 30-40р в день. Кто по-старше, белка можно меньше.
2. Жиры. Можно по-дороже — покупать омегу и лецитин, можно по-дешевле — льняное и прочие растительные масла. Если действовать через растительные масла, то это рублей 15-25 в день, если с омегой, то ещё 30р в день, плюс лецитин… Ну заложим на жиры 30р в день.

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

скрипт для quik

скрипт для отслеживания бумаг по системе BWS:

--Массив с Тикерами, добавьте нужные тикеры
aTickerList = {"MSNG", "GAZP", "LKOH",
	    "SIBN", "GMKN","ROSN",
	    "SBER", "TATN", "NVTK",
	    "IRAO", "RSTI", "SBERP",
	    "PHOR", "SNGS", "TRNFP",
	    "VTBR", "FEES", "MVID",
	    "RASP", "MFON", "AFLT", 
	    "MAGN", "ALRS", "MTSS", "MOEX",
	    "RTKM", "MGNT", "NLMK", "SNGSP",
	    "CHMF", "MTLR", "HYDR", "MFON",
	    "RSTI", "PLZL", "BANEP", "POLY"
	    };

--Функция поиска цены
function fGetPrice(sTickerName, sNum)
	--Подключаемся к источнику данных
	local ds=CreateDataSource("TQBR", sTickerName, INTERVAL_D1);
	while (Error=="" or Error == nil) and ds:Size() ==0 do sleep(10) end;
	if Error ~="" and Error ~=nil then message("Error: "..Error, 1) end;
	local sSize=ds:Size();
	local sCurrentPrice=ds:O(sSize);
	
	local sLastWeekPrice7=0;
	local sLastWeekPrice14=0;

	--Берем цену закрытия свечи неделю назад
	sLastWeekPrice7=ds:C(sSize-4);
	--Берем цену закрытия свечи 2 недели назад
	sLastWeekPrice14=ds:C(sSize-8);

		--Вычисляем проценты
		local sPrc7=math.floor((100-((sLastWeekPrice7*100)/sCurrentPrice))*100)/100;
		local sPrc14=math.floor((100-((sLastWeekPrice14*100)/sCurrentPrice))*100)/100;

		--Заполняем таблицу значениями
		SetCell(t_id, sNum, 0, tostring(sTickerName));
   		SetCell(t_id, sNum, 1, tostring(sCurrentPrice),sCurrentPrice);
   		SetCell(t_id, sNum, 2, tostring(sLastWeekPrice7),sLastWeekPrice7);
   		SetCell(t_id, sNum, 3, tostring(sLastWeekPrice14),sLastWeekPrice14);
   		SetCell(t_id, sNum, 4, tostring(sPrc7),sPrc7);
		SetCell(t_id, sNum, 5, tostring(sPrc14),sPrc14);

		--Текущая цена больше цены прошлой недели - раскрашиваем зеленым
		if sCurrentPrice>sLastWeekPrice7 then 
			fGreen(sNum);
		end;
		--Текущая цена меньше цены прошлой недели - раскрашиваем красным
		if sCurrentPrice<sLastWeekPrice7 then
			fRed(sNum);
	   	end;
		--Текущая цена больше цены прошлой недели и цена прошлой недели больше цены позапрошлой недели
		--раскрашиваем желтым
		if sCurrentPrice>sLastWeekPrice7 and sLastWeekPrice7>sLastWeekPrice14  then 
			fYellow(sNum);
	   	end;
end;

--- Функция создает таблицу
function CreateTable()
	-- Получает доступный id для создания
	t_id = AllocTable();	
	-- Добавляет 6 колонок
 	AddColumn(t_id, 0, "Тикер", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 1, "Сегодня", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 2, "Неделя", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 3, "2 Недели", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 4, "Неделя (%)", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 5, "2 Недели (%)", true, QTABLE_INT_TYPE, 15);
	
	-- Создаем
	t = CreateWindow(t_id);
	-- Даем заголовок	
	SetWindowCaption(t_id, "7 Days");

   -- Добавляем строки
      for k,v in pairs(aTickerList) do
		InsertRow(t_id, k);
      end;
end;

--- Функции раскрашивают ячейки таблицы
function fRed(col)
	SetColor(t_id, col, -1, RGB(255,168,164), RGB(0,0,0), RGB(255,168,164), RGB(0,0,0));
end;
function fGreen(col)
	SetColor(t_id, col, -1, RGB(157,241,163), RGB(0,0,0), RGB(157,241,163), RGB(0,0,0));
end;
function fYellow(col)
	SetColor(t_id, col, -1, RGB(249,247,172), RGB(0,0,0), RGB(249,247,172), RGB(0,0,0));
end;

--Основная функция
function main()
	-- Создаем таблицу
 	CreateTable();

 	--Пробегаемся по массиву тикеров
	for k,v in pairs(aTickerList) do
	  fGetPrice(v, k);
	end;

end;
как выглядит в квике:

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

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