petek, 12. julij 2019

Slab začetek cikla - spremembe

Včeraj sem zaključil 9 tradov 5. cikla 20 tradov in rezultati so porazni. Dogaja se točno to, kar sem predvidel že po zaključku 4. cikla:

"Ali je zdaj končno čas, da konkretno povečam rizik in poskusim začeti delati tudi neto profit? Mislim, da ne. Razlog za to pa je serija zadnjih tradov. Namreč, tja do 14 trada v prejšnjem ciklu se je vse nekako dogajalo po planu. Imel sem redne winnerje in vmes loserje, med katerimi jih je bila večina precej pod -1R.

Potem pa je iznenada prišlo do preklopa, v katerem sem nanizal kar 9 zaporednih loserjev, ki so bili skoraj vsi velikosti -1R. Vse skupaj me zelo spominja na 2. cikel, v katerem sem imel le 4 winnerje od 20. Le da se je tokrat očitno serija lossov začela že proti koncu 4. cikla in se nadaljuje v 5."


Torej, serija zame nadpovprečnih -1R lossov dejansko se nadaljuje. Spisek mojih zadnjih 16 tradov zdaj izgleda takole:


Torej, 15 lossov izmed 16 tradov! Winner SPWR je bil ravno dovolj velik, da me je na kratko prepričal, da se bo trend spet obrnil navzgor, vendar je temu takoj sledila serija še petih polnih izgub.

Če sem po slabi seriji konec 4. cikla zastrigel z ušesi, je zdaj definitivno čas za rdeči alarm. Moje izkušnje s takimi serijami izgub je, da se ne končajo kar tako. En dokaz za to je že na mojem R performance grafu z začetka leta, kjer se je sredi ostrega padca trend začasno obrnil navzgor (podobno kor po SPWR tradu), potem pa mirno nadaljeval v negativo:


Skratka, spet dobivam pred oči tisto znano "boom-and-bust" krivuljo, ki me zasleduje praktično že odkar tradam. In tokrat bi rad "bust" cikel prekinil, še preden se res zgodi. Seveda pod pogojem, da pod nekimi pravili normalno tradam naprej brez umetnih prekinitev iz golega strahu.

Tekom teh ciklov sem iz cikla v cikel dodajal razna pravila. Recimo, prvi večji drawdown na zgornjem grafu se mi je zgodil v 2. ciklu, kjer sem imel 16 lossov izmed 20 tradov. Tam mi je postalo jasno, da imam očitno potencial za "bust". V naslednjih ciklih sem zato dodajal pravila za omejevanje števila tradov:
  1. Vzeti le trade s potrjenim statističnim edgem.
  2. Upoštevati edge tudi na marketu.
  3. Omejiti število odprtih tradov na lossu in daily loss.
Vse te stvari sem uporabljal v tekočem 5. ciklu, pa je rezultat še vedno porazen. To mi pove, da moja pravila očitno niso dovolj dobra za vse situacije in da jih moram nekako spremeniti. Nobenega smisla nima, da čakam na zaključek 5. cikla in R krivuljo res vrnem nazaj na 0. In hkrati sem dobil še en dodaten dokaz, da ne glede na vso statistiko, vsake toliko trg še vedno sproducira stanje, ko metoda povsem pogori na celi črti. In v teh obdobjih so možni res veliki padci, ki se jim je treba na vsak način izogniti. Drugače povedano, vsaka metoda, ki temelji na statistiki, se bo praviloma večino časa res pokoravala tej statistiki. Ker pa se trgi ne pokoravajo nobenim matematičnim pravilom, pa pride trenutek, ko statistika povsem razpade. In tu mi ne more pomagati nič drugega, kot neka risk management pravila, ki so povsem neodvisna od metode.

