Избранное трейдера Чёрный Трейдер
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
Хочу поднять тему налогового вычета. Буду говорить на примере своего старенького брокерского счёта.
Ситуация: Несколько лет назад я получил убыток на Московской бирже, то есть зафиксировал его. В следующие годы я получаю прибыли, но с них я плачу (точнее, мой брокер) налог в 13%. Совершенно справедливо воспользоваться правом на возврат этих налогов – учесть убыток.
Вообще, я «играя» с позициями в портфеле всегда старался минимизировать налогооблагаемую базу в каждый год. Если наклёвывается хорошая прибыль, то я пере-открывал убыточные сделки (без них не бывало))). Таким образом, налоговая база чуть уменьшалась. 13% берут не с доходности портфеля на 31 декабря, а с сальдо по всем операциям - итог по закрытым сделкам в год.
Самостоятельно вернуть налог не получилось, хотя мой брокер прислал со своей стороны всё что нужно (бесплатно). Как только осознал, сколько затрачу времени на это дело — энтузиазм сошёл на нет. Другое дело, что всё больше компаний, которые предоставляют услуги по сопровождению этого процесса: делают Декларацию и дают инструменты для дистанционной отправки 3-НДФЛ в налоговую.
Инвестиционные стратегии на основе фундаментальных индикаторов, на первый взгляд, являются простым способом отбора акций. Во-первых, они относительно легки и интуитивно понятны в расчётах, во-вторых, они доказали свою эффективность, о чем можно прочитать в исследованиях, приведенных в книгах Stocks for the Long Run и What Works on Wall Street.
Такие стратегии называются активными. Их задача — получать доходность в среднем выше рынка (например, индекса ММВБ) с помощью выбора структуры портфеля (отбора бумаг), отличных от фондовых индексов. В противоположность этому пассивные стратегии предполагают инвестирование в индексные фонды. Но как и пассивные стратегии, активные также требуют широкой диверсификации и периодическую ребалансировку.
Пассивные стратегии на долгосрочном инвестиционном горизонте, как правило, обыгрывают активные, однако часто несут в себе и более высокие риски. Волатильность многих активных стратегий может быть ниже рыночной при большей краткосрочной/среднесрочной доходности.
Суть метода Вайкоффа состоит в том, что крупный игрок не может просто купить или продать по рынку столько актива, сколько ему нужно, поэтому он использует для набора позиций узкие зоны консолидации, а потом начинает толкать рынок в нужную ему сторону, где он скинет набранный объем.
В момент, когда крупный игрок набирает позицию, на рынке наблюдается фаза баланса.
Ну а тренд – это дисбаланс.
Соответственно, если понять и принять такую структуру рынка, то несложно определить – цена всегда ходит в широком боковике, двигаясь от баланса к балансу.
В связи с срочной необходимостью покупки недвижимости понадобилась наличка. Решил вывести часть средств с торгового счета. Сам вывод беспроблемный, а вот с получением кэша — засада! Ссылаясь на антиотмывочный закон во многих банках месячный лимит до к600, свыше в некоторых, попадаешь в список нежелательных клиентов с предложением закрыть у них счет. У меня счета/карты в 5-ти, втб предлагает 10% за снятие свыше 600, без комиссии тайм-аут 40 (СОРОК) дней. Заявления в ЦБ, ФСФМ и тд долго, деньги нужны срочно.
Просьба посоветовать, кто сталкивался. Рейтинг не интересует, просьба вывести на главную, заранее всех благодарю.
Среди них тоже есть эмитенты, которые нарастили ЧП по итогам 2016 года
Лидер списка ТГК-14 (подконтрольна РЖД) обеспечивает тепловой энергией потребителей на территории Забайкальского края и Республики Бурятия. Компании принадлежит семь ТЭЦ, два энергетических комплекса
Рост ЧП компании по РСБУ прошел на 3800%.При этом выручка в 2016 году увеличилась всего на 6,5%
Дивиденды компания выплачивала в последний раз в 2006 году.
На втором месте Интер РАО, отразившая такую высокую ЧП, полученную в результате переоценки активов.
На третьем месте таблицы Алроса. ЧП увеличилась в 7 раз, выручка увеличилась на 35%.
Обращаю ваше внимание, что ряд компаний из таблицы выплатили промежуточные дивиденды в 2016 году.
Так, Алроса Нюрба выплатила по итогам 9 месяцев 2016 года 17500 рублей и Трансконтейнер выплатил 347,6 рублей за 6 месяцев 2016 года.
На прошедшей неделе были и другие позитивные новости. Например, значительно увеличилась вероятность получения 10% ДД в акциях Алроса этим летом.
Да, мы понимаем, что в связи с улучшением ситуации в российской экономике, некоторые компании с госучастием, попытаются пролоббировать себе преференцию в виде уменьшения размера чистой прибыли, направляемой на дивиденды с 50%, как настаивает Минфин, на меньший процент, типа 35% или даже 25%. Но ряд факторов говорит о том, что Алроса всё же направит на дивиденды 50% ЧП.
Давайте рассмотрим цепочку этих факторов.
17.02.2017 прошла такая новость: (Bloomberg) — Правительство России обсуждает смену главы ПАО «АК Алроса», рассказали три источника, знакомых с ситуацией.
Вопрос о смене руководителя крупнейшей алмазодобывающей компании мира обсуждается, директива, предписывающая наблюдательному совету проголосовать за отставку президента Алросы Андрея Жаркова, еще не подписана, сообщили источники, попросившие об анонимности из-за непубличного характера информации, не уточнив, когда может произойти отставка. Мнение Жаркова по ряду стратегических вопросов не всегда совпадало с позицией членов правительства, сообщили два источника.
Жарков проголосовал против сокращения инвестиций и капитальных затрат на 2017 год на одном из последних заседаний в декабре. На этом совещании совет директоров утвердил сокращение долгосрочных финансовых вложений на 3 миллиарда рублей в текущем году, капитальных расходов — на 1,4 миллиарда рублей, а также снижение расходов на выплату заработной платы.
Прочитав эту новость, я сказала себе: «ОГО! Даже президента могут отстранить от должности, если он не согласен высвободить деньги на выплату больших дивидендов!» И решила ещё раз просмотреть цепочку дивидендных факторов в Алросе.И так, СД Алросы проголосовал в декабре
Первое: за снижение себестоимости в компании (рост ЧП)
Второе: за уменьшение расходов, источником для которых служит, в том числе и ЧП Алросы. Это значит, СД уже намечает, что будут увеличены другие расходы из ЧП эмитента. Появилась осторожная надежда на 50% ЧП, которую направит компания на дивиденды.
Подтверждением этому служит интервью министра имущественных и земельных отношений Якутии Евгении Григорьевой. Цитирую:
министр имущественных и земельных отношений Якутии Евгения Григорьева сообщила, что в 2017 году ожидается прирост размера дивидендов, поскольку прибыль алмазной монополии планируется в достаточно большом объеме. Как заявляло руководство АЛРОСА, на дивиденды будет направлено до 50% прибыли.
Кроме того, во время летней 2016 года продажи 10,9% акций Алросы,
чтобы подогреть интерес иностранных инвесторов, чиновники объявили о намерении сохранить уровень дивидендов госкомпании на уровне 50% чистой прибыли. А ведь пакет Алросы снова включен в приватизационный список на 2017-2019 годы. Значит обещание будут соблюдать.
А это значит, что ДД Алросы в 2017 году может превысить 10%.
И ещё про дивиденды. Школа Московской биржи в преддверии нового дивидендного сезона и отсечек под дивиденды, которые уже скоро начнутся( например в прошлом году первая отсечка ЛСР была 18.04.16) предложила мне провести двухдневный вебинар Дивидендный трейдинг. Базовый курс. red-circule.com/courses/203
В прошлый раз, когда проводили аналогичный вебинар, ШМБ разрешила увеличить время, выделенное на проведение вебинара, для того, чтобы ответить на все вопросы участников. Думаю, что если вопросов будет много, и в этот раз ШМБ пойдёт навстречу.