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

по

QLua скринер стакана. Или стакан к празднику!

Всем привет, и желаю здравствовать!
Вчера один наш коллега попросил решить простенькую задачу — отображать стаканный спред в моменте, то есть (best_ask_price+best_bid_brice)/2 с помощью луа-скрипта. Вот такой был диалог:
QLua скринер стакана. Или стакан к празднику!
Чего уж проще, выдался час свободного времени решил помочь. Но походу разработки, пришли идеи сделать, что-то типа скринера стакана с дополнительной информацией, которая, возможно будет полезна для анализа.
А идеи возникли следующие: добавить для мониторинга объем всех бидов и асков, разницу (дельту) между объемами покупок и продаж. Но это можно теперь наблюдать даже на графике в Квике(не прошло и 15-ти лет). А вот следующая идея показалась мне интересной. Рассчитывать в моменте VWP (Volume Weighted Price) цену взвешенную на объем для бидов и асков по отдельности. Чтобы было понятно о чем идет речь покажу это на примере стакана в Jatotrader для RIZ0:
QLua скринер стакана. Или стакан к празднику!

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

Иностранные тикеры, торгуемые на Спб бирже

Всем привет.

Для анализа американских акций, торгуемых на Спб бирже, в finviz.com сделал выборку доступных тикеров с сайта https://investcab.ru/ru/inmarket/torg_instruments/. Сейчас их 1167.
Т.к. в finviz имеется ограничение по кол-ву тикеров для фильтра, то получилось 3 ссылки:

https://finviz.com/screener.ashx?v=111&t=A,AA,AAL,AAN,AAP,AAPL,AAXN,ABBV,ABG,ABMD,ABT,ACAD,ACH,ACIA,ACM,ACN,ADBE,ADI,ADM,ADP,ADS,ADSK,ADUS,AEE,AEIS,AERI,AES,AFL,AGCO,AGIO,AGN,AIG,AIMT,AIR,AIV,AIZ,AJG,AJRD,AKAM,ALB,ALGN,ALGT,ALK,ALL,ALLE,ALLK,ALLO,ALNY,ALRM,ALSN,ALTR,ALV,ALXN,AMAT,AMCX,AMD,AME,AMED,AMG,AMGN,AMN,AMP,AMT,AMWD,AMZN,AN,ANAB,ANDE,ANET,ANGI,ANIK,ANIP,ANSS,ANTM,AOBC,AOS,APA,APD,APEI,APH,APLE,APPF,APPN,APTV,APY,ARE,ARMK,ARNA,ARW,ARWR,ASGN,ASH,ASIX,ATGE,ATKR,ATRA,ATRI,ATRO,ATUS,ATVI,AVAV,AVB,AVGO,AVLR,AVNS,AVY,AWI,AWR,AX,AXE,AXGN,AXP,AXSM,AYI,AYX,AZO,AZPN,BA,BABA,BAC,BAH,BAND,BAX,BBBY,BBSI,BBY,BC,BCO,BCPC,BDC,BDX,BEAT,BECN,BEN,BERY,BF-B,BFAM,BFYT,BH,BHF,BIDU,BIG,BIIB,BILI,BIO,BJRI,BK,BKI,BKNG,BKR,BL,BLD,BLDR,BLK,BLKB,BLL,BLUE,BMCH,BMI,BMRN,BMY,BOOT,BPMC,BR,BRK-B,BRKR,BSX,BTI,BUD,BURL,BWA,BXP,BYND,BZUN,C,CACC,CAG,CAH,CALM,CARA,CARG,CARS,CASY,CAT,CB,CBPO,CBRE,CBRL,CCI,CCK,CCL,CDNA,CDNS,CE,CEA,CENT,CENTA,CERN,CF,CFG,CFX,CGNX,CHA,CHD,CHDN,CHE,CHEF,CHGG,CHL,CHRW,CHTR,CI,CIEN,CINF,CL,CLDT,CLF,CLGX,CLH,CLR,CLX,CMA,CMCO,CMCSA,CME,CMG,CMI,CMS,CNC,CNK,CNP,CNXN,COF,COG,COHR,COLM,COO,COP,CORR,CORT,COST,COTY,COUP,CPB,CPRI,CPRT,CPS,CR,CREE,CRI,CRL,CRM,CRMT,CROX,CRS,CRUS,CRVL,CSCO,CSGP,CSII,CSL,CSOD,CSWI,CTAS,CTB,CTL,CTLT,CTSH,CTVA,CTXS,CVCO,CVET,CVGW,CVLT,CVS,CVX,CXO,D,DAL,DAR,DBX,DD,DDOG,DDS,DE,DECK,DFS,DG,DGX,DHI,DHR,DIOD,DIS,DISCA,DISCB,DISCK,DK,DKS,DLB,DLPH,DLR,DLTH,DLTR,DLX,DNLI,DNOW,DOCU,DORM,DOV,DOW,DRI,DRQ,DVA,DVN,DXC,DXCM,DY,EA,EBAY,EBS,ECHO,ECL,ECPG,ED,EDIT,EEFT,EFX,EGHT,EGRX,EHTH,EIX,EL,ELAN,EMN,EMR,ENDP,ENSG,ENTA,ENV,EOG,EPAM,EPAY,EPC,EQIX,EQT,ERIE,ES,ESPR,ESS,ET,ETFC,ETN,ETRN,ETSY,EVBG,EVH,EW,EXAS,EXC,EXEL,EXLS,EXP,EXPD,EXPE,EXR,EYE,F,FANG,FARO,FAST,FATE,FB,FBHS,FCN,FCX,FDS,FDX,FFIV,FGEN,FICO,FIS,FISV,FITB,FIVE,FIVN,FIZZ,FL,FLIR,FLOW,FLR,FLS,FLT,FLWS,FMC,FND,FNKO,FOCS,FOE,FORM,FORR

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

