Избранное трейдера Denis StrJ

по

Алгоритмы баскет трейдинга

Алгоритмы баскет трейдинга

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

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

На первом же шаге меня ожидала неприятная новость: выбирать инструменты особо не из чего…
Алгоритмы баскет трейдинга



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

Жаль нельзя с текущими знаниями/опытом вернуться в 2009 год.

    • 23 ноября 2017, 16:16
    • |
    • Friend
  • Еще
Жаль конечно, представьте какую доходность и каких результатов в своей жизни вы могли бы получить вернувшись в 2009 год с тем багажом знаний и опыта который у вас сейчас накопился. 
А если он повторится? Вы сможете не профукать его? 
Вы готовы к этому? 
После 2008-2009 все ждали краха, а много сделало состояния в 2014? а в 2011? 
Я как раз запустил системы на валютах в 08.2014, и что? побоялся пускать объемы, как результат что?, правильно, профит в % большой, в абс величине маленький.
А потом что? как и все, набираем объем, постепенно, и наступает 2016 год :(, а что в 2016 году? Год без профита или с небольшим профитом или слом систем почти у всех кто торговал си, ри. Наступил 2017, и что? Готовы к переменам? ладно начало года, лихо восстановили все что потеряли в 2016, переписали максимумы, и дальше что? июль, август, сентябрь. Какие-то системы обновили эквити в сентябре. Но в целом с июля боковик. И не только у меня. У большинства. Только вчера переписали экстремумы, а дальше что? Радует одно не стоим на месте в плане развития. 

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

Как я накопил 1 000 000 рублей

А вернее, как я собираюсь это сделать...

Цель:
1. Накопить деньги для последующего долгосрочного инвестирования в дивидендные акции.
2. Производить накопления, уделяя этому 5 минут в месяц, а основное время выделить на изучение методов инвестирования в дивидендные акции.

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

Структура инвестиционного портфеля:
100% портфеля будет состоять из следующих ETF'ов — FXMM, FXRB, FXRL.
FXMM — фонд инвестирующий в портфель краткосрочных казначейских облигаций США (Treasury Bills). Доходность достигается за счет свопа доллар-рубля. Дох-ть аналогична банковскому депозиту, или вложению в наши ОФЗ. Риски примерно теже (но это не точно).
FXRB - фонд инвестирующий в «корзину» из более чем 25 еврооблигаций российских компаний с высокой капитализацией.
FXRL — фонд инвестирующий в акции, входящие в индекс Московской Биржи (РТС). Дивиденды реинвестируются. 

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

Мюсли вслух - 91. К вопросу о скользящих средних




Уважаемый мною Vanuta утверждает в комментах к посту  «Октябрь-2017. Время продавать», что скользящие средние не работают.
Вот тут ради интереса посчитал что можно заработать на скользящих за год по 50 наиболее ликвидным акциям. В каждой паре столбцов первый — заработанный/потерянный процент, второй — количество входов/выходов за год. Скользящие взяты простые (не экспоненциальные).
В первых столбцах (200-8 и 40-8) вход в позицию осуществлялся при превышении ценой значений 200-дневной и 8-дневной скользящей одновременно. Также и в следующих двух столбцах 40-дневной и 8-дневной. В следующих столбцах вход тупо при превышении ценой значения средней 100-дневной, 75-дневной и т.д.  Результаты смотрите сами:

Мюсли вслух - 91. К вопросу о скользящих средних

Всем успехов в торгах.)






Помогите написать робота..

Торгую на фортс..

Как написать робота по алгоритму:
— начало дня, есть цена открытия, изначально с открытия в лонге 7 контрактов, если цена уходит на 300пп. вверх, закрываем 1к. уходит еще на 300пп. вверх закрываем еще 1к., если идет еще дальше вверх, то до конца дня больше сделок не делаем…

— Если цена после открытия идет на 300вниз, то докупаем 1к. идет еще на 300 вниз, то докупаем еще 1к… если идет еще дальше вниз, то до окончания дня больше сделок не делаем..

