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

по

Дивидендные "аристократы" ММВБ #2

    • 29 августа 2017, 22:18
    • |
    • COREz
  • Еще
Заметил интересную особенность. Дивидендный портфель из наиболее интересных дивитикеров весьма стойко переносит общее падение индекса. Сегодня в моменте когда индекс был -0,7% портфель показывал +0,4%. По всей видимости на рынке уже довольно много крупных дивидендных инвесторов, которые не спешат в моменте расставаться с хорошими бумагами.

Представленный ниже вариант портфеля по прогнозам принесёт чистыми не менее 7-8% годовых в виде дивидендов и судя по всему имеет хорошие перспективы курсового роста. Кроме того в планах докупаться на поступающие лавинообразно купоны с муниципальных облигаций и время от времени проводить ребалансировку портфеля по стоимости позиций.

Дивидендные "аристократы" ММВБ #2

Портфель хорошо диверсифицирован по секторам экономики, содержит ровно 40 тикеров, каждый из которых берёт на себя риск в размере 2,5% от общей стоимости. Примерно в таком виде он отправляется в бессрочное плавание по российскому фондовому рынку. На заметке ещё порядка пяти сильных эмитентов, но там пока всё грустно в плане доходности.

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

Таблица "Портфель" в 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

Дивидендные "аристократы" ММВБ

    • 16 августа 2017, 19:31
    • |
    • COREz
  • Еще
Начал потихоньку формировать дивидендный портфель на средства, которые не жалко потерять в России если произойдёт системный кризис. Итак первые три бумаги: Газпром, Мосбиржа и Русгидро. Среднегодовая чистая доходность по ним находится сейчас в районе 7%, что в общем-то сравнимо со ставками в топовых банках страны.

Дивидендные "аристократы" ММВБ

Почему именно эти бумаги?

Газпром, потому что монополист и очень дешёвый. Мне просто нравится иметь в портфеле кусочек «Национального достояния». :)

Мосбиржа — это новая «облигация» на рынке акций после Лукойла и ВСМПО. Бизнес любой биржи завязан на клиентских комиссиях. Трудно себе представить, чтобы резко упало количество желающих «припарковать» свои деньги в ценных бумагах. Богатые богатели, богатеют и будут богатеть. Правило «5Б» :) Кроме того сейчас пенсионные фонды активно стали «пылесосить» рынок ценных бумаг, так что «жирных» клиентов у Мосбиржи будет в достатке.

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

Дивиденды2017.Прощайте и здравствуйте снова:))

Большой дивидендный сезон 2017  закончился. Прошли все отсечки и до 14.08.2017 будут выплачены все утвержденные акционерами компаний дивиденды.

Конечно, полноводная дивидендная река обмелеет, но не иссякнет совсем. СД эмитентов начали обьявлять промежуточные дивиденды за 6 месяцев 2017 года.

Совет директоров "Северстали" рекомендовал внеочередному общему собранию акционеров компании утвердить дивиденды по результатам первого полугодия 2017 года в размере 22 рублей 28 копеек на одну акцию.

Предложенная дата закрытия реестра акционеров для получения дивидендов — 26 сентября 2017 года.

Внеочередное собрание акционеров «Северстали», на котором будет рассмотрен вопрос о дивидендах, назначено на 15 сентября 2017 года, закрытие реестра — 21 августа 2017 года.

Совет директоров Магнит рекомендовал дивиденды по итогам 1 п/г 2017 г. в размере 115,51 руб/ао 
ВОСА — 31 августа 
Закрытие реестра для ВОСА — 7 августа 
Закрытие реестра под дивиденды — 15 сентября 2017 года



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

Почему лонг надо торговать на споте, а шорт на фьючерсе

Сразу оговорюсь, что утверждение, вынесенное в заголовок, не касается внутридневных операций, речь идет о позициях от нескольких дней до нескольких недель.  Итак перед вами график подневной доходности простейшей синтетической облигации «лонг  Сбербанк — шорт ближайший фьючерс на Сбербанк» с учетом расходов на перевкладывания из фьючерса во фьючерс за день до экспирации, дивидентов и средств ГО и вариационной маржи, необходимых для поддержания шортовой позиции.

Почему лонг надо торговать на споте, а шорт на фьючерсе

