niedziela, 31 maja 2020

Realizacja wizji sprzed lat

W ciągu życia mamy wiele planów, marzeń, które chcielibyśmy zrealizować, i które niedokończone plączą się gdzieś w głowie. Czasami bledną i przestają nas kręcić, ale bywa, że powracają regularnie i proszą się o wypełnienie. Ten wpis jest o jednej z takich wizji.

Jako dzieciak pokochałem Gdańsk. Pochodzę z Bydgoszczy, więc nad morze nie mieliśmy specjalnie daleko i dość regularnie podróżowaliśmy a to do rodziny, a to ze szkolną wycieczką. Uwielbiałem tutejsze zabytki, zaczytywałem się powieściami marynistycznymi. Pamiętam jak z tatą oglądaliśmy Karmazynowego Pirata i Kapitana Blooda. Już w szkole średniej wiedziałem, że będę tu studiował.

Kilka lat temu wjeżdżając na Trakt św. Wojciecha usłyszałem w Radiu Gdańsk pewną nowoczesną aranżację szanty. Wróciły pirackie wspomnienia i pojawiła się wizja - chciałbym kiedyś zrobić teledysk o Gdańsku do tego utworu. Problem był jeden - kompletnie nie znałem piosenki i nie umiałem obsługiwać programów do edycji filmów. Długo skanowałem Youtube'a w poszukiwaniu tej szanty, ale jej nie znalazłem.

Aż kilka miesięcy temu przypadkowo natrafiłem na TEN utwór. Nie wiem jak i dlaczego, ale pojawił się w sugerowanych filmach (echa poszukiwań sprzed lat? :) W międzyczasie nauczyłem się edytować filmy. Postanowiłem, że na jednym z maratonów będę kręcił krótkie filmiki i złożę z nich materiał na teledysk. W zeszły piątek zrealizowałem w końcu wizję sprzed lat: odwiedziłem miejsca znane i mniej znane w Gdańsku, cyknąłem fotki i filmiki moim kalkulatorem i wypełniłem misję sprzed lat. Może efekt d..py nie urywa, ale przynajmniej czuję się spełniony :) No i kurczę, co to była za przygoda!




PS W polskich napisach w teledysku umieściłem nazwy zabytków.

wtorek, 26 maja 2020

ZAP Wyckoff Spring + analiza

Dzisiaj wrócę do spółki, którą dobieram do portfela od 2018 roku: Zakłady Azotowe Puławy (ZAP lub PULAWY).

To nie jest firma, na której przeżyjecie jazdę +400% jak na gamedevach. Typowy nudny biznes 'value': produkcja nawozów. Prawie rok w rok zysk i dywidenda. Podobnie jak na XTB widzę na tej spółce formację akumulacji, aczkolwiek we wcześniejszej fazie (jeszcze przed testowaniem wsparć w fazie C):



Obecnie nie powiększam pozycji na spółce. Raz, że waży już dość sporo, a dwa - nastawiam się na bardziej spekulacyjne walory. Niemniej dzisiejsza informacja:

Zarząd Grupy Azoty ZA Puławy rekomenduje przeznaczenie na dywidendę 104,18 mln zł, czyli 5,45 zł na akcję - podały Puławy w komunikacie.

Zachęciła mnie do zajrzenia na wykres. Jeszcze fundamenty:




Jedyne czego spółce brakuje, to zmiany narracji rynkowej.

6.5% dywidendy? Nie pogardzę :)

piątek, 22 maja 2020

XTB Wyckoff Spring

Jak pisałem ostatnio, postawiłem więcej niż zwykle na XTB.

Pierwszy konieczny warunek otworzenia pozycji jest spełniony: spółka nie jest zagrożona bankructwem, praktycznie śpi na cashu, i co ważniejsze generuje mnóstwo nowej gotówki.
I płaci dywidendy - był to istotny czynnik w latach 2018-2019, ale w 2020 stracił w Polsce na znaczeniu.

