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

по

Сказ о пенсии, на которую не надеемся

Упал у меня с виска седой волос на клавиатуру. Да и заломила спина. И надавили годы. И захотелось вдруг узнать про пенсию свою. Ведь трудился я уже много лет и зим с вполне себе приличной белой з/п. Что же государство мне уготовило, подумал я. Зашел на госуслуги, и вижу, что почти год назад уже задавался этим вопросом (выясняется, что к седым волосам добавился склероз) и там есть от сент 2016 выписка, которая гласит:

Сказ о пенсии, на которую не надеемся

632 тыс.р. Много это или мало… Фиг знает. Это же не в месяц? Тогда наверное не много. Промсвязь, где я работал на заре молодости, по моему не сильно приумножила бабос. Так я видимо и подумал в конце 2016 года (о чем тоже признаться забыл) и в припадке малодушия поддался на уговоры бойкого мальчика с рекламным буклетом опосля чего перешел в другой пенс-фонд. Назывался он как-то «европейский пенс фонд» и якобы стабильно обгонял инфляцию. Ну да ладно. Перешел и перешел. Короче я снова запросил услугу «сколько у меня накапало». Благо технологии развились настолько, что почтовая черепаха госуслуг доставляет вам справку на электропочту за каких-то 20 секунд.  И там вот чо:

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

Что происходит с трейдерскими счетами на момент отзыва лицензии у банка.

    • 08 августа 2017, 08:29
    • |
    • dekab1
  • Еще
Нашел в сети.
В связи с неясной ситуацией вокруг банка " Закрытие" и существованием крупного брокера в составке этого банка. многих инитересует, что происходит с счетами трейдеров открытых у этого брокера? Так как известно, средства на таких счетах не попадают под АСВ, несмотря на то, что принадлежат физическим лицам.
Среди читателей блога нашелся человек, который уже прошел через такую ситуацию у банка Пробизнесбанк прекративший свою деятельность 12 августа 2015 года в связи с отзывом лицензии ЦБ (за «высокорискованную политику, связанную с размещением денежных средств в низкокачественные активы» ) Под катом его рассказ о ситуации

На момент ввода временной администрации в ПроБизнеБанк я был на него достаточно плотно завязан (работал с ним около 10 лет) несколько счетов юр. Лиц, депозит, карта, брокерский счет, ИИС. О том что у собственников банка есть терки с ЦБ знал уже давно, поэтому свободные средства юр. Лиц вывел за ранее, личные средства сократил до страховой суммы, поэтому главная проблема была с брокерским счетом.

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

Бэктестинг: следуем за RSI

В прошлый раз мы рассмотрели алгоритм торговли разворотов по сигналам RSI. В этой статье посмотрим, можно ли следовать в направлении движения RSI. Ведь индикатор показывает именно направление изменения цены. Алгоритмы пишем в Quantopian на Python.

В этот раз:

  • Следуем в направлении RSI на одном таймфрейме (день).
  • Следуем в направлении RSI на разных таймфреймах (час, день).
  • Отфильтруем тренд актива средними.


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

Как объяснить Ребенку про кредит,долг,рабский труд, добавленную стоимость, агрегаты М1-М3, стоимость сырья и биткоин.

Эпиграф
Как объяснить  Ребенку про кредит,долг,рабский труд,  добавленную стоимость, агрегаты М1-М3, стоимость сырья и биткоин.

Кроха сын к отцу пришел и спросила Кроха:
— Пап, биткоин хорошо, а чем рубль плохо?

Папа репу почесал и начал.

Жили -были на острове 100 трудолюбивых людей.
Денег не было, меняли картошку на глиняные горшки. Агрегат М0=0.
И приехали на Остров Строитель Дональд и банкирша Жанна.

Жанна создала банк, а строитель Дональд пообещал  всем новое жильё и решил построить 100-квартирный дом.

Приходит Дональд к Жанне и говорит:
— давай, старуха, кредит мне 100рублей, дом строить буду.
— дам, но под 10% годовых, пообещала Жанна.