Как подать налоговую декларацию для дивидендов с акций США торгуемых на бирже СПБ?

Извините, что не про коронавирус!
Как доплатить налоги с акций США биржи СПБ? И
Это очень частый вопрос на данном сайте… к сожалении очень мало информации. По умолчанию снимают 30%.0Если вы подписали форму W8-BEN, то вам надо доплатить 3%, а если не подписывали, не задекларировали, то 30%… а также есть шанс получить просьбу от налоговой заплатить ещё и 13%.
Краткая инструкция:
1. На сайте налоговой скачиваем программу декларация 2019 https://www.nalog.ru/rn77/program/5961249/:
Как подать налоговую декларацию для <a class=дивидендов с акций США торгуемых на бирже СПБ?" title="Как подать налоговую декларацию для дивидендов с акций США торгуемых на бирже СПБ?" />

2. Устанавливаем на компьютер.
3. Запускаем и приступаем к заполнению:
Как подать налоговую декларацию для дивидендов с акций США торгуемых на бирже СПБ?

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

Скрипт lua Баланс покупок/продаж

Всем привет. Переделал первоначальную версию скрипта. Исправил некоторые ошибки и немного расширил функционал. Теперь скрипт может сохранять данные в текстовый файл, который потом можно анализировать в другой программе (например exсel). Также, в отличии от первого варианта, скрипт показывает в таблице усредненную цену, по которой прошли сделки. В первом варианте отображалась цена последней сделки. И в скрипте добавлен показ накопленной дельты за все время пока скрипт работает.

TICER = "SBER";
CLASS_CODE = "TQBR";
FilePath = getScriptPath() .. "\\export.txt";--путь к файлу
save = false;--сохранять данные в файл если false нет, true да

f = nil;
stopped = false;
t_id = nil
H = -1;
M = -1;
VSELL = 0;
VBUY  = 0;
CDelta = 0;
CountTrans = 0;
PriceTrans = 0.0; 
t = "";
function OnInit()
    CountTrans = 0;
        if save then f = io.open(FilePath,"w"); end
        CreateTable();
end 

function main() 
        while not stopped do 
          if IsWindowClosed(t_id) then
         stopped = true;
      end       
          sleep(10);
        end
end

function CreateTable()
   t_id = AllocTable(); 
   AddColumn(t_id, 0, "Время", true, QTABLE_STRING_TYPE, 10);
   AddColumn(t_id, 1, "BUY", true, QTABLE_INT_TYPE, 10);
   AddColumn(t_id, 2, "SELL", true, QTABLE_INT_TYPE, 10);
   AddColumn(t_id, 3, "Дельта V", true, QTABLE_INT_TYPE, 10);   
   AddColumn(t_id, 4, "AVG Цена", true, QTABLE_DOUBLE_TYPE, 15);
   AddColumn(t_id, 5, "Накопленная Дельта", true, QTABLE_INT_TYPE, 15);
   AddColumn(t_id, 6, "Кол-во сделок", true, QTABLE_DOUBLE_TYPE, 12);   
   tab = CreateWindow(t_id);
   local NAME = tostring(getParamEx(CLASS_CODE,TICER,"LONGNAME").param_image);
   SetWindowCaption(t_id, TICER.." ("..NAME..") Баланс покупок/продаж");
   SetTableNotificationCallback(t_id, EventCallBack);
end

function Calc(alltrade)
        if bit.test(alltrade.flags, 0) then VSELL = VSELL+alltrade.qty;  --Продажа
        else VBUY  = VBUY+alltrade.qty;  end                            
        CountTrans = CountTrans+1;
        PriceTrans = PriceTrans+alltrade.price;                 
