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

по

Как купить акции дешево?Стоимостный подход в инвестициях.

Как понять, какие компании стоит покупать, а какие нет? Что делать, если купленные вами акции выросли: продавать или подождать еще? Как посчитать дорого или дешево торгуется та или иная компания? На все эти вопросы помогает ответить стоимостный подход в инвестициях. Именно о нем мы сегодня поговорим.

Кому удобнее, есть видео-формат:



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

QLua скринер в 10 строк кода. Или "за базар отвечаю".

Всем привет!
Никогда не давайте обещаний которые не можете выполнить. Во-первых — это портит карму. Во-вторых, за сказанное нужно отвечать. В далеких (не очень) 90-х, если человек не держал слова, к нему приезжали «санитары» с электроприборами, типа дрель, паяльник, утюг — все перечислять не буду, чтобы не пугать читателя, т.к. пост многие найдут полезным не только для торговли, но и для написания собственного кода. Так вот, пообещал я человеку, дело было так:
QLua скринер в 10 строк кода. Или "за базар отвечаю".
Мой родной язык, помимо русского, Common Lisp. С недавних пор породнился с Питоном. А тут луа, да еще с Квиком вперемешку. Не фиг было обещания давать. Больше времени потратил на изучение структур данных луа и особенностей QLua. Сам код был написан за пару часов, как увидите ниже — чё там писать-то...
Как я обещал — пользователь Смартлаба Weddy получает код бесплатно, как и остальные участники тусовки. Ну а я, в качестве вознаграждения получаю приобретенный опыт. Проверял сегодня — работает с любым Квиком (6, 7, 8). Конечно дополнительных «наворотов» я не делал, как в идеале желал Weddy, но это уже детали.

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

Что новенького в Tradingview

Почитал что нового релизят на терминале Tradingview и удивлися! Каждый день выходят какие-то обновы, а я каждый день мучаюсь ФИЗИЧЕСКИ при использовании мобильного приложения:(
Что новенького в Tradingview
Ранее, я уже писал, что мне невдомёк, как сделать так, чтобы приложение НАКОНЕЦ осознало, что я не хочу смотреть  графиков, и как-то запомнило 1 график и ВСЕГДА показывало мне ОДИН график в мобильном устройстве, а не ШЕСТЬ. Кроме того, я напомню, что кнопка перехода с 6 чартов на 1 в мобиле запрятана в задницу, что отковырять ее крайне неудобно, при этом в мобиле есть 200 кнопок в зоне видимости, которые я никогда не использовал.

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

Более востребованная вещь — можно создавать стратегии и ставить оповещения на них, которые будут приходить в телефон, если стратегия выдала как-то сигнал. Удобно, особенно если не хочешь сидеть за монитором целый день в ожидании наступления каких-то условий.

терминал Tradingview

Интересная среднесрочная стратегия "Рыбалка"

    • 23 апреля 2020, 16:43
    • |
    • ZizZz
  • Еще

Покупаем 20 ликвидных акций, которые по нашему субъективному мнению будут расти в перспективе нескольких ближайших недель.

Каждый день в конце торговой сессии удаляем из списка акции, которые показали убыточные дни подряд с общим значением, допустим -0.5% и ниже.

Например, с начала покупки бумага показала вчера первый минус на уровне -0.3 и сегодня на уровне -0.4, в сумме -0.7, что меньше -0.5, значит сегодня её продаём.

Или бумага сегодня первый раз с начала «рыбалки» показала убыток -0.6, значит тоже продаём.

Полученные средства в этот же день в равных долях распределяем по оставшимся бумагам в портфеле.

Продолжаем подобное действие до того дня, когда придётся продать последнюю бумагу из списка, которая аккумулировала в себе все средства

Считаем прибыль/убыток и снова закидываем «невод».

Стратегия простая и в то же время эффективная.

В портфеле всегда только самые «сильные» в моменте бумаги, из которых выжимается весь потенциал среднесрочного движения.

Если попадаем на дивидендную отсечку Т-2, то бумагу естественно придётся продать по установленному правилу, но позже получим дивиденды примерно равные уровню падения.

Можно поиграться с параметрами, например 30 бумаг и дневной убыток больше «рыночного шума», допустим -1% и ниже.

Начало покупок можно выбирать по дневным свечам Хейкен Аши на индексе ММВБ, которые очень точно показывают зарождающиеся тренды.

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

Интересная среднесрочная стратегия "Рыбалка"

Торгуйте красиво, торгуйте успешно!


Скрипт 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




Аэрофлот стою у трапа самолета

Приветствую всех
Аэрофлот в зоне разворота цены
Аэрофлот стою у трапа самолета
Аэрофлот стою у трапа самолета

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

По системе от Firetrade продолжение часть 2( ИЛИ ПАЛЮ ГРААЛЬ) БЕЗВОЗМЕЗДНО

Приветствую всех..
Сегодня праздник 8 марта, на работе все в штатном режиме..
Продолжим...
Начало..
smart-lab.ru/blog/599919.php
Золотое сечение и упрощенная версия  правило третей..
По системе от Firetrade продолжение часть 2( ИЛИ ПАЛЮ ГРААЛЬ) БЕЗВОЗМЕЗДНО
По системе от Firetrade продолжение часть 2( ИЛИ ПАЛЮ ГРААЛЬ) БЕЗВОЗМЕЗДНО

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

Торговый план и премаркет заявки на 25.02.2020г. Инвестиционный портфель "МагнатЪ" - дивидендные акции 2020 на долгосрок.

Друзья, привет!
Пока выходные, решил продумать формат публикации моего ежедневного торгового плана на покупку дивидендных акций в инвестиционный портфель. 
Таблица, на мой взгляд, наиболее оптимальная форма для размещения торговой информации.
В приведенной таблице указаны акции, которые уже куплены в портфель, их доля в портфеле на начало дня, а также цена заявки, по которой я готов покупать (докупать) акцию на указанную дату.
Зеленым фоном выделены акции, доли которых в портфеле составляют менее 2,7%. Указанные бумаги являются приоритетными для докупки в портфель. Это делается для того, чтобы обеспечить диверсификацию портфеля в части равномерного распределения стоимости бумаг в портфеле.
А именно, если на данный момент в моем портфеле присутствует 37 эмитентов, следовательно, доля в портфеле на одного эмитента должна быть 2,7%. (Портфель,100% / 37 эмитентов = 2,7% на одного эмитента).

 Торговый план и премаркет заявки на 25.02.2020г. Инвестиционный портфель "МагнатЪ" - дивидендные акции 2020 на долгосрок.

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

Результаты портфельного инвестирования. 01 июня 2019г — 07 февраля 2020г

Результаты портфельного инвестирования. 01 июня 2019г — 07 февраля 2020г
Результаты портфельного инвестирования. 01 июня 2019г — 07 февраля 2020г
Все портфели — виртуальные.
smart-lab.ru/q/portfolio/Speculator2016/order_by_added_dt/asc/

Портфели созданы 01 июня 2019г (по ценам закрытия 31 мая 2019г) (и позднее, указано отдельно) для слежения за поведением акций эмитентов, имеющих значительную долю экспортной выручки, и для сравнения с акциями прочих эмитентов.

Доходность портфелей указана с момента их создания и без учёта выплаченных дивидендов. (кроме портфеля ММВБ индекс бенчмарк с дивами (FXRL+SBMX), в цене компонентов которого дивиденды уже учтены)


Дивиденды не учитываются изза того, что ещё не закончена разработка раздела Смартлаба «Портфель»



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

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