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

по

Реальная доходность индекса RTS или сколько зарабатывают местные Баффеты

Биржа ММВБ не так давно стала публиковать индексы полной доходности учитывая дивиденды и налогообложение http://www.moex.com/ru/index/totalreturn.aspx.

Решил посчитать сколько же реально зарабатывают местные Баффеты, для этого я взял индекс RTSTRR (RTS Net Total Return (Resident)) Для начала посмотрим как вообще выглядит индекс RTSTRR относительно индекса RTS

Реальная доходность индекса RTS или сколько зарабатывают местные Баффеты


К сожалению TradingView показывает данные только начиная с 2017 года.

Я написал скрипт который скачивает данные по ссылке http://www.moex.com/ru/index/totalreturn.aspx и в R продолжил анализ ( скрипт ниже ). Вот как выглядят индексы начиная с 2009 года.

 Реальная доходность индекса RTS или сколько зарабатывают местные Баффеты

Как видно, с течением

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

Достали посты о крахе 29г

Еженедельно читаю посты, как же было все плохо в 29г США. Изучается поведение правительства, мнение экспертов, поведение рынка и игроков.
А у самих под носом было событие покруче, чем крах в США в 29г.
Да, конечно в 1997г российский фондовый рынок стоил дешевле, РТС был в два раза, чем сейчас, но ММВБ уже заработала (правда едва-едва).
Но почему, почему никто не изучает этот КРАХ? В 1998г страну постиг полный коллапс. А фондовый рынок апокалипсис.
Конечно, раз главный враг это Америка, а российская история должна выглядеть патриотично, то как то не прилично обсуждать собственное событие.
Но тем не менее, статистически оно очень интересно и достойно всестороннего изучения. Хотя бы потому, что индекс РТС не так уж далеко ушел от максимумов 1997г, что роднит его с НАСДАК, который только год назад преодолел максимум 2000г. Но про НАСДАК все гуру смартлаба кричат, что это «фуфло, пузырь и скоро все обнулится». «Там же P/E какое!» «виртуальность»… и т.п.
Вопрос к знатокам, чего же наша «материальность» обвалилась в ад без санкций, без Путина, без Крыма и при гораздо большей любви иностранцев? И что есть сейчас такого, что ГАРАНТИРУЕТ повторение сценария 1998г? 

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

Код робота на 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

Регулярное инвестирование - счет 6,700,000 рублей. Новые рекорды.

Всех приветствую! 

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

Что у меня?

1) Прошло почти 11 месяцев как я начал инвестировать в ФР. 6 сентября будет год.

2) За это время я проинвестировал 6,700,000 рублей, таким образом, за 1,5 прошедших месяца мне удалось направить 247,000 рублей на счет.

3) Сам счет сегодня ровняется 6,730,000 рублей увеличившись за 1,5 месяца более чем на 1 млн рублей благодаря росту рынку. Я в нуле. Рынок минус 5% за это время. 

4) ОПД (см мой профиль что это значит) сегодня составляет 89,000 рублей, что на 10 тыс больше чем 1,5 месяца назад, т.е. мой пассивный доход от возможных будущих дивидендов составляет 89,000 рублей в месяц. Цель на этот год прежняя — довести его до

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

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

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

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

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

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

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

Не надо бояться экспоненты!

    • 15 июля 2017, 14:39
    • |
    • SenSoR
  • Еще
«Нифига себе бай на таком выносе, когда уже по экспоненте пошли...»

Не надо бояться экспоненты!



jc_trader
С другой стороны есть два аргумента против этого очевидного:
1) Если подавляющее большинство видит что на экспоненте надо шортить, то как быть с правилом о том что большинство всегда проигрывает?
2) Известно что при сильном росте (или снижении) угадать локальный экстремум невозможно. Из этого следует что если бы при открытии мной лонга, уровень открытия позиции стал бы локальным экстремумом, это было бы очень редкое событие. А значит все шансы что это не будет локальным экстремумом и цена еще продолжит рост.

Источник: http://jc-trader.livejournal.com/1482956.html

P.S. От себя хочу добавить, что и некоторые мои системы следуют такому же принципу и неплохо себя чувствуют!))

Профитов Вам, друзья!)




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

продолжение поста про зож

Ок, по просьбе трудящихся продолжаем нашу передачу на крипторадио про зож.  smart-lab.ru/blog/409478.php
всё основано на собственном опыте и в результате анализа десятков книг по теме.


1. Позитивчик.
Как-то не хочется заниматься миссионерством, но вообщем нужно мыслить позитивно. Как это делать это вопрос даже не на миллион баксов. Давно был такой фильм «секрет» — о силе наших намерений и позитива, возможно кому-то он покажется сладкой приторной фигнёй, ок, мне он тоже таким в своё время показался. Позитив не приведёт к исполнению всех желаний но в целом он улучшит качество жизни и здоровье значительно.

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

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

Спад солнечной активности — предвестник грядущих потрясений?

На ZeroHedge вышла интересная (дискуссионная) статья о текущей динамике солнечной активности и ее возможной взаимосвязи с фондовым рынком США.

Свежий отчет NASA предупреждает о наблюдающемся спаде солнечной активности. В статье рассказывается об 11 летнем цикле активности Солнца, в котором эта величина изменяется от максимальных до минимальных значений. В настоящее время, солнечная активность приближается к своему минимуму — состояние в котором число наблюдаемых солнечных пятен остается относительно низким. «Снижение активности не означает, что Солнце начинает светить менее ярко, просто число  солнечных пятен и вспышек уменьшается. Меняется форма этой активности. Магнитное поле Солнца «открывается» и позволяет частицам солнечной материи покидать его в виде быстрого солнечного ветра. Солнечный ветер взаимодействует с магнитным полем Земли вызывая его возмущение. Это оказывает влияние на космические и наземные объекты инфраструктуры, а также здоровье людей.



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

Фазы тренда | QUIK | Индикатор

1. Теория
Фазы рынка/тренда. Метод Вайкоффа.


Фазы тренда | QUIK | Индикатор

Суть метода Вайкоффа состоит в том, что крупный игрок не может просто купить или продать по рынку столько актива, сколько ему нужно, поэтому он использует для набора позиций узкие зоны консолидации, а потом начинает толкать рынок в нужную ему сторону, где он скинет набранный объем.
В момент, когда крупный игрок набирает позицию, на рынке наблюдается 
фаза баланса

Ну а тренд – это дисбаланс.

Соответственно, если понять и принять такую структуру рынка, то несложно определить – цена всегда ходит в широком боковике, двигаясь от баланса к балансу.



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

Ты всегда будешь собой недоволен.

Сделка закрытая с прибылью, могла бы принести больше, откройся ты большим объёмом.

Если бы ты не торопился и держал её дольше, смог бы забрать «всё движение».

При соблюдении рисков, убыток мог быть не так критичен.

 Цена развернулась в нужную сторону, после того как сработал стоп. Ты знал, что открылся правильно…

Ты давно бы состоялся, кабы держал «сделки в плюс» с таким же упорством как пересиживал убыточные.

Ты всегда будешь собой недоволен.


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