Pracovní skupina poskytovaná tradery pro tradery. Naleznete v ní odpovědi na své technické otázky týkající se programů Amibroker, Python, InteractiveBrokers TWS a TradeStation Global.
Úterý 19.3.
Do deníku doplníme záznamy o včerejších obchodech.
Kontrola výstupů
U žádné z otevřených pozic nedošlo k zasažení stoplosu.
Do TWS odešleme nové denní LOC příkazy pro případné ukončení všech otevřených pozic u systémů SMR.
Monday buyer - MOB
Případné nové pozice otevíráme pouze v pondělí.
SMR USA Short - SMRUSA_S
Odešleme nové vstupní příkazy.
SMR USA Long - SMRUSA_L
Odešleme nové vstupní příkazy.
SMR CA Long - SMRCA_L
Dnes bez signálu.
Já to zadávám přes basket. Bude asi ještě něco v nastavení, protože teď mi to sice vstupuje před otvíračkou, ale aspoň za nastavenou cenu. To je změna po nastavení TWS dle vašeho vzoru. Zkusím nahrát video, až bude trochu času.
Pondělí 18.3.
Do deníku doplníme záznamy o včerejších obchodech.
Součástí dnešní přípravy je krátké video popisující zapojení automatizace. Dotazy k prezentovaným postupům můžete opět pokládat do vlákna dotazů k výuce.
Kontrola výstupů
U žádné z otevřených pozic nedošlo k zasažení stoplosu.
Do TWS odešleme nové denní LOC příkazy pro případné ukončení všech otevřených pozic u systémů SMR.
Monday buyer - MOB
Máme otevřený maximální počet povolených pozic.
SMR USA Short - SMRUSA_S
Odešleme nové vstupní příkazy.
SMR USA Long - SMRUSA_L
Odešleme nové vstupní příkazy.
SMR CA Long - SMRCA_L
Odešleme nové vstupní příkazy.
Super, tak to se budu těšit. Úplně perfektní by bylo, kdyby jste se i dotkli tématu toho, jak si tyto výsledky automaticky zobrazovat v nějakém dashboardu na webu, přístupném odkudkoliv na světě (statický i dynamický web, přístup přes přihlašovací údaje, možnost překlikávat zobrazení jen vybrané strategie či všechny, za různá časová období, vůči benchmarku..).. 😉 To by byla krása.. 🙂 Moc děkuji.
Update k aktuální výkonnosti strategií v dashoardu:
V březnu nejvíce ožil MicroBreakout, kde byly v poslední dny pěkné zisky. Několik držených titulů také vyplácelo poměrně vysoké dividendy. V tomto případě poklesne cenový graf, ovšem na druhou stranu inkasujeme dividendu na účet (sledovaná výkonnost dividendy zohledňuje).
Na SMO NDX je zajímavé sledovat, jak strategie v březnu příliš neztrácí přesto, že Nasdaq 100 klesl. Je to proto, že strategie využívá sizing podle volatility a v březnu drží podstatně nižší pozice než v únoru (viz výuka rotační strategie, kde jsem toto vysvětloval a bylo možné vše testovat v poskytnutém testeru).
Swingové mean reversion modely zisky odevzdávaly. V rámci živého obchodování, kdy filtruji earnings mám nicméně v březnu zatím MR3000 i Finwin ziskové.
Na základě rozhovoru s několika z vás se chci ještě podrobněji vrátit ke způsobu, jak vytvářím obchodní systémy. Konkrétně intradenní breakouty, na kterých nyní hodně pracuji a jejichž vývoji se věnuje i řada z vás.
Jsem přesvědčen, že pro stavbu profitabilního systému musíme v trhu identifikovat nejprve určitý princip, skrz který budeme následně vydělávat. Pokud půjde princip měřit samostatně tím lépe. V budoucnu totiž můžeme sledovat, jestli daný princip v trhu stále funguje a porovnávat závěry s výsledky našeho obchodování.
Pojďme na to konkrétně. V intradenním obchodování nám profity zaručí dny, s vysokou volatilitou, které trendují od rána do večera. Tedy dny, které mají velký rozsah Open-Close. Konkrétní způsob zobchodování pak může mít různé nuance, ale pokud se cena během dne bude pohybovat jedním směrem a dostatečně daleko, pak bychom měli breakoutem vydělat.
A naopak. Pokud se cena trhu bude pohybovat do strany, v breakout strategii pravděpodobně ztratíme bez ohledu na to, na jaké úrovni budeme vstupovat.
Základní otázkou při stavbě intradenní strategie by tak mělo být: jak identifikovat dny s vyšší šancí na expanzi rozsahu abs(Open-Close)? Tedy nalezení základního principu vedoucího k vyšší volatilitě následující obchodní seance.
Podobné testy je lepší dělat jako obecnější datovou analýzu. Nezkoumat hned dopad konkrétních vstupů a stop-lossů, protože to může vést ke zbytečné přeoptimalizaci. Lepší je použít Excel nebo třeba Python.
Osobně používám Python a zde vám ukáži jak. Řada z vás se účastnila našich Python kurzů v TechLabu a měla by být schopna si přiložené testy sama spustit a navázat na ně. V každém případě jsem připraven problematiku rozpracovat např. do série videí, abyste v podobném prostředí mohli dělat testy všichni. Dejte mi prosím níže ve vláknu vědět, jestli je to pro vás zajímavé.
Princip se kterým pracuji.
Použiji nějaké historické období, např. 2015 – 2021 a vypočítám na jednom trhu (např. NQ) jaká je běžná pravděpodobnost většího denního rozpětí trhu. Větší rozpětí trhu můžeme definovat jako např. abs(Open-Close) > předchozí ATR(5). Tedy tělo úsečky (bez ohledu na směr) je vyšší než bylo ATR za předchozích pět úseček.
U NQ tato pravděpodobnost vychází na 10 %.
Mým cílem je pak najít nějaký obecný princip, který tuto pravděpodobnost zvýší.
Mohu zkusit otestovat například podmínku: ATR na předchozí úsečce je vyšší než ATR na úsečce, která je předchází (v níže přiloženém skriptu bych použil podmínku:
def testovana_podminka(dataframe):
return (dataframe['ATR'].shift(1) > 1*dataframe['ATR'].shift(2)).fillna(False)
Myšlenka je, že možná zvyšující se volatilita má vliv na budoucí volatilitu. Výsledek mého testu zobrazí skript:
Vyšší volatilita sice vede k vyšší volatilitě, ale jen nepatrně (12 % vs původních 10 %).
A takto postupně testuji různé principy. Skript načítá intradenní data, takže je možné testovat i dopad aktivity trhu v různých intradenních úsecích.
3. Když najdu něco smysluplného, začnu to rozvíjet dále do podobny obchodní strategie (používám workflow popsané v článku Mé workflow vývoje intradenních systémů).
Jak vypadá něco smysluplného.
Podívejte se například podmínku – dnešní Gap abs(Open – včerejší close) > včerejší ATR
def testovana_podminka(dataframe):
return (dataframe['Gap'] > 1*dataframe['ATR'].shift(1)).fillna(False)
Pokud je dnešní Gap vyšší než včerejší ATR tak se pravděpodobnost trendového dne zvyšuje z 10 % na 23%. To je zajímavé…
Podobné zajímavé závěry testuji na dalších trzích a období. Takto třeba vypadá stejná podmínka na trhu s ropou v období 2020 – 2024 (tedy úplně jiný trh v jiném období):
Opět vidíme dvojnásobou pravděpodobnost trendového dne v momentě, kdy máme v trhu gap.
A takto třeba vypadají pravděpodobnosti trhu YM v období 2020 – 2024:
Jinými slovy – ať data zkoumáme z kteréhokoliv úhlu, tak to vypadá, že pokud trh otevře větším gapem, existuje vyšší šance pro volatilnější směrový pohyb v trhu a tudíž dobrý kontext pro intradenní breakout systém.
Samozřejmě můžeme gap i dále zkoumat a třeba přijdeme na další nuance, které budou statistiky ještě zvyšovat.
A takto například vypadají pravděpodobnosti trendového pohybu, pokud v trhu YM není velký gap ( return (dataframe['Gap'] < 0.1*dataframe['ATR'].shift(1)).fillna(False) ...
Z tohoto pohledu je prakticky zbytečné pokoušet v takovém kontextu pravděpodobnosti pro breakout, protože trhy nabízí jen malou pravděpodobnost, že se rozjedou a breakout vydělá.
Schválně si zkuste podobnou statistiku sami. A pokud byste se skripty chtěli pracovat, ale nevíte jak na to, napište do tohoto vlákna a připravím výukovou sérii jak vše spustit a se skripty pracovat a analýzu rozvíjet dál.
Soubory ke stažení:
Archiv intradenních dat: financnik.cz/download/data/tradingroom-iddata.zip (futures kontrakty všech běžných akciových indexů v 5 minutovém rozlišení plus trhy jako ropa, zemní plyn, soya)
Jupyter notebook použitý k analýzám: emini-edge-finder.zip
Pro rekapitulaci: Jupyter notebook je kompletně bezplatné prostředí využívající Python. Je tedy potřeba mít nainstalovaný jak Jupyter, tak Python. Následně lze v prostředí webového prohlížeče provádět jakékoliv datové analýzy:
Akcie vyplácela dividendu 4,8 / share. To znamená, že její cena v grafu o dividendu klesne, ale o peníze nepřijdeme, protože jsme je získali v penězích jako dividendu.
Ticker LIAN v Microbreakoutu spadl z nějakých 5 USD na 0,35 USD. V TWS u něj vidím v Unrealized P&L celkem slušný mínus, ale na Net Liquidation Value se to v podstatě nijak neprojevilo. To je na stejné úrovni jako včera. Nemám ze včerejška žádný uzavřený obchod, který by tento propad kompenzoval. To prostě vypadá, že se tento GAP na LIAN nijak do NLV neprojevil. Uměl byste mi to někdo prosím vysvětlit?
Děkuji!
Zdravím,
spouštíte exe soubor nebo skript? Ve složce downloaderu by měl být logovací soubor, jaký je poslední záznam?
Pak také máte zřejmě v konfiguračním souboru chybně uvedenou cestu k databázi Amibrokeru, správnou cestu najdete v nastavení Amibrokeru
Bez této cesty se data stáhnou do zadané složky, ale už se nemají kam naimportovat.
Své dotazy pište prosím do bílého pole (jak máte vložené obrázky), šedá oblast slouží pro citaci příspěvku, na který odpovídáte a pokud dotaz napíšete tam, pak se nezobrazuje správně a není vidět otázky v odpovědi.
B.
Ad dodržení vstupy ceny - tam záleží na tom, kde se aktuálně trhy obchodují. Problém je v tom, že se příkazy provedenou hned. Tj. to hlavní na co je třeba se zaměřit je ten typ příkazu DAY.
Zkuste zadat příkaz ručně. Zvolte si jakýkoliv ticker, klikněte na ask cenu a otevřete si order:
Takto pak vidíte příkaz stejně? Tj. Time in Force má "DAY"?
Pokud i nyní po otevření trhů načtete dávku a podíváte se do jednotlivých signálů, tak je tam Time in Force ten ERROR nebo DAY?
P
Upozornění: Všechny informace poskytované na Financnik.cz jsou určeny výhradně ke studijním účelům témat týkajících se obchodování na burze a neslouží v žádném případě coby konkrétní investiční či obchodní doporučení. Provozovatel serveru ani jednotliví autoři nejsou registrovanými brokery či investičním poradcem ani makléřem. Jsou-li na stránkách zmiňovány konkrétní finanční produkty, komodity, akcie, forex či opce, vždy a pouze za účelem studia obchodování na burze. Vydavatel serveru není zodpovědný za konkrétní rozhodnutí jednotlivých uživatelů. Burzovní obchodování a investování s finančními instrumenty (a komoditami obzvláště) je vysoce rizikové. Rozhodnutí obchodovat komodity a akcie je odpovědností každého jednotlivce a jedině on sám nese za svá rozhodnutí plnou odpovědnost. Nikdy se nepouštějte do obchodů, jejichž podstatě plně nerozumíte. Pamatujte, že burza má svá pravidla, kterým je třeba porozumět, než začnu riskovat své vlastní peníze!