Он означает разницу в доходности (к номиналу) между «купил и держи» акцию сбера (с учетом дивидендов) и «купил и держи» ближний фьючерс на сбер или, если перевернуть формулу разницу в доходности (опять же к номиналу) «продал и жди» ближний фьючерс на сбер и «продал и жди» акцию сбера без учета платы за шорты(!). В принципе в этом графике для «купил и держи» нет ничего удивительного, так как обладатель такой позиции во фьючерсе может легко компенсировать эту разницу, разместив средства, свободные от ГО и вармаржи под безрисковую ставку (кроме «скачка» на графике под стрелкой, о котором ниже).  А что делать держателю шорта на споте? У него ведь нет свободных средств, да и еще к тому же эта отрицательная для него разница совсем не учитывает комиссию брокера за шорты. Получается «двойной удар» по счету.

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

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

СМС для QUIK. Бесплатная программка для трейдера

Написал небольшой помощник для трейдера. Он посылает СМС, когда цена достигнет определенного уровня.  У некоторых брокеров такая фича встроена в QUIK. Но у многих ее и нет. Так что думаю, что будет полезно. Скачать можно тут  https://yadi.sk/d/yp1NKqV_3JszLC




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

Как вы учили иностранный (английский) язык?

Всем привет. У меня есть знания английского на уровне университета, но их не хватает для того читать (смотреть) контент на английском. Хочу поднять знания до уровня Intermediate. Стоит ли идти на курсы? Понятно, что многое зависит от желания, но, все же, дадут ли занятия с преподавателем результат. Или лучше вместо того, чтобы платить за курсы год — съездить на месяц за границу.

Совета, как выучить язык за неделю, я не жду. Рад буду услышать о том, что Вам помогло в изучении.
Всем спасибо.

Акции, которые не боятся кризисов: США

Подборка американских компаний, которым нипочем рыночные катаклизмы. Они все так же устойчиво «делают своё дело», платя дивиденды и повышая котировки.

Акции, которые не боятся кризисов: США

Ключевой мерой независимости цены акции от общеэкономического климата является коэффициент Beta (β). Он показывает, насколько цена акции коррелирует с ценами большинства акций на рынке или с общерыночными фондовыми индексами типа S&P 500 или Russell 3000.

Рисковые инвесторы, которые умеют предсказывать поведение рынка, предпочитают волатильные акции с большими β>1. Но для большинства не слишком профессиональных инвесторов удобнее активы с β~0, так как из них легко собрать так называемый бета-нейтральный портфель, способный давать стабильный постоянный прирост порядка 10% годовых, не реагируя на кризисы.

В этом обзоре мы расскажем об американских акциях с малыми β. Причём таких, которые не просто независимы от рынка, но и показывают стабильный многолетний рост котировок. Мы расскажем об акциях, которые сильнее всего подорожали за 10 лет при соблюдении следующих дополнительных условий.



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

Практика направленной торговли опционами на акции. Часть 3. Управление позицией

Это третья часть моего описания направленной торговли опционами, посвященная управлению позицией, и рекомендуемая к прочтению после предыдущей части, а также первой части.

 

Лучшее управление позицией – это заключать только прибыльные сделки, и не делать убыточных. Я серьезно. И так и пытаюсь действовать.

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

Но это все же не управление позицией, а закрытие сделок. Вопрос в том, как подвести все наши опционы к прибыли.

 

Управление позицией – это то, чего не бывает c акциями. Что ты будешь делать, если ты купил акцию и играешь на её повышение, а цена упала? Закрывать или усредняться, больше ничего. Если усредняться, так это по сути не управление позицией, а открытие новой сделки по тому же тикеру, с новой ценой. Ведь на риски и профит по ранее открытой позиции ты никак не повлиял, вместо этого ты открыл новую сделку по тому же тикеру. И еще непонятно, хорошо это или плохо. А важно, что это действие потребовало добавления капитала, т.е. начиная с определенного момента падения и оно станет недоступным, с точки зрения риск-менеджмента. Итого ты фактически можешь только закрыть позицию – признать убыток, и ничего больше. Или тебе надо для работы с акциями делать что-то фьючем или опционами, в общем опять же приходим к опционам.



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

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