И так на острове появились деньги, агрегат М0 стал 100рублей, а М3, 200рублей.
Появился спрос на кирпичи, стекло, мебель и тд.
И пошли жители кто глину ковырять и делать кирпичи, кто песок плавить для стекла, кто лес пилить и делать мебель.
Глина, лес, песок, сырьё, оно ж общее, бесплатное, бери кто хочет, а вот за кирпичи Дональд рубль платит!

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

Обратный пропорциональный спред - мощь и красота

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

 

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

Не буду рассказывать теорию, а поделюсь практикой.

Вообще я читал в западных источниках, что такая конструкция подходит, когда вы ожидаете например резкий рост на БА, но его вероятность  — невысокая. Тогда типа покупай такую конструкцию за практически 0 – в случае роста цены на БА вы получаете хорошую прибыль, а если его не происходит – то цена опциона не меняется да и вы ничем не рисковали, в смысле не было ваших расходов. Например, это подходит для биотеха, если ждете прорыва у какой-то компании, выдачи разрешения FDA и т.п.



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

Седой и Гном - в ожидании бури

История выдуманная. Все совпадения случайны


Седой сидел на открытой веранде крыши офисного центра и смотрел на Кремль. Долгожданное солнышко пригревало его. Седой щурился.

— Дождь пойдет, — заметив меня сказал он и кивнул в сторону стоящего рядом лежака, — садись, полялякаем

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

— Активно у тебя там, — я кивнул в сторону офиса

— Ага. Копошатся трутни. Август на носу, — и Седой замолчал

я подождал секунд тридцать и, не выдержав, спросил:

— Ты же меня не за этим пригласил?

— Держи сока. Сочный!

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



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

Бэктестинг: ловим развороты по RSI

В этот раз мы протестируем стратегию торговли уровней перекупленности и перепроданности. Разворачивать нас будет индикатор RSI (Индекс относительной силы). Тестировать будем в Quantopian, а код писать на Python.

На повестке дня:

  • Результаты разворотов на уровнях перекупленности/перепроданности.
  • Влияние срока удержания позиции.
  • Сравнение разных периодов индикаторов.


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

Код робота на LUA для QUIK

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

Предназначается для новичков в алготрейдинге, что-то типа болванки.

Важно: выставление заявок я закомментировал, поэтому можете смело запускать этот скрит, он не натворит ужаса по счету.

require"QL"

log = "sbrf.log"
seccode = "SRM6"
lots_in_trade = 80
accnt = ""
better = -5
chart = "sberbankxxx"
is_run = true
prev_datetime = {}
len = 100
basis = 9
k_bal = {0,1,2,3}
sell = false
buy = false
id = 0
first = true

function trade_signal(shift)
        number_of_candles = getNumCandles(chart)
        bars_temp,res,legend = getCandlesByIndex(chart,0,number_of_candles-2*len-shift,2*len)
        bars={}

        i=len
        j=2*len
        while i>=1 do
                if bars_temp[j-1].datetime.hour>=10 then
                        sk=true
                        if bars_temp[j-1].datetime.hour==18 and bars_temp[j-1].datetime.min==45 then
                                sk=false
                        end
                        if sk then
                                bars[i]=bars_temp[j-1]
                                i=i-1
                        end
                end
                j=j-1
        end

        t = len+1

        do_sell = false
        do_buy = true

        value = 0
        if do_sell then value = 1 end
        if do_buy then value = -1 end
        toLog(log,"value="..value.." on candle: "..bars[len].datetime.year.."-"..bars[len].datetime.month.."-"..bars[len].datetime.day.." "..bars[len].datetime.hour..":"..bars[len].datetime.min.."   O="..bars[len].open.." H="..bars[len].high.." L="..bars[len].low.." C="..bars[len].close.." V="..bars[len].volume)
        return value
end

function mysplit(inputstr, sep)
        if sep == nil then
                sep = "%s"
        end
        local t={} ; i=1
        for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
                t[i] = str
                i = i + 1
        end
        return t
end

function OnInit(path)
        log=getScriptPath()..'\\'..log
        toLog(log,"==========OnInit: START")
        toLog(log,"==========OnInit: FINISH")
end

function OnStop()
        is_run = false
        toLog(log,"==========OnStop: script finished manually")
end

