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

по

QUIK, LUA, Робастность и прочее...

Зачитался, я тут на днях про робастную регрессию, и очень мне захотелось «пощупать» этого зверя хоть в каком нибудь виде на графике в Квике.

Выбрал наипростейшую — "Оценочная функция Тейла – Сена"
Эта оценочная функция может быть эффективно вычислена и она нечувствительна к выбросам. Она может быть существенно более точна, чем неробастный метод наименьших квадратов для несимметричных и гетероскедастичных данных и хорошо конкурирует с неробастным методом наименьших квадратов даже для нормально распределенных данных в терминах статистической мощности.
Метод признан «наиболее популярной непараметрической техникой оценки линейного тренда»
QUIK, LUA, Робастность и прочее...

Сказано — сделано.

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

Простейший скрипт - покупка актива в указанное время

    • 02 февраля 2017, 00:35
    • |
    • pmus
  • Еще

Простейший скрипт - покупка актива в указанное время

Продолжаю рассказывать о простейших скриптах. Если вы читали предыдущий пост, то без проблем разберетесь и в этом коде.

На прошлой неделе мне задали такой вопрос:

Т.е. простой смертный берет питон пишет код. Типа там если сегодня среда 10-00, то купить 1 акцию. Прикрепляет блок, данные идут, условие срабатывает, покупка, лог… и т.п.


Спрашивали — отвечаю.



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

Журнал истории сделок и открытых позиций

    • 16 января 2017, 23:52
    • |
    • nicolas
  • Еще

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

https://github.com/9159340/TradeHistory

главный файл — TradeHistory.lua

Ниже — описание из документации.

Таблица открытых позиций.

Внешний вид

 Журнал истории сделок и открытых позиций

Колонки

Account – код брокерского счета

Comment – комментарий из сделки.

secCode – код инструмента

classCode – код класса

tradeNumber – номер сделки, используется только в таблице закрытых позиций

 

Перечисленные выше колонки – это разрезы учета сделок. Подробнее о работе с комментариями смотрите в разделе «Возможности».

 

lot – размер лота

dateOpen – дата открытия позиции (самой первой сделки)

timeOpen – время открытия позиции (самой первой сделки)



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

Список бумаг, которые транслирует ваш QUIK.

    • 22 декабря 2016, 20:27
    • |
    • XXM
  • Еще

Готовый пример для акций, класс — TQBR.
Список всех классов выводится на вторую строку лог-файла.

-- seclist_csv.lua, © smart-lab.ru/profile/XXM/
-- список бумаг, транслируемые QUIK-ом

local ver = '0.91'      --      22.12.2016
local scriptPath = getScriptPath()
local Terminal_Version=getInfoParam('VERSION')
local logFile = scriptPath..'\\'..'seclist.csv'
local file = io.open(logFile, "w")
assert(file, "Ошибка открытия "..logFile)