Moj plan za zaključek 5. cikla, v katerem imam še 11 tradov, je sledeč:

  1. Tokrat bom na prvo mesto postavil risk management, za katerega se je izkazalo se je, da sem še vedno preveč popustljiv. Žal je področje risk managementa tisto, kjer še najtežje definiram karkoli logičnega ali statistično verodostojnega. Pretekle izkušnje me učijo, da preveliko kompliciranje nima nobenega smisla, bolj pomembno se je zavedati, kaj želim doseči in nato izpeljati nekaj otročje preprostih pravil, da je ta cilj dosežen. Odločil sem se, da bom pragmatičen in si bom enostavno postavil naslednja pravila. Tokrat brez dolgih razlag, ker jih nimam, rad bi se le zaščitil pred preveč izgubami v kratkem času.
    • Vsak dan lahko zaključim z največ 2R odprtega ali realiziranega lossa. V praksi to pomeni, da lahko odprem največ dve poziciji na dan. Izjema bi bila, če bi mi zgodaj v dnevu ena nova pozicija takoj realizirala profit, nato bi lahko odprl novo pozicijo. Vendar mislim, da se to ne bo zgodilo.
    • Največji odprt nerealiziran loss je 3R, v kateremkoli trenutku. V navezi s prejšnjim pravilom to pomeni, da lahko tudi "naslednji dan" še odprem kakšno pozicijo.
    • Največji tedenski realiziran loss je 4R. To je trda limita brez neke potrjene statistične podlage. Enostavno vidim, da če v enem tednu pridelam tam okoli 4R lossa, da to ponavadi začne slabo serijo.
  2. Zaostril bom pravila za potencialne trade. Opažam, da se mi na buy listi dnevno brez težav prikaže tudi pet ali več setupov. To je enostavno preveč. Vzeti tako ali tako ne morem vseh in te težave se najbolj elegantno rešim tako, da zaostrim kriterije tako, da res tradam samo statistično najboljše setupe. Že samo s tem bi se morale potencialne serije lossov drastično zmanjšati. Ne bo se pa lahko tega držati, kajti večina tradov je dejansko nekje vmes, po nekem kriteruju top, po drugem ne. Top-top setupi pa so tako redki, da ne morem tradati samo teh že zaradi prenizke frekvence.
  3. Pravila za market edge načeloma ostanejo, vendar si hkrati z zaostrovanjem pravil za setupe hkrati puščam odprto možnost, da mogoče na teh top setupih sam trg ni tako bistven. Tole do nadaljnjega ostane odprto.
Kot sem rekel, imam do konca 5. cikla še 11 tradov. Nič še ni izgubljeno, še vedno lahko prekinem bust cycle in si mogoče R performance za cikel celo spravim v pozitivo. Glede na videno pa mislim, da prihajamo v obdobje, ko bodo priložnosti res zelo redke in mogoče bo trajalo dolgo časa, da zaključim cikel.

ponedeljek, 01. julij 2019

Konec 4. cikla

Prejšnji teden sem zaključil svoj letošnji četrti cikel 20 tradov. Kot vedno, sledi kratek pregled. Rezultati so sledeči:


Na vseh postavkah se je pokazal napredek glede na prejšnje povprečje in posledično dober rezultat za celoten cikel, cirka +14R kumulativnega profita z +0.7R povprečnega profita na trade. Takole zdaj izgleda moj R equity chart za zadnje 4 cikle:


Uspel sem se torej pobrati iz slabega 3. cikla in celo narediti new high. Vendar, kot vsakič znova povem, še vedno tradam z zelo majhnim rizikom, kar pomeni, da mi velik del izgub predstavljajo že same provizije. Procentualen equity chart zato izgleda precej drugače:


Ali je zdaj končno čas, da konkretno povečam rizik in poskusim začeti delati tudi neto profit? Mislim, da ne. Razlog za to pa je serija zadnjih tradov. Namreč, tja do 14 trada v prejšnjem ciklu se je vse nekako dogajalo po planu. Imel sem redne winnerje in vmes loserje, med katerimi jih je bila večina precej pod -1R.

Potem pa je iznenada prišlo do preklopa, v katerem sem nanizal kar 9 zaporednih loserjev, ki so bili skoraj vsi velikosti -1R. Vse skupaj me zelo spominja na 2. cikel, v katerem sem imel le 4 winnerje od 20. Le da se je tokrat očitno serija lossov začela že proti koncu 4. cikla in se nadaljuje v 5.

Plan za naslednji cikel je zato nekaj, kar sem načel že na koncu 3. cikla, pa nisem imel konkretnih rešitev:

  1. Vsekakor nadaljevati očitno uspešen sistem kupovanja določenih setupov in sistematičnega pobiranja dobičkov in rezanja lossov. Tu zaenkrat ne vidim potrebe po večjih spremembah, čeprav seveda zagotovo ni vse optimalno. Vendar, moje glavne težave so trenutno drugje.
  2. Opravil sem statistične analize, ki so mi pokazale, v kakšnem okolju na trgu imam edge in v kakšnem ne. Cilj za naslednji cikel je, da se striktno držim samo okolij, kjer imam potrjen, statistično verodostojen edge. Kaj konkretno to je, bo tema za katerega od prihodnjih postov.
  3. Drugi cilj pa je vezan na točko (3) iz moje prejšnje analize (screenshot spodaj). Počasi mi postaja jasno, da ne glede na vse statistike, očitno še vedno pridejo obdobja, ko je možna, recimo temu "popolna katastrofa". To se zgodi takrat, ko imam na watch listi veliko število setupov, trg pa je v stanju, ki mi ne preprečuje kupovanja. To je lahko samo en dan, ali pa zaporedje dni, ko se mi na buy listi prikaže recimo 3-5 setupov. Vsak dan. To je stanje, kjer se lahko, če želim dosledno slediti svoji metodiki in vzeti vse trade brez izbiranja, spravim v velike težave, če eventuelno večina ali vsi ti tradi enostavno failajo. Skratka, na koncu koncev moram imeti nek sistem omejevanja teh serijskih izgub, ki je neodvisen od tehničnih parametrov. Za naslednji cikel imam cilj, da izvajam tak sistem, z namenom preprečiti najhujše. In pri tem bom tokrat bolj konkreten, pravila so sledeča:
    • V nobenem trenutku si ne pustim imeti več kot 4R odprte izgube.
    • Največje število tradov, odprtih v enem dnevu je 3 (max daily loss = 3R).
    • Če večina tradov, odprtih v dnevu ali dveh faila, zmanjšam max open loss na 3R in max daily loss na 2R.