— Если в теч. дня сделана дополнительная сделка/(2 сделки) покупки или продажи и цена возвращается на цену открытия, делается противоположная сделка и алгоритм обнуляется..

Т.е. примеры:
1- открылись — цена 1000, в лонге 7к., прошли +300пп. закрыли 1к. в лонге 6к. вернулись на цену 1000, снова купили 1к. до 7к. и алгоритм запустился с начала… снова +300пп. снова продажа 1к. до 6к. и т.д.


Инвестируем на позитиве!

    • 13 сентября 2017, 21:03
    • |
    • COREz
  • Еще
Может ли инвестор на фондовом рынке быть всегда на позитиве? Легко! Для этого ему необходимо собрать «позитивный» портфель, состоящий из хорошо диверсифицированных инструментов. Итак, попробую объяснить как этого добиться.

Разбиваем имеющуюся сумму денежных средств на четыре равные части.

На одну четверть приобретаем муниципальные облигации субъектов РФ в равных долях ВСЕХ доступных эмитентов (порядка сотни наименований). Такой подход обеспечит Вас хорошей средней доходностью на многие годы вперёд и даст возможность получать практически ежедневный доход с купонных выплат и с амортизационных отчислений, которые НЕ облагаются налогом.

Следующую четверть выделяем на покупку дивидендных акций ММВБ в равных долях в количестве 30-40 наименований. Для примера можно посмотреть мой портфель в блоге. Такой метод гарантирует Вам минимальный риск на одного эмитента и стабильно хорошую среднюю доходность.

Ещё одну четверть отдаём под покупку Евро на валютном рынке ММВБ и последнюю четверть аналогично вкладываем в Доллары США.

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

попалась толковая статья про коины... все очень плохо...

    • 26 августа 2017, 16:02
    • |
    • ves2010
  • Еще
может боян...

habrahabr.ru/company/kaspersky/blog/336036/

100% копипаста... 
Шесть мифов о блокчейне и Биткойне, или Почему это не такая уж эффективная технологияАвтор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского»

Неоднократно слышал мнение о том, что блокчейн — это очень круто, это прорыв, за ним будущее. Спешу вас разочаровать, если вы вдруг поверили в это.

Уточнение: в этом посте мы поговорим о том варианте реализации технологии блокчейн, который используется в криптовалюте Биткойн. Существуют другие применения и реализации блокчейна, в некоторых из них устранены какие-либо недостатки «блокчейна классического», но обычно они построены на одинаковых принципах.

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

Таблица "Портфель" в QUIKе


    Представляю таблицу для портфельных инвестиций. В квике до сих пор такого нет. Цвет строки меняется если Прибыль%<>5%. Обновление каждые 5 сек.
Таблица "Портфель" в QUIKе

Для её создания необходимо:
1. Создать файл «tablePortfolio.txt» в папке «C:\QUIK\Scripts». Если папки нет, создать её.
2. Скопировать туда код скрипта
3. Сохранить, выбрав кодировку «ANSI», иначе вместо русских букв могут быть кракозябры.
4. Сменить расширение файла с ".txt" на ".lua"
5. Запустить скрипт командой Сервисы->Lua  скрипты->Добавить (выбрать файл tablePortfolio.lua) ->Запустить

Код скрипта:
IsRun = true
class_code="TQBR"