function CheckBit(flags, bit)
   -- Проверяет, что переданные аргументы являются числами
   if type(flags) ~= "number" then error("Ошибка!!! Checkbit: 1-й аргумент не число!"); end;
   if type(bit) ~= "number" then error("Ошибка!!! Checkbit: 2-й аргумент не число!"); end;
   local RevBitsStr  = ""; -- Перевернутое (задом наперед) строковое представление двоичного представления переданного десятичного числа (flags)
   local Fmod = 0; -- Остаток от деления
   local Go = true; -- Флаг работы цикла
   while Go do
      Fmod = math.fmod(flags, 2); -- Остаток от деления
      flags = math.floor(flags/2); -- Оставляет для следующей итерации цикла только целую часть от деления
      RevBitsStr = RevBitsStr ..tostring(Fmod); -- Добавляет справа остаток от деления
      if flags == 0 then Go = false; end; -- Если был последний бит, завершает цикл
   end;
   -- Возвращает значение бита
   local Result = RevBitsStr :sub(bit+1,bit+1);
   if Result == "0" then return 0;
   elseif Result == "1" then return 1;
   else return nil;
   end;
end;

function killorders(ccode,scode)
    for i=0,getNumberOf("orders")-1,1 do
        local t=getItem("orders", i)
        if t ~= nil and type(t) == "table" then
            if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then
                local transaction={
                    ["TRANS_ID"]=tostring(math.random(2000000000)),
                    ["ACTION"]="KILL_ORDER",
                    ["CLASSCODE"]=ccode,
                    ["SECCODE"]=scode,
                                        ["ACCOUNT"] = accnt,
                    ["ORDER_KEY"]=tostring(t.ordernum),
                }
                                res=sendTransaction(transaction)
            end
        end
    end
end

function killstoporders(ccode,scode)
    for i=0,getNumberOf("stop_orders")-1,1 do
        local t=getItem("stop_orders", i)
        if t ~= nil and type(t) == "table" then
            if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then
                local transaction={
                    ["TRANS_ID"]=tostring(math.random(2000000000)),
                    ["ACTION"]="KILL_STOP_ORDER",
                    ["CLASSCODE"]=ccode,
                    ["SECCODE"]=scode,
                                        ["ACCOUNT"] = accnt,
                    ["STOP_ORDER_KEY"]=tostring(t.ordernum),
                }
                                res=sendTransaction(transaction)
            end
        end
    end
end