Warunek nr 2 to atrakcyjna wycena fundamentalna - po odjęciu gotówki spółka jest wyceniana poniżej wartości księgowej. Czymkolwiek ta WK dla XTB jest. Ale jak pokazują - potrafią ze swoich aktywów wyciskać solidne zyski.

Warunek 3 - AT. Wygląda na to, że fazę akumulacji mamy za sobą. I tak - wiem, że większość akcji zostało przejętych dopiero po wystrzale (zejście Enterprise Investors z 19% akcji), ale po analizie wykresu dochodzę do wniosku, że grube ręce przez kilka lat skupowały akcje spółki i w hossie czekają nas niespodzianki na miarę Mercatora.



poniedziałek, 18 maja 2020

Nowy projekt Podtwórcy

Zapraszam do wysłuchania drugiej części wywiadu, jakiego udzieliłem gamingowemu youtuberowi Vickowi, ekspertowi od gier przygodowych. Przybliżam szczegóły najnowszej gry, nad którą pracuję i plany na przyszłość.


sobota, 16 maja 2020

Odrodzenie branży finansowej

Coś dobrego wreszcie zaczyna się na polskim rynku kapitałowym. W swoim portfelu obserwuję mocne zachowanie spółek powiązanych z funduszami, usługami maklerskimi i tradingiem. Dziś do krótkiej analizy wybrałem 3 z nich.

XTB zarobił krocie na krachu marcowym i prawdopodobnie obłowił się w kwietniu na gwałtownych ruchach ropy i złota. Spółka jest market makerem na fx i cfd, zarabia korzystając z zasady, że rok w rok 80% klientów traci pieniądze. Im większa zmienność, tym większe straty graczy i wyższe zyski animatora. Obecnie po wystrzale 40% kurs pozostaje w konsolidacji i powinno jeszcze trochę pobujać, bo po rewelacyjnych wynikach każdy kupił akcje. Rynek nie lubi zabierać ze sobą zbyt wielu pasażerów.




Kiedyś kupiłem Ipopemę i długo byłem na spółce w plecy. Na osłodę dostawałem co roku dywidendy. Wygląda na to, że wreszcie trend się zmienił na wzrostowy:

I teraz dla odmiany mam nadzieję długo być na spółce do przodu.

Skarbiec Holding jeszcze w trendzie spadkowym, ale fundamenty i dywidendy są tak atrakcyjne, że nie mogłem nie kupić:






wtorek, 12 maja 2020

Długoterminowe sygnały

Gdyby nie dziady z WIG20 (i co ciekawe - amerykańskie spółki value) portfel byłby już na nowych maksach. Pytacie się mnie czasem, które spółki typuję - wtedy zazwyczaj opisuję w kilku punktach swoją metodę inwestycyjną, żeby uzasadnić dlaczego nie mogę odpowiedzieć na pytanie. Wkrótce napiszę serię artykułów z wykresami o metodzie i jej podwalinach.

Tymczasem kilka wykresów.

WIG POLAND PB:


Spółki są śmiesznie tanie. Zasługa WIG20, bo maluchy już często w hossie, ale nawet zwykłe wyrównanie historycznej średniej to potencjał na "gigantyczne" wzrosty. Nie wiem kiedy i nie wiem do jakiego poziomu, ale trzymam się swoich zasad: w takich warunkach szukam okazji do zakupu, a nie sprzedaży.

Mój ulubieniec w tym roku:



Branże posegregowane od najtańszych:


Kto pamięta lata 2003-2011? Mamy przeciwieństwo tamtych lat.

Złoto vs Srebro na tle S&P500:



Od 1982 szczyt złota względem srebra zbiega się z okolicami dołków bessy. Dlaczego dzisiaj miałoby być inaczej?


piątek, 8 maja 2020

Reminiscencje Twórcy Systemów cz. 7: Pierwsza gra, pierwszy system, pierwsza porażka