Kaj pričakujem, da bom dosegel s temi tremi pravili? Prva omejitev odprte izgube na max 4R enostavno pomeni, da če imam že 4 odprte trade, ki so vse še na polnem lossu, ne morem odpirati novih pozicij. Pika.

Drugo pravilo je finesa, s katero bi rad dosegel dvoje. Prvič, kot sem že zgoraj povedal, se pojavijo dnevi z velikim številom setupov. Rad bi preprečil, da bi se v enem samem dnevu zaletel v max open loss, in tako vsaj malo zminimiziral potencialno izgubo, če pride do lossa na vseh tradih. In drugič, enostavno bi si rad pustil še kakšen trade za naslednji dan. Če se izkaže, da je "rally for real", bi tradi, odprti v prejšnjem dnevu, morali dobiti follow through, hkrati pa bi tudi novi tradi morali dobro delovati. Skratka, želim si pustiti malo manevrirnega prostora, da lahko odprem vsaj še kakšen trade. 

Tretje pravilo pa je potrebno iz enega preprostega razloga. Lahko se zgodi, da mi failajo vsi štirje odprti tradi. Po osnovnih pravilih bi to pomenilo, da zdaj lahko spet takoj odprem še štiri nove trade. Ker pa sem očitno sredi drawdowna in očitno slabega stanja na trgu, je smotrno postati bolj strikten in še omejiti nova kupovanja, da preprečim morebiten nadaljnji drawdown. 

Zaenkrat stojim za temi pravili in bom konec 5. cikla ocenil, kako dobro delujejo.




petek, 07. junij 2019

Nova verzija makexml in program za statistično analizo

Na strani Orodja sem updatal link na novo verzijo programa makexml za pretvorbo tradov v xml datoteko, ki jo je možno uvoziti v eDavke. Novosti (iz Readme.txt):

Verzija junij 2019:

  • Prejšnji problem je imel bug, da je narobe posortiral trade na istem tickerju, če je število tradov (transaction id) šlo preko 9. Problem je zdaj odpravljen.
  • Na več primerih so se pokazale težave s procesiranjem input fila s končnico ".csv". Po novem je default input file "input.txt", priporočam pa uporabo ".txt" končnice za file z drugačnim imenom.
  • Kljub velikemu vložku v izračun wash salea (Loss Valid) zadeva še vedno kaže znake nedelovanja. Raje jo izključim, kot pa da daje napačne rezultate, zato avtomatičen izračun polja <F10> ni več podprt in ga je potrebno ročno vnesti v excel (glej primere). Preostanek delnic (Shares Left, polje <F8>) program še vedno izračunava sam.

Druga novost pa je program za statistično analizo tradov, ki sem ga delal zadnjih nekaj tednov. Navodila in cel kup primerov je v dokumentu Navodila.docx, ki je del Test.zip fila, tukaj naj samo na kratko napštejem, kaj program omogoča, če bi bilo komu interesantno:

Test.exe je program za preprosto statistično analizo tradov. Njegovi osnovni funkciji sta:


  1. Analiza na osnovi nekih predefiniranih filtrov. Trade, katerega parametri ne ustrezajo filtrom, se ne vključi v analizo.
  2. Analiza targetov. Program omogoča, da vnesemo obsega za dva targeta, target1 in target2, nato pa prekalkulira vse kombinacije in izpiše rezultate.
Filtre je možno vnesti ročno (le en set filtrov) ali pa jih uvozimo preko zunanjega fila, kjer je število filtrov neomejeno, program pa preračuna rezultat za vsak posamezen filter in prikaže rezultat, posortiran po performancu, na tak način:


Druga opcija pa je test targetov, pri čemer vnesemo obseg za prvi in drugi target, program pa nato na osnovi podatkov iz spiska tradov izračuna, kateri target se najbolje obnese. Spet so rezultati posortirani po performancu:


Vsi rezultati se tudi izvozijo v zunanji file, prav tako pa program izvozi rezultat za 100 naključnih iteracij preko celotnega spiska tradov, da lahko izrišemo kumulativna grafa PL in PL/trade na tak način:



S pomočjo takih grafov lažje dobimo vtis o dejanski konsistenci sistema, neodvisno od zaporedja tradov.

Kot rečeno, natančna navodila s primeri so v Navodila.docx, tukaj sem želel le na hitro predstaviti program, če bi koga stvar zanimala. Za dodatne informacije sem na voljo na juretrader@gmail.com.