end

function OnAllTrade(alltrade)    
        if alltrade.sec_code == TICER then      
                local Rows, Col = GetTableSize(t_id);
                
                if H==-1 or H~= alltrade.datetime.hour then 
                        H = alltrade.datetime.hour;
                        M = alltrade.datetime.min;
                        t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min);
                end
                if M==alltrade.datetime.min then
                        Calc(alltrade);
                else                                    
                M=alltrade.datetime.min;        
                        InsertRow(t_id, -1);                                               
                        local Delta = VBUY-VSELL;
                        Price = PriceTrans/CountTrans;
                        SetCell(t_id, Rows, 6, tostring(CountTrans));                   
                        SetCell(t_id, Rows, 0, t);
                        SetCell(t_id, Rows, 1, tostring(VBUY));
                        SetCell(t_id, Rows, 2, tostring(VSELL));                           
                        SetCell(t_id, Rows, 3, tostring(Delta));
                        local SEC_SCALE = tostring(getParamEx(CLASS_CODE,TICER,"SEC_SCALE").param_value);
                        SEC_SCALE = string.format("%.0f",SEC_SCALE);                    
                        SetCell(t_id, Rows, 4, string.format("%."..SEC_SCALE.."f", tostring(Price)));
                   if Rows>=2 then
                           local OldPrice = tonumber(GetCell(t_id,Rows-1,4).image);
                           if OldPrice>Price then 
                                        Red(Rows,4); 
                           else 
                                        Green(Rows,4);
                           end
                           CDelta = tonumber(GetCell(t_id,Rows-1,5).image);
                           CDelta = CDelta + Delta;                        
                        else 
                          CDelta = Delta;
                        end
                        SetCell(t_id, Rows, 5, tostring(CDelta));
                    if Delta<0 then Red(Rows,3); end
                    if Delta>0 then Green(Rows,3); end
                    if CDelta<0 then Red(Rows,5); end
                    if CDelta>0 then Green(Rows,5); end                                                   
                   if save then
                                local Str = tostring(H)..";"..tostring(M)..";"..tostring(VBUY)..";"..tostring(VSELL)..";"
                                                ..tostring(Delta)..";"..tostring(Price)..";"..tostring(CDelta);
                           Str=Str.."\n";
                           SaveFile(Str);
                        end
                t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min);                        
                    VBUY = 0;VSELL = 0;
                        PriceTrans = 0;
                        CountTrans = 0;
                        Calc(alltrade);
                end
        end --if alltrade.sec_code == TICER then        
end

function SaveFile(Str)
        if f ~= nil then 
                f:write(Str);           
                f:flush();                               
        end
end

function Red(row,col)
        SetColor(t_id, row, col, RGB(255,0,0), RGB(0,0,0), RGB(255,0,0), RGB(0,0,0));
end
function Yellow(row,col)
        SetColor(t_id, row, col, RGB(240,240,0), RGB(0,0,0), RGB(240,240,0), RGB(0,0,0));
end
function Green(row,col)
        SetColor(t_id, row, col, RGB(0,200,0), RGB(0,0,0), RGB(0,200,0), RGB(0,0,0));
end


function EventCallBack(t_id, msg, par1, par2)
   if msg==QTABLE_CLOSE then
     OnStop();
   end;
end

function OnStop(s)
  if f ~= nil then f:close(); end
  if t_id ~= nil then
    DestroyTable (t_id);
  end;
  stopped = true;
end




Таблица. Ожидаемые дивиденды

Пересчитал ожидаемые дивиденды в % соотношении к текущим ценам, с разбивкой по мес.

Тут не все учтены!, только то что интересует в перспективе

Таблица. Ожидаемые дивиденды


Какие акции нужно было покупать десять лет назад, чтобы сейчас получить много денег

За последнее десятилетие индекс S&P 500 вырос в 3,5 раза, что соответствует 13,5% ежегодной доходности. Но несколько акций, которые входят в состав индекса, сильно его опередили. Я сделал подборку этих компаний, описал, чем они занимаются, и посчитал, какую доходность они показали.


Netflix

Какие акции нужно было покупать десять лет назад, чтобы сейчас получить много денег
Тикер: $NFLX

Сфера: потоковое мультимедиа

Рост: 40x

Описание: американская развлекательная компания, которая производит и поставляет фильмы и сериалы. Если вы слышали про Ведьмака или Карточный Домик, то понимаете, о чем идет речь. Netflix начинался с проката DVD, затем добавились сервисы онлайн-подписки и потокового видео. Выручка компании стала активно расти в 2013 году, тогда же пошли вверх котировки. Среднегодовая доходность акций Netflix за десять лет составила 44,68% с учетом сложных процентов.