W 2003 pisanie gier jest trudniejsze niż dzisiaj. Nie ma kompleksowych game makerów czy środowisk typu Unity. Żeby napisać grę musisz stworzyć wszystko prawie od zera. SDL oferuje funkcje typu wczytaj obrazek, naklej go na powierzchnię (surface), odśwież surface ekranu. Jest obsługa zdarzeń (kliknięcia i ruchy myszą, naciśnięcie klawisza itd.), wczytanie i odegranie dźwięków - to wszystko wystarcza do stworzenia gry 2d.

Mam marzenie: zrobić grę przypominającą Fields of Glory - pierwszą najważniejszą grę, gdy dostałem własnego PC-ta. Była to strategia w rozdzielczości 320x240, w której wojska Napoleona walczyły z Anglikami i Prusakami. Powiedzmy taki poprzednik gier z serii Total War. W mojej grze naparzałyby się czerwone kurtki (Anglicy z XVIII wieku) z niebieskimi. Kojarzycie te filmy, w których linia żołnierzy z charakterystycznymi białymi pasami skrzyżowanymi na korpusie, maszeruje z muszkietami na ramieniu, dobosze przygrywają na werblach, przygrywają piszczałki. W końcu zatrzymują się, oficer wykrzykuje komendę, wycelowują muszkiety, ‘fire!’ i salwa zmiata pierwszą linię wroga. A potem odpowiada salwa z drugiej strony, czasem idą na bagnety, a czasem strzelają aż ktoś zacznie uciekać. Świetnie została pokazana taka bitwa w Patriocie z Melem Gibsonem (battle of Camden).

Przez 2-3 tygodnie rysuję pixel po pixelu w Gfx2 żołnierza w 8 kierunkach: stoi, maszeruje, nabija muszkiet, oddaje strzał. Powstają też grafiki terenu i równoległoboki, z których powstanie pole bitwy (tzw. rzut izometryczny jak w Cywilizacji 2). Oprócz rysowania dużo planuję w zeszycie, jak będę programował grę i tworzę biblioteki narzędziowe. Ponieważ chcę być “pro” w C++, używam gdzie się da ówczesne nowinki typu template’y, przeciążanie operatorów. Wydaje mi się, że im lepiej poznam tajniki języka, tym lepszy będzie projekt.

Nie będę się rozpisywał nad pracami. Liczą się twarde wnioski. Udaje mi się osiągnąć pierwszy etap, tj. pole bitwy, po którym maszeruje kolumna o zdefiniowanej liczbie żołnierzy (N x M). Idą tam gdzie się kliknie, najpierw obracają się, każdy żołnierz maszeruje na swoje miejsce w formacji i dopiero wtedy idą wszyscy razem. Wygląda to dla mnie super, ale kod jest tak skomplikowany, że nie sposób zrobić coś więcej. Obliczenia matematyczne mieszają się ze sterowaniem, zależności chodzenia w formacji z poszukiwaniem swojej pozycji w formacji. Po kilku miesiącach prac stwierdzam, że projekt mnie przerósł i na pierwszą grę muszę wybrać prostszy temat.

W moim kodzie wszystko wydaje się ważne - wiedza o strukturze przechowywania grafiki, hierarchia przesłaniania żołnierzy na polu. Mnóstwo “istotnych” danych przechowywanych w enumach i odrębnych klasach. Wydaje mi się, że tak powinno być, bo tak pokazują tutoriale do C++. Ilość powiązań jawnych i niejawnych jest nie do ogarnięcia.

W programowaniu obiektowym klasa powinna być jak czarna skrzynka: udostępniać prosty, logiczny interfejs i przyjmować jak najmniej argumentów. Jeśli tych ustawień jest zbyt dużo, to prawdopodobnie znak, że klasa obejmuje elementy z różnych poziomów abstrakcji i agreguje zależności. W takim systemie nie jesteś zazwyczaj w stanie używać obiektów klasy bez znajomości jej implementacji.

