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

по

Как объяснить Ребенку про кредит,долг,рабский труд, добавленную стоимость, агрегаты М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 когда ОФЗ для физиков погашались в срок, понятно что курс улетел, путем перевода их в ВЭБ. То юрики попали на реновацию. 

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

И еще разок про ИИС(финал)

Воскресенье заняться нечем идет дождь интересного почитать мало решил написать чем закончилась эпопея с возвратом части ндфл от внесенных средств на ИИС в дополнение к моей предыдущей записи http://smart-lab.ru/my/ayakss/blog/all/ если кому поможет буду рад.
Информации по конкретному заполнению документов практически не найти так что вот пара ссылок как пошагово заполнить самому бумаги и отправить их в налоговую http://invest-schet.ru/3-ndfl-dlya-iis-kak-zapolnit/   invest-schet.ru/kak-podat-dokumenty-po-iis-v-nalogovuyu/
Сразу хочу обратить внимание на то что в личном кабинете лично у меня заполнение произошло не корректно а я не проверил лист 2 декларации а сумма к возврату там не проставилась поэтому по прошествии трех месяцев отведенных на камералку пришел ответ что ничего мне не положено при личном посещении налоговой там  ничего конкретного опять не ответили сослались на то что у меня есть задолженность по налогам вместе со мной еще раз через личный кабине заполнили но причитающийся возврат так и не появился поохали и так и сказали либо из-за задолженности либо вообще данный возврат еще не производится. 

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

Бесплатный инструмент для статистики и анализа сделок

Всем, привет.

   Решил поделиться интересным, на мой взгляд, и бесплатным сервисом по ведению статистики и аналитике сделок. Я давно искал удобный инструмент для ведения журнала сделок и последующей их аналитике. Этот момент я считаю очень важным в обучении трейдингу и выработке своей торговой системы. Смотрел много разных продуктов: PirateTrade, MaxProfit, Marketstat и др. но большинство из них платные (причём стоят приличных денег), а функционал не всегда устраивает. На днях наткнулся на бесплатный онлайн сервис с очень продвинутым функционалом и даже частично русифицированным :)

Называется - FX Blue Live.
Бесплатный инструмент для статистики и анализа сделок
    Сервис абсолютно бесплатный, только необходимо зарегистрироваться. Данные можно загружать из разных терминалов в т.ч. MT5, которым я пользуюсь для торговли на ФОРТС. Загрузка данных очень удобна (буквально в два клика) с автоматической синхронизацией через специальный эксперт для MT5. Огромный функционал с всевозможными фильтрам, графиками и аналитикой. Сделано все довольно качественно, есть подробная документация и интерфейс вполне дружелюбный. Сервис, как я понял, больше заточен по форексников, но с фьючами ФОРТС тоже отлично справляется. В целом мне очень понравилось, причем он даст фору многим платным продуктам.

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

Дивидендный робот

    • 01 июня 2017, 18:34
    • |
    • Albus
  • Еще
Написал робота, который читает Смарт-Лаб :)
Он заходит на страничку с дивидендами:
smart-lab.ru/dividends/
берёт тикер и дату среза реестра (Т+2), и если сегодня акция последний день торгуется с дивидендами, пишет в КВИКе:
Дивидендный робот
Первая цифра: дивиденд в рублях, вторая цифра — див.доходность в процентах. (Без налога)
В день, когда гэп произошёл, он напишет, что сегодня гэп по такой-то акции.
Самую сложную часть робота написал Николай Камынин (программист), за что ему большое спасибо. Моя часть работы была совсем простой.
Чтобы увидеть эти сообщения, надо открыть окошко сообщений в КВИКе.
Делается это так:
Дивидендный робот

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

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