function main()
        toLog(log,"==========main: START")
        while is_run do
                if isConnected() == 1 then
                        ss = getInfoParam("SERVERTIME")
                        if string.len(ss) >= 5 then
                                hh = mysplit(ss,":")
                                str=hh[1]..hh[2]
                                h = tonumber(str)
                                if (h>=1000 and h<1400) or (h>=1405 and h<1845) or (h>=1905 and h<2350) then
                                        if first then
                                                for ti = 50,2,-1 do     trade_signal(ti) end
                                                if buy and not sell then message(seccode.." Current state: green and buy",1) end
                                                if sell and not buy then message(seccode.." Current state: red and sell",1) end
                                                if buy and sell then message(seccode.." ERROR: green and red",1) end
                                                if not buy and not sell then message(seccode.." WARNING: nothing",1) end
                                                first = false
                                        end
                                        prev_candle = getPrevCandle(chart,0)
                                        if not isEqual(prev_candle.datetime,prev_datetime) then
                                                current_value = trade_signal(1)

                                                if current_value ~= 0 then
                                                        optn = "B"
                                                        if current_value==1 then optn = "S" end
                                                        curvol=0
                                                        no=getNumberOf("FUTURES_CLIENT_HOLDING")
                                                        if no>0 then
                                                                for i=0,no-1,1 do
                                                                        im=getItem("FUTURES_CLIENT_HOLDING", i)
                                                                        if im.sec_code==seccode then
                                                                        curvol=im.totalnet
                                                                        end
                                                                end
                                                        end
                                                        trvol = -current_value*lots_in_trade-curvol
                                                        if trvol ~= 0 then
                                                                killorders("SPBFUT",seccode)
                                                                killstoporders("SPBFUT",seccode)
                                                                f = io.open(getScriptPath().."\\sbrf2_pos.txt","r")
                                                                sbrf2_pos=f:read("*n")
                                                                f:close()
                                                                f = io.open(getScriptPath().."\\sbrf3_pos.txt","r")
                                                                sbrf3_pos=f:read("*n")
                                                                f:close()
                                                                pr,n,l = getCandlesByIndex ("futsber", 0, getNumCandles("futsber")-1, 1)
                                                                local trans =
                                                                {
                                                                        ["ACTION"] = "NEW_ORDER",
                                                                        ["CLASSCODE"] = "SPBFUT",
                                                                        ["SECCODE"] = seccode,
                                                                        ["ACCOUNT"] = accnt,
                                                                        ["OPERATION"] = optn,
                                                                        ["PRICE"] = toPrice(seccode,pr[0].close+current_value*better),
                                                                        ["QUANTITY"] = tostring(math.abs(curvol-sbrf2_pos-sbrf3_pos)),
                                                                        ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id)
                                                                }
                                                                id = id+1
                                                                --res = sendTransaction(trans)
                                                                message(seccode.." Send : " .. res, 2)
                                                                toLog(log,"Send: ".. res)
                                                                for btr=0,200,5 do
                                                                        local trans =
                                                                        {
                                                                                ["ACTION"] = "NEW_STOP_ORDER",
                                                                                ["CLASSCODE"] = "SPBFUT",
                                                                                ["SECCODE"] = seccode,
                                                                                ["ACCOUNT"] = accnt,
                                                                                ["OPERATION"] = optn,
                                                                                ["PRICE"] = toPrice(seccode,pr[0].close-current_value*btr),
                                                                                ["STOPPRICE"] = toPrice(seccode,pr[0].close-current_value*(btr+better)),
                                                                                ["QUANTITY"] = tostring(6),
                                                                                ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id),
                                                                                ["EXPIRY_DATE"] = "GTC"
                                                                        }
                                                                        id = id+1
                                                                        --res = sendTransaction(trans)
                                                                        message(seccode.." Send : " .. res, 2)
                                                                        toLog(log,"Send: ".. res)
                                                                end
                                                                if current_value == 1 then
                                                                        message(seccode..' RED: buy->sell',1)
                                                                        toLog(log,"RED signal")
                                                                else
                                                                        message(seccode..' GREEN: sell->buy',1)
                                                                        toLog(log,"GREEN signal")
                                                                end
                                                        else
                                                                if current_value == 1 then
                                                                        message(seccode..' RED: buy->sell',1)
                                                                        toLog(log,"RED signal, but nothing to do")
                                                                else
                                                                        message(seccode..' GREEN: sell->buy',1)
                                                                        toLog(log,"GREEN signal, but nothing to do")
                                                                end
                                                        end
                                                else
                                                        if buy and not sell then toLog(log,"Nothing to do. Current state: green and buy",1) end
                                                        if sell and not buy then toLog(log,"Nothing to do. Current state: red and sell",1) end
                                                        if buy and sell then toLog(log,"Nothing to do. ERROR: green and red",1) end
                                                        if not buy and not sell then toLog(log,"Nothing to do. WARNING: nothing",1) end
                                                end
                                                prev_datetime = prev_candle.datetime
                                        end
                                end
                        end
                end
                sleep(5*1000)
        end
        toLog(log,"==========main: FINISH")
end
  • обсудить на форуме:
  • Quik Lua

Кречетов. Частное ДУ, как разводят "кроликов". Коротко по рынку.

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

         Давайте рассмотрим некоторые моменты и то как именно разводят у нас людей:

Момент первый — Законно ли частное ДУ в принципе?  — частное ДУ незаконно в РФ в принципе в соответствии с законом «О РЫНКЕ ЦЕННЫХ БУМАГ», вот выдержка из закона:  
 
Кречетов. Частное ДУ, как разводят "кроликов". Коротко по рынку.
     Проще говоря управление ценными бумагами в части их купли продажи на рынке законно, только при наличие лицензии. Осуществляется такая деятельность исключительно профессиональными участниками рынка. 

     А кто такие профессиональные участники рынка? Выдержка из всё того же закона:

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

Депозиты и облигации, риски.