Piszę o tym, ponieważ przez lata pracowałem z systemami w firmach, które cierpiały na ten grzech. Dodawanie funkcjonalności było makabrą, ludzie kopiowali działające klasy, zmieniali nazwy zmiennych, dodawali nowe enumy w 10 różnych miejscach i jakoś działało. Od kilku kluczowych klas byli ‘eksperci’, którzy napisali je lata wcześniej i tylko oni wiedzieli jak coś do nich doklejać. Żeby rozwijać system w oparciu o te klasy należało nie tylko znać ich rozbudowane API, ale też masę niejawnych zależności typu kolejność odpalania funkcji, ograniczenia w ustawieniu obiektów, które wpadały do klasy. Jakiekolwiek niestandardowe użycie API z założenia nie mogło działać.

Wielu programistów nie wychodzi poza schemat, który opisałem przy swojej pierwszej grze. Biegle operują w C++, są w stanie dość szybko dotrzeć do celu i napisać kod, który działa - pierwszy etap systemu wygląda jak powinien. Podobnie jak ja wtedy chcą na siłę używać nowinki oferowane przez język. Niestety rozwijanie takiego systemu jest syzyfową pracą. W odrębnym artykule opiszę, jak rozwiązać ten problem.

PS Na obrazku grafiki wykonane po pixelach w Gfx2, jakie zrobiłem na przełomie 1999/2000 do gry o Kampanii Wrześniowej, którą robiliśmy z Kamilem. Podobnie powstawali żołnierze do mojej pierwszej gry.


wtorek, 5 maja 2020

Krach skasowany, co dalej?

Krach na szerokim rynku skasowany:


Znacznie gorzej sprawuje się WIG20, czyli tam gdzie karty rozdaje zagranica. Dołki z 2016 i luka marcowa na razie nie do przejścia:



Co dalej?

W krótkim terminie nic nie wiadomo. Jedni mówią UP, drudzy DOWN, trzeci FLAT. Jedni, drudzy lub trzeci trafią.

Ale w dłuższym wyrysowują się pewne zależności.

Bessa na SWIG80 od stycznia 2018 (w rzeczywistości spadki były od wiosny 2017), wtedy gdy startowała globalna bessa, obecny ruch mieści się w średnim cyklu bessy:

Tutaj porównanie długotrwałej bessy na WIG20USD 2014-2016 z bessą SWIG80 2017-2020:



I na koniec: rentowność obligacji 10-letnich vs dywidendy z WIG:



20-stokrotny spadek w kilkanaście lat. To nam pokazuje jak iluzoryczne są ceny. Wszystko przeżywa okresy, gdy wydaje się wiele warte i okresy gdy postrzegane jest jak bezwartościowe: gotówka, nieruchomości, złoto, ziemia, udziały w biznesie, ropa, żywność, papierosy, spółki dywidendowe czy wzrostowe.

sobota, 2 maja 2020

SPX: bessy w super cyklu hossy

Od 1942 możemy wyznaczyć 2 super cykle hossy na S&P500: 1942-1968 i 1974-2000 oraz kilkunastoletnie rynki niedźwiedzia 1968-1982, 2000-2013 (okresy się nakładają, bo początek hossy liczymy od dołka bessy, a koniec bessy od definitywnego wybicia kilkunastoletniego szczytu):



Bessy w trakcie super cyklu hossy znacząco różnią się od okresów super bessy. O ile w bessie pokoleniowej 1968-1982 bessy trwały po kilkanaście miesięcy, w czasie hossy 1982-2000 były krótkie i bardzo dynamiczne. Przeanalizujmy 4 z nich: 1987, 1990, 1994 i 1998:

val spx1987hi = TickerEntry(1987, 8, 26, 0)
val spx1990hi = TickerEntry(1990, 7, 16, 0)
val spx1994hi = TickerEntry(1994, 2, 2, 0)
val spx1998hi = TickerEntry(1998, 7, 20, 0)

i porównajmy z obecną bessą 2020:


i uśredniona ścieżka:



w dłuższym terminie:


Jeżeli przyjmiemy, że w 2009 zaczął się kolejny cykl super hossy, potwierdzony definitywnym wybiciem szczytów 2000 i 2007 w 2013, to obecna bessa nie odbiega znacząco od średniej. Ba, widzimy nawet, że skala wzrostów była najniższa z badanych okresów, co powinniśmy raczej wiązać z rekordowo niską inflacją w tym okresie.

Czy to oznacza, że wkrótce (po sell in may?) wrócą wzrosty? Nie wiem. Nie fiksuję się jednak na wielomiesięczną bessę, którą widzi tylu komentatorów.

piątek, 1 maja 2020

Reminiscencje Twórcy Systemów cz. 6: Programming Linux Games

Jestem wielkim fanem bardzo prostego modelu, który idealnie oddaje jak się czujemy i postępujemy w zetknięciu z jakąś nową dziedziną. Na początku nie wiemy czego nie wiemy, dlatego jesteśmy w fazie “nieświadomej niekompetencji”. Tutaj zachowujemy się różnie: czasem wydaje się, że wystarczy tylko sprawdzić tu, przestawić tam i się zrobi, proste jak drut. A czasem odwrotnie: nie wiadomo z której strony ugryźć, lepiej nawet się nie zabierać. No, ale zaczynamy coś dłubać, oglądać tutoriale i monolit zaczyna rozpadać się na podproblemy. Dociera do nas jak wiele jest niewiadomych - to znak, że jesteśmy w fazie 2: “świadomej niekompetencji”. Odpowiada to lokalnemu dołkowi na krzywej uczenia.



Jeśli jesteśmy wytrwali lub ktoś nam po prostu każe, rozwiązujemy kolejne podproblemy, rozpraszamy chmurę niepewności i przesuwamy się do fazy “świadomej kompetencji”. Wiemy co trzeba zrobić, żeby osiągać konkretne cele, ale musimy się napracować. Ostatnia, 4 faza: “nieświadoma kompetencja” to autopilot. Ktoś przychodzi do ciebie z problemem, rzucasz przez ramię “spróbuj Emacsem przez Sendmail” i dziwisz się, że dalej stoi w przejściu, zamiast brać się do roboty. Na każdy powszechnie występujący problem masz błyskawiczne rozwiązanie, na problemy złożone masz schemat rozwiązania. Ponieważ nie musisz tych patternów wymyślać, wydaje ci się, że są naturalne. Nie pamiętasz godzin spędzonych na łączeniu odpowiednich faktów, które doprowadziły do stanu kompetencji.

Pierwsze dwa lata studiów to z grubsza życie studenckie, nauka żeby zdać, praktyka programowania i SC-CS, czyli StarCraft i Counter Strike. Dorabiam pisaniem elektronikom i telekomunistom programów na zaliczenie. Możecie oceniać to negatywnie, ale wtedy tak było; chłopacy byli przerażeni, bardzo chcieli zdać, nie widzieli innej drogi. Brałem niskie stawki i długo tłumaczyłem program, nim wypuściłem delikwenta. Byłem w tym tłumaczeniu całkiem dobry, na gotowym programie uczyli się więcej niż na zajęciach. A po wyjściu klienta zaraz z chłopakami na piwko do Melmaka, klubu studenckiego w naszym akademiku, żeby przepić wypłatę.

Na trzecim roku CS i Melmak zaczęły mi się nudzić. Dojrzałem wreszcie do Linuxa. Jako młody informatyk byłem na wznoszącej ku fazie świadomej kompetencji. Linux był powszechnie wykorzystywany na uczelni i oferował bogactwo darmowych narzędzi. Przez kilka miesięcy rozpracowuję Red Hata, zmieniam środowisko Borland C++ na  KDevelopa.

Wtedy Leny pożycza mi książkę: Programming Linux Games. Poradnik jak krok po kroku podłączać multimedia, wykorzystując przenośną bibliotekę SDL. Objawienie. Mam już wszystko co niezbędne, żeby pisać gry! Środowisko pracy, język programowania i bibliotekę do obsługi multimediów.

Link do wszystkich części: https://podtworca.blogspot.com/2020/04/reminiscencje-tworcy-systemow.html