Broadcom



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

Утренний обзор за 29.01.2020

Доброе утро!

❗️ Экономика: заказы на товары длительного пользования в США выросли на 2,4% в декабре. Считаем, что отчет был негативным для рынка из-за снижения заказов, если исключить транспорт и военную технику (+168%). В то же время, уверенность потребителей выросла до 6-месячного максимума. Сегодня заседание ФРС и пресс-конференция.

✅ Apple (AAPL US) представил сильные результаты за квартал, существенно превысив прогноз (выручка $92 млрд при консенсусе $88.4 млрд). Прогноз выручки на следующий квартал: выручка $65 млрд при консенсусе $62,3 млрд, обусловленном высоким ростом продаж на развивающихся рынках. Акции Apple обновили исторический максимум на пост-торгах.

✅ LVMH (LVMH PA) сообщил о сильных результатах за 2019 год, опередив ожидания. Органический рост +10%, рост выручки + 15%. Компания объявила об увеличении дивидендов + 13% год к году. Акции выросли, несмотря на то, что на Китай и Гонконг приходится значимая доля в росте продаж компании.



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

Вклады россиян

Посмотрел тут на выходных сборник с официальной статистической информацией от Росстата  — хотел там увидеть свежие цифры по вкладам россиян, но несмотря на то, что сборник опубликован 30.12.2019, данные по вкладам в нём актуальны на 01.01.2019.

Ну да ладно, не пропадать же добру, поэтому делюсь своими изысканиями с вами. Карты правда вставились не очень хорошо, чтоб детально разглядеть — откройте оригинал (ссылки на оригинал на файлообменнике — под каждой картой)

ДЕНЬГИ РОССИЯН
Вклады россиян Деньги, Банк, Экономика, Финансы, Статистика, Карты, Россия, Москва, Длиннопост

Итак, в банках в стране на 01.01.2019 хранится 28 триллионов 577 миллиардов рублей на счетах физлиц. Тут всё — вклады, накопительные счета, деньги на дебетовых карточках. Здесь не учтены все другие активы — недвижимость, ценные бумаги, наличность под матрасом и т.д.

Это, кстати, почти в два раза больше, чем на счетах юридических лиц!



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

Про Феликса!

Миллиардер Владимир Евтушенков подарил сыну Феликсу:
Про Феликса!


акции АФК «Система» на $38 млн!


   Ваш все тот же самый, 
            S.Hamster

Коммуникации Quik Lua с внешним миром.

    • 14 декабря 2019, 20:42
    • |
    • 3Qu
  • Еще

Мне нравится Lua. Lua хороший компактный язык на котором можно сделать индикаторы, различные вспомогательные программы, помогающие трейдеру и даже несложные торговые системы (ТС, роботы). Пожалуй единственная книга по Lua — Роберту Иерузалимски: Программирование на языке Lua. Ее можно найти в интернете.

Lua имеет также несложный C-API позволяющий связать программы Quik Lua с внешним миром через DLL и получить доступ практически ко всему, в том числе к любым математическим библиотекам обработки данных, что необходимо для сколь-нибудь сложным ТС. Однако, для этого уже необходимо знание не только Lua, но и Lua C-API, языка С/С++, а также умения писать DLL. При этом надо будет решить еще ряд проблем, которые возникнут по ходу пьесы в процессе этой деятельности. Далеко не каждый пользователь Quik и Lua может все это реализовать в обозримое время.
У Quik Lua (QLua) есть еще недостатки — все события терминала в Lua работают в потоке терминала, и получив из них данные надо как можно быстрей завершать функции обработки этих данных и освобождать поток терминала, иначе терминал просто повиснет. Единственная функция QLua работающая в собственном потоке — это main() и вся сколь-нибудь сложная обработка может находиться только в ней.
Кроме того, для Lua крайне мало библиотек, а существующие работают оч не быстро. В принципе, это и не нужно, если можно организовать связь с внешним миром через C-API. Но нам от этого легче не становится.) Короче, для написания хорошей сложной ТС нам надо выйти за пределы QLua и установить связь с внешним миром, и сделать это доступными средствами.
Сейчас наиболее продвинутым языком, включающим в себя массу библиотек обработки данных является Python. По применимости для обработки данных он, пожалуй, занимает первое место в мире, а по распространенности входит в первую пятерку. В числе библиотек — математические, статистические, машинного обучения и пр., и пр. Таких библиотек более тысячи только в Anaconda, большинство из которых устанавливается при ее инсталяции. Вы можете не использовать Anaconda и скачать Python с сайта



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

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