Хотелось бы обсудить риски присущие для депозитов и вложения в облигации.
Риски депозитов понятны и на первый взгляд очевидны. Это банкротство банка и возможность их потерять. Про застрахованные 1.4 млн рублей все все уже знают, все, что свыше можно и не вернуть. На этом вроде все риски и заканчиваются. Или только начинаются. Следующий риск это попасть на тетрадочные вклады. И если раньше АСВ и ЦБ стояли на вашей стороне, то в последнее время не очень. Следующий не очевидный риск, но у нас легко реализуемый. А именно, ЦБ и АСВ может, со временем ввести такую практику, как вы положили деньги на депозит в банк, заведомо зная, что он в плохом состоянии и есть риск его банкротства или отзыва лицензии. Тут поле для фантазий огромное. Но в нашей стране возможно все и даже, на первый взгляд невозможное.
Облигации. Тут для частного инвестора все сложнее. Казалось бы выбери эмитента, выпуск, срок и доходность. И все. Практика показывает, что это может только начало ваших бед. Первая беда доходность которую транслирует биржа не учитывает многих нюансов. Как то комиссия биржи, брокера. Которая может легко съесть до 2% в доходности. Кроме того, биржа может доходность по разному считать. Вы можете не подать в оферту, а доходность к ней расчситана, а после оферты эмитентом может быть установлен 0% по купону. И вы год-два вообще ничего получать не будете. Далее это налогообложение. Да сейчас выпуски зарегистрированные в 2017 году и на 3 года купоны освобождаются от НДФЛ (я о корпоратах). Но норма эта начнет действовать только с 2018 года, т.е. с выплат в следующем году. Далее, многие новички делают глупую ошибку, видя в терминале доходность, вычитая из нее комиссии, все равно получается доходность выше депозита. Но опять это не так. При покупки цена и НКД составляют ваши затраты на покупку. А вот выплата купона, это отдельная песня, котрая к вашим затратам никак не относиться, у вас при выплате НКД удержат 13% НДФЛ. Например условный. Вы покупаете облигацию за 100% (1000 рублей) на вторичке, платите 30 рублей НКД. Так вот ваши траты будут 1030 рублей. НКД выплачивается 60 рублей. Вы считаете так 1000 я заплатил и 1000 я получу от погашения. А вот НКД 60-30=30. Вот с них то я НДФЛ и заплачу. Не так у вас будет убыток 1000-1030. А НДФЛ вы заплатите с 60. Дальше можете сами посчитать. Следующий риск. Многие сравнивают ОФЗ и ОФЗ для населения. Тут как говорится вход рубль выход два. Если держать до погашения то вроде все нормально. Но если ситуация на рынках изменится вы сможете их продать и возможно гораздо ниже номинала. Да у этих ОФЗ-Н есть преимущество. Так есть такое понятие собрания облигационеров. Что это за песня и с чем ее приправляют. Это когда эмитент допускает дефолт, то происходит реструктуризации и все прочее и тому подобное. Так вот собираются владельцы этого выпуска и думают, что делать.И напридумывали они все простить, уменьшить ставку до 0, или часть списать, а остальное на 30 лет погашения. И вот решение 75% владельцев, обязательны для всех остальных 25%. Крупнейшими владельцами выпуска, как правило являются банки, инвесткомпании, брокера, НПФ ну и другие. Люди которые их покупали уже не работают или к моменту погашения работать там не будут и им надо сохранить лицо здесь и сейчас. А вот мелкие владельцы будут плясать под их музыку.  Все ваши деньги растаяли. Вот ОФЗ-Н в этом отношении лучше обычного ОФЗ. Так как распределены между мелкими физ лицами которые вряд ли одобрят такую реструктуризацию. Если раньше каждый сам за себя, и у меня был опыт судебный с эмитентом один на один, и он по суду мне все выплатил, то  сейчас не факт, что я вернул бы свои деньги. Далее это суббординированные облигации. Тут риск один, при проблемах в банке вы получаете в лучшем случае его акции в худшем ваши деньги улетучиваются. Пример Траст. Далее реструктуризация обычных ОФЗ для физиков. Если кто помнит 1998 когда ОФЗ для физиков погашались в срок, понятно что курс улетел, путем перевода их в ВЭБ. То юрики попали на реновацию. 

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

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