function string.split(str, sep)
        local fields = {}
        str:gsub(string.format("([^%s]+)", sep), function(f_c) fields[#fields + 1] = f_c end)
        return fields
end

function write_log(str)
        file:write(str .. "\n")
end

function Main()
        local local_datetime = os.time(os.date("*t"))
        local dtd = os.date("%d.%m.%Y %H:%M",local_datetime)
        local mes = 'Start seclist_csv '..ver..', QUIK '..Terminal_Version..', '..dtd
        message(mes);
        file:write(mes .. "\n")
        class_list = getClassesList()
        mes = 'class_list =  '..class_list
        message(mes); write_log(mes);
        local class_listT = {}
        class_listT = string.split(class_list, ',')
        for i = 1, #class_listT do
                local fline = class_listT[i]
                if fline == 'TQBR' then
                        -- для примера - только акции!
                        local classInfo = {}
                        classInfo = getClassInfo(fline)
                        -- 3.2.2 getClassInfo
                        -- Функция предназначена для получения информации о классе.
                        local sec_list = getClassSecurities(classInfo.code)
                        local sec_listTable = {}
                        sec_listTable = string.split(sec_list, ',')
                        for i = 1, #sec_listTable do
                                local classCode = classInfo.code
                                local secCode = sec_listTable[i]
                                local securityInfo = getSecurityInfo(classCode, secCode)
                                local name = securityInfo.name
                                local step = securityInfo.min_price_step
                                local secInfo = classInfo.name..';'..classCode..';'..name..';'..secCode..';'..step
                                write_log(secInfo);
                        end
                end
        end
        local mes = 'Готово!'
        message(mes); write_log(mes);
        file:flush()
        file:close()
end

Main()

-- seclist_csv.lua
На выходе получил список из 292 ценных бумаг.
Здесь: moex.com/a3503 — 310. Не смотрел, почему такая разница.

Самые недооцененные из ликвидных акций на ММВБ.

На данный момент в рынке практически все ликвидные акции торгуются с премией к реальным активам баланса. Но есть бумаги, которые имеют дисконт к реальным Чисты активам баланса.  В основном это энергетический сектор, некогда очень сильно перепроданный на своих огромных инвестпрограммах и генерирующий из-за них убытки. 
Одними из самых ликвидных акций сектора являются ФСК ЕЭС (Магистральные сети). Магистральные сети более прибыльные чем региональные.  Если у МРСК Центре Чистая прибыль за год порядка 1,6 млрд.р, то у ФСК она в 40 раз выше… :) 
ФСК ЕЭС имеет НОМИНАЛ 50к.,  Чистые активы баланса более 55к. на акцию. и при этом торгуется в рынке по 19-19,5к.! — в 3 раза дешевле реальных показателей! 
Компания с очень хорошими показателями, наращивающая уже второй год подряд Чистую прибыль и выплачивает достаточно хорошие дивиденды акционерам торгуется в рынке по цене небольшого свечного заводика в предбанкротном состоянии (ниже НОМИНАЛА в 2,5 раза)! Номинал акций — это стоимость активов на момент создания предприятия на 1 акцию. А ФСК только за последние 3 года вложила в инвестпрограмму (увеличение мощностей, сетей) больше всей рыночной капитализации компании. Данная программа идет с 2007г. 

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

Энел Россия и ИнтерРАО,сделка состоится?

В портфеле есть Энел Россия, средняя цена 0,8130 и ИнтерРАО 2,3415 средняя
Сейчас Энел стоит 0,90, в раздумьях увеличения доли на бумагу
Цель по бумаге 1,10, по времени середина декабря!
ИнтерРАО более долгосрочный взгляд с целью 5 рублей/бумага
Энел Россия и ИнтерРАО,сделка состоится?



Тезисы:

«По данным СМИ Интер РАО приступила к оценке станций Энел Россия, речь в основном идет о Рефтинской ГРЭС, ориентировочная цена которой может составить порядка 15-30 млрд. рублей. На ее долю приходится почти половина всей выработки электроэнергии компании Энел Россия. Данная сделка позитивна для обоих участников, Интер РАО купит качественный актив не переплачивая с уже завершенной инвест программой, только на топливе компания сможет сэкономить порядка 3 млрд. рублей. Деньги на покупку есть от продажи Иркутскэнерго за 70 млрд. рублей, на данной новости акции компании могут вырасти до 4 рублей.

Сделка может состоятся в середине декабря и скорее всего пройдет по нижней границе, вся компания Энел Россия может стоить порядка 40-75 млрд рублей»
Прочитать полностью 
iis24.ru/enel-kratkosrochnii-vzgljad-na-vozmognosti/


Индикатор Горизонтальных объемов | LUA QUIK

Индикатор работает в рамках ограничений/возможностей QLUA и простоты использования, поэтому не обессудьте.

Индикатор Горизонтальных объемов | LUA QUIK



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

Как эффективно наказать продавца

По мотивам Мегафон: месть трейдера.
Сразу оговорюсь — история не моя, взято отсюда.
Думаю многим пригодится.
Как эффективно наказать продавца и получить приятные денежные бонусы за плохой товар.
Как эффективно наказать продавца

Расскажу о типичной ситуации, в которой оказывались многие. Товарищем был приобретен игровой ноутбук за 48 тыс. рублей. Товарищ очень ждал этой покупки, копил сумму и радовался, когда приволок его домой. Поиграв на нем пару дней, в ноутбуке отвалился вай-фай и блютуз. И здесь начинается мой рассказ.

 Мы начали с претензии покупателя продавцу. Отмечу, что это известный ритейлер М.Видео.

 Претензия – это форма выражения своих требований продавцу, изготовителю или импортеру приобретенного товара. Она пишется обязательно в письменной форме. Часто, в случае поломки товара, люди идут в магазин вместе с товаром и пытаются решить этот вопрос на месте.



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

Всем привет! Индикатор для QUIK - нештатный, нашару

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

Всем привет! Индикатор для QUIK - нештатный, нашару

Индикатор Fractal_Chennal, рисует уровни по «фракталам» с задаваемым периодом. В отличии от штатного  «Fractals» дожидается окончательного формирования формации. Я его использовал в качестве трейлинг-стопа в некоторых программах. Отдает два значения скриптам.
Код:

Settings={
Name = "Fractal_Chennal",
period=5,
line={
{
Name = "Level_High",
Type =TYPE_LINE,-- = LINE --линии  = DASH -- тире  = POINT -- точки
Width = 1,
Color = RGB(0,255, 0)--green
},
{
Name = "Level_Low",
Type =TYPE_LINE,
Width = 1,
Color = RGB(255,0,0)--root
}}}

idx_prosl=0

function Init()
return 2
end

function OnCalculate(idx)
if idx==1 then
P = math.floor(Settings.period/2)*2+1
message("Код бумаги: "..getDataSourceInfo().sec_code.." ; период индикатора: "..P,1)
t_H,t_L={},{}
end
if idx~=nil and idx>P then
if idx_prosl~=idx then
local l=idx-P
for l=l,idx-1 do
t_H[l]=H(l)
t_L[l]=L(l)
end
if t_H[#t_H-(P-1)/2]==math.max(unpack(t_H,#t_H-P+1,#t_H)) then
H_ind_value=t_H[#t_H-(P-1)/2]
end
if t_L[#t_L-(P-1)/2]==math.min(unpack(t_L,#t_L-P+1,#t_L)) then
L_ind_value=t_L[#t_L-(P-1)/2]
end
end
else
H_ind_value=nil
L_ind_value=nil
end
idx_prosl=idx
return H_ind_value, L_ind_value
end
Как пользоваться:

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

Система Татарина. Часть 2.

4. Контртренд.
Работает для 30 наиболее ликвидных бумаг.
Точка входа ищется только в первые 2 часа торгов.
Не  использовать, если по акции вышла новость, вызвавшая сильное движение цены (до недели тому назад) .
Вход только на свои, без плечей.
Направление позиции лонг/шорт.
При прочих равных, выбирается более «быстрая» бумага.
Желательно, чтобы бумага опережала рынок, или шла в против рынка.
Ищем бумагу, которая в первые 2 часа работы выросла на 2,5-3%. Рост отсчитывается от последней сделки вчерашнего дня, результаты послеторговой сессии не учитывается.
Вход против движения на 50% портфеля.
По-возможности ищется плотность котировок в стакане и заявка размещается перед ней (± 10 копеек).
Откуп позиции — 0,5% от точки входа.
Если после входа цена не откатывает и не продолжает движение, т.е. консолидируется, то выход через 30 минут.

Если рост продолжается до 3,5-4%, вход на оставшиеся 50% портфеля.
Стоп устанавливается на усмотрение трейдера — 4,3-4,5% роста бумаги.
При доливке позиции, средняя цена получается в районе 3—3,5% роста.
Цель устанавливается на 0,5% ниже средней цены позиции.
Есть выход по времени — макс. 30 минут после доливки.



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

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