function main()
   -- Получает доступный id для создания
   t_id = AllocTable()   
   
   -- добавить столбцы
   AddColumn(t_id, 1, "Бумага",       true, QTABLE_STRING_TYPE, 20)
   AddColumn(t_id, 2, "Кол-во",       true, QTABLE_INT_TYPE,     7)
   AddColumn(t_id, 3, "Цена покупки", true, QTABLE_DOUBLE_TYPE, 14)
   AddColumn(t_id, 4, "Цена текущая", true, QTABLE_DOUBLE_TYPE,   14)
   AddColumn(t_id, 5, "Прибыль, р",   true, QTABLE_DOUBLE_TYPE,   14)
   AddColumn(t_id, 6, "Прибыль, %",   true, QTABLE_DOUBLE_TYPE, 14)
   t = CreateWindow(t_id)

   for iRow=1, getNumberOf("depo_limits")-1, 1 do
      rowInPortfolioTable = getItem("depo_limits", iRow) -- получить текущую строку из таблицы "Лимиты по бумагам"            
      qtyBoughtLots  = tonumber(rowInPortfolioTable.currentbal)         
      limitKind = rowInPortfolioTable.limit_kind          
      if qtyBoughtLots>0 and limitKind<1 then      
         InsertRow(t_id, iRow)-- добавить новую строку вниз таблицы   
      end
   end
   local rows, columns = GetTableSize (t_id)
   InsertRow(t_id, rows+1) -- добавить новую строку вниз таблицы для "Итого"
   
   SetWindowCaption(t_id, "Портфель: прибыли и убытки    © ramirzaev@mail.ru") 

   -- исполнять цикл, пока пользователь не остановит скрипт или не закроет окно таблицы
   while IsRun do 
      if IsWindowClosed(t_id)==true then
         IsRun=false
      end

      local currentPrice=0
      local qtyBoughtLots=0
      local profitAbs = 0
      local profitPerc = 0
      local currentSecCode= ""
      local fullNameOfInstrument = ""
      local limitKind = 0
      local rowInPortfolioTable = {}    -- строка из таблицы "Лимиты по бумагам"
      local tableInstrument = {}    -- данные "Таблицы текущих торгов"
      local iRowInOutTable = 1
	  local totalInvest = 0
	  local totalPortfolio = 0
	  local totalProfit = 0
	  local totalPercent = 0

      for iRow=0, getNumberOf("depo_limits")-1, 1 do
         rowInPortfolioTable = getItem("depo_limits", iRow) -- получить текущую строку из таблицы "Лимиты по бумагам"         
         
         qtyBoughtLots  = tonumber(rowInPortfolioTable.currentbal)
         
         limitKind = rowInPortfolioTable.limit_kind 
         
         if qtyBoughtLots>0 and limitKind<1    then      -- если кол-во лотов >0 и тип лимита T0
            currentSecCode = rowInPortfolioTable.sec_code
            fullNameOfInstrument =  tostring(getParamEx(class_code, currentSecCode, "SHORTNAME").param_image or "0") --"LONGNAME"
            avgPrice       = tonumber(rowInPortfolioTable.awg_position_price)                  
            currentPrice = GetAskPrice(currentSecCode)   
            profitAbs = (currentPrice-avgPrice)*qtyBoughtLots      
            profitPerc    = 100*currentPrice/avgPrice   - 100
			
			totalInvest = totalInvest + avgPrice*qtyBoughtLots  
			totalPortfolio = totalPortfolio + currentPrice*qtyBoughtLots   
            
            SetCell(t_id, iRowInOutTable, 1, fullNameOfInstrument) -- "Бумага"
            SetCell(t_id, iRowInOutTable, 2, tostring(qtyBoughtLots)) -- "Кол-во"RemoveZero(tostring(qtyBoughtLots)))
            SetCell(t_id, iRowInOutTable, 3, tostring( math_round(avgPrice, 3) ))  -- tostring(avgPrice))   -- "Цена покупки"
            SetCell(t_id, iRowInOutTable, 4, RemoveZero(tostring(currentPrice)))   -- "Цена текущая"
            SetCell(t_id, iRowInOutTable, 5, tostring( math_round( profitAbs, 0)) ) -- "Прибыль, р"
            SetCell(t_id, iRowInOutTable, 6, tostring(math_round(profitPerc, 1)) .."%") -- "Прибыль, %"
            
            if profitPerc >5 then       -- окрашиваем
               ColourRowInGreen(iRowInOutTable)
            elseif profitPerc<-5 then 
               ColourRowInRed(iRowInOutTable)
            else 
               ColourRowInYellow(iRowInOutTable)
            end   
            iRowInOutTable = iRowInOutTable+1
         end
      end
      totalProfit = totalPortfolio - totalInvest 
      totalPercent   = 100*totalProfit/totalInvest  
	  SetCell(t_id, iRowInOutTable, 1, "Итого") 
      SetCell(t_id, iRowInOutTable, 3, tostring( math_round(totalInvest, 0) ))  
      SetCell(t_id, iRowInOutTable, 4, tostring( math_round(totalPortfolio, 0)))  
      SetCell(t_id, iRowInOutTable, 5, tostring( math_round( totalProfit, 0)) ) 
      SetCell(t_id, iRowInOutTable, 6, tostring(math_round(totalPercent, 1)) .."%") 
	  
	  if profitPerc >5 then       -- окрашиваем
               ColourRowInGreen(iRowInOutTable)
            elseif profitPerc<-5 then 
               ColourRowInRed(iRowInOutTable)
            else 
               ColourRowInYellow(iRowInOutTable)
            end   
            iRowInOutTable = iRowInOutTable+1
      sleep(5000) -- пауза 5 сек.
      end
   --message("script table portfolio finished")
end


function ColourRowInRed(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(255,150,150), RGB(0,0,0), RGB(255,150,150), RGB(0,0,0))
end
function ColourRowInYellow(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(255,255,200), RGB(0,0,0), RGB(255,255,200), RGB(0,0,0))
end
function ColourRowInGreen(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(150,255,150), RGB(0,0,0), RGB(150,255,150), RGB(0,0,0))
end
function GetAskPrice(inp_Sec_Code )
   local ask = tostring(getParamEx(class_code, inp_Sec_Code, "OFFER").param_value or 0)
   return ask
end
-- Округляет число до указанной точности
function math_round (num, idp)
   local mult = 10^(idp or 0)
   return math.floor(num * mult + 0.5) / mult
end
-- удаление точки и нулей после нее
function RemoveZero(str)
   while (string.sub(str,-1) == "0" and str ~= "0") do
      str = string.sub(str,1,-2)
   end
   if (string.sub(str,-1) == ".") then 
      str = string.sub(str,1,-2)
   end   
   return str
end
function OnStop()
   DestroyTable(t_id)
   IsRun = false   
end
  • обсудить на форуме:
  • QUIK

Стратегия второй-третий эшелон.

товарищи, всем привет, предлагаю вашему вниманию торговая стратегия: Стратегия второй-третий эшелон.


Продолжаю набирать портфели, еще 2 хороших собрал, сегодня запустил в торги

    • 23 июня 2017, 13:52
    • |
    • Friend
  • Еще

В версии 2.0 TsLab появился функционал по сбору портфеля, пока не совсем удобно, но уже что то, сдвинулось дело с мертвой точки. 
Краткая инструкция: 
1. Берем нашу систему, копируем все блоки
2. Создаем свой индикатор, вставляем туда все блоки
3. Удаляем графики, контрольные панели
4. Создаем новый скрипт, открываем, смотрим что у нас в панели инструментов появилась надпись самодельные
5. Берем от туда наш индикатор, кидаем в скрипт
6. Повторяем процедуру для других систем, компилируем, получаем общую кривую
Нюансы: не должно быть одинаковых названий блоков входа в одном портфеле, т.е. переименовать надо, т.е. система 1 — название блоков одно, система 2 — название блоков другое, именно блоков входа.
Что я сделал, у меня на валютах торгуются 4 основных идеи, я взял основные системы с этих идей и собрал их в 2 портфеля, по 10 систем в каждом. Каждой системе дал по 100К. В итоге получили 2 портфеля каждый из которых состоит из 10 систем. Каждый портфель на 1 мл. рублей. 
В итоге получилось лучше чем я ожидал.
Портфель №1 
Если взять просадку каждой системы по отдельности и просуммировать их, то получим 348 432 р., но в портфеле получили 236 492 р. (с 2015 года если смотреть), улучшение на 32%, очень хорошо. 
По второму портфелю снизилась с 437 490 до 328 972, на 24,8%.
При том, что я выбрал агрессивный стиль ММ, за счет симбиоза основных систем из 4  главных идей получилось сохранить общую просадку в пределах допустимой нормы. Запустил сегодня в торги оба портфеля на новом счете. И на старом выключил часть систем и поставил эти портфели



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

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