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.
Díky, zajímavé, budu nějakou dobu muset přemýšlet, co vše z toho plyne, a asi mě to podnítí i k dalším vlastním testům. Na účtu obchodujícím ETF jsem mezitím dělení na 6 variant rozjel, uvidíme, jaké to v praxi bude v porovnání s tou jednou referenční (posouvání SL po dosažení profitu 0.6 ATR).
díky příspěvku @Unlimited ze dne 24.1.2021 a univerzální funkci v třídě Database mi příkaz sql realizuje co potřebuju
def query(self, sql, fetchall=False, fetchone=False, res2df=False):
velké díky za názorné vedení a kódy
Aktualizovaný přehled výkonnosti strategií dashboardu:
Na obchodním účtu se toho u mě moc nedělo, na Štědrý den jsem měl intradenní autotrader vypnutý.
Nehýbala se mi tak výrazně ani equity křivka intradenního breakoutu. Ta vypadá aktuálně:
(mé živé obchodování na IB, převážně skrz ETF, obchody zatím nemají trailing stop-loss).
Několik hezkých profitů ale mělo futures portfolio na Darwinex zero (kde oproti IB obchoduji například i ropu). Zde je za prosinec zatím zhodnocení +2,13 %:
Živé obchodování intradenního breakout portfolia má od spuštění sharpe přes 1. Na IB účtu mám sharpe 1,24, na Darwinex zero sharpe 1,13.
To jsou solidní výsledky, hodně korespondující s backtestem.
Výborné je, že tyto výsledky portfolio dosahuje i po započtení všech reálných skluzů a poplatků. Na sharpe ratio nad 1 se dá již slušně stavět. Je navíc zřejmé, že kapitál v intradenním portfoliu není nějak intenzivně využíván a na účtu je prostor strategii kombinovat s dalšími.
S odstupem vnímám, že intradenní breakout portfolio je skutečně velmi dobrým startovacím programem pro vstup do systematického tradingu.
1) V Trading Room je připraveno vše proto, abyste mohli spustit hotový systém na Darwinex zero a učit se z trhů - získávat představu o volatilitě, korelacích, pilovat automatizaci (VPS, spuštění skriptů) bez jakéhokoliv rizika ztráty. Jen praxí člověk získá podněty k tomu aby strategiím důvěřoval a byl je schopen posouvat dál.
2) Získání praxe skrz 1) představuje dobrý základ i pro live trading. V tuto chvíli u TradeStation, příští rok by mělo být možné využívat intradenní autotrader pro Interactive Broker. U IB pak půjde s dostupnými nástroji kombinovat intradenní portfolio se swingovými systémy a defacto dělat to, co dělám sám ve svém alternativním systematickém fondu.
Pokud jste s praxí s intradenním breakout portfolem ještě praxi nezačali - jsou zde nějaké oblasti, ve kterých byste potřebovali nasměřovat?
prošel jsem si podrobně toto vlákno, a jsem další v řadě, který musí poděkovat aktivním účastníkům a tvůrcům obchodního deníku!
prokousávám se skripty a s ohledem na zamýšlené úpravy začínám s sql
povedlo se mi dát dohromady funkční "řádek" který funguje v DB Browser sql, ale nedaří se mi ho rozchodit jako součást python skriptu , konkrétně moje představa byla samostatná funkce v třídě fills ( ale pokud je to účelné jinde ... klidně)
jedná se o formulku, která na základě hodnot vybraných sloupců ( např. ticker a quantity) a bez ztráty hodnot dalších sloupců vyfiltruje duplicitní (nebo i vícenásobné) řádky v sql databázi (konkrétně open_positions) a ponechá jen jeden ( a prosím neptejte se, jak jsem ty duplicity dokázal vytvořit - nevím)
formulka sql je :
DELETE
FROM open_positions
WHERE ID NOT IN
(
SELECT min(ID) AS MinRecordID
FROM open_positions
GROUP BY ticker,
quantity
)
nevěděl byste někdo poradit jak dát dohromady funkci ideálně v rámci třídy ( zřejmě ve třídě fills ?)
děkuji
Test současného obchodování různých variant intradenního breakout portfolia
V níže uvedeném testu jsme porovnávali:
1) Obchodování jedné varianty portfolia - stop-loss 0.4*ATR, trailovaný poté, co trh dosáhne profitu 0.6*ATR. Long i short obchod během jednoho dne. Risk 0.5% na obchod.
2) Současné obchodování tří variant portfolia, kdy bychom na obchod riskovali 0,17% účtu. Jde o varianty:
varianta 1 (šedá linka): stejný systém jako 1), jen s riskem 0,17% na obchod.
varianta 2 (červená linka): stop-loss 0,4*ATR, trailovaný okamžitě. Risk 0,17% na obchod
varianta 3 (modrá linka): jen základní stop-loss 0,4*ATR (neposouvaný), Risk 0,17% na obchod.
Testuje se stále stejné micro futures portfolio: "MES", "MNQ", "M2K","MGC","MYM","MBT"
Aby nedocházelo ke zkreslení kvůli možnému nedostatku kapitálu na jednotlivé obchody, probíhal test s kapitálem 150 000 dolarů.
Takto vypadá srovnání jednotlivých backtestu (varianta 1, 2 a 3):
Zde je vidět, že opožděné trailování a obchodování bez trailování přináší v důsledku hodně podobné výsledky. Varianta 1 (opožděný posouvaný stop-loss) ale má vesměs nižší drawdowny - toto je varianta, se kterou nyní obchoduji na Darwinex Zero.
Varianta 3 (stop-loss je neustále trailován ve vzdálenosti 0,4*ATR) vydělává dlouhodobě podstatně méně.
To co jsme hlavně testovali bylo, jestli spojení třech variant neposkytne vyhlazenější equity než obchodování jedné varianty.
Zde je srovnání v číslech (oba testy jsou bez reinvestování, aby šlo varianty porovnat):
a výsledky ukazují, že podobné kombo by v praxi žádnou diverzifikaci nepřineslo.
Výsledky jsou si příliš podobné a dělením na části jen výkonnost ztrácíme. Hlavně díky zaokrouhlováním potřebného kapitálu na pozici.
Zde jsou pro zajímavost korelace:
MGC_L3 znamená long obchody v micro zlatě ve variantě 3 (neposouvaný SL), MNQ_S1 short obchody v micro Nasdaqu varianta 1 atd.
Druhý test jsem vytvořil ze tří variant, které měly jiné vstupní úrovně a jiné stop-lossy
varianta 1 (šedá linka): breakout úroveň 0.3* ATR, stop-loss 0.4*ATR, trailovaný poté, co trh dosáhne profitu 0.6*ATR. Long i short obchod během jednoho dne.
varianta 2 (červená linka): breakout úroveň 0.3* ATR, stop-loss 0.5*ATR, trailovaný poté, co trh dosáhne profitu 0.6*ATR. Long i short obchod během jednoho dne.
varianta 3 (modrá linka): breakout úroveň 0.5* ATR, stop-loss 0.3*ATR, trailovaný poté, co trh dosáhne profitu 0.6*ATR. Long i short obchod během jednoho dne.
Grafické porovnání variant:
porovnání kombinace strategií se samotnou variantou 1:
Závěr:
Nezdá se, že by obchodování více variant vedlo k viditelně lepším výsledkům. Je sice možné, že "varianta 1" může být přeoptimalizovaná a kombinace variant by byla v důsledku robustnější. V konečném důsledku se mi ale nezdá, že by rozdělení portfolia do menších dílků stálo za úsilí, které by bylo k jeho obchodování vedlo.
Ať vám rok 2025 přinese preciznost v optimalizaci vašich algoritmů, stabilitu v náročných tržních podmínkách a klid, který pramení z důvěry ve váš systematický přístup. Nechť vaše strategie běží hladce jako dobře naladěný stroj, ať jsou vaše modely odolné vůči nepředvídatelným změnám a vaše výsledky odrazem promyšlené přípravy.
Šťastný a úspěšný rok 2025!
A na co se můžete v Techlabu těšit v roce 2025? Například:
Dva nové minikurzy, první zaměřený na pokročilejší datovou analýzu a druhý na portfolio analýzu výsledků backtestů získaných z Tradestation.
Nové vlákno "Automatizace jednoduše a přehledně", které má za cíl zjednodušení dílčích postupů automatizace spojením publikovaných návodů do logických celků.
Nové tutoriály, které tentokrát budou zaměřené na procvičení vývoje a vyhodnocení obchodních systémů.
Neměl jste například už vypnutý MetaTrader? Nastalo to, že autotrader zavolal do metatraderu funkci pro získání pozic:
positions = mt5.positions_get()
a místo 0 se vrátilo "nic".
Datový typ určitě ošetříme, tj. aby to v případě "nic" nespadlo, nicméně toto by se stávat nemělo a mě se to nikdy nestalo. Znamená to, že metatrader z nějakého důvodu už neodpovídal na API dotazy.
Zkontroloval bych, jestli MetaTrader neukončujete nějakým způsobem dříve než doběhne skript autotraderu.
Asi to není žádný velký problém, ale podle mě máte špatně funkci find_closest_symbol. Pokud bude v listopadu na výběr prosinec a leden, vybere jako nejbližší měsíc leden, což není pravda. Řešení viz chat gpt pod heslem "Find closest month. Wrapping around the year."
Aha, tak možná jsem na to hleděl moc naivně. Představoval jsem si, že z testu každé varianty posouvání SL dostanete (mimo jiné) sérii obchodů (s těmi několika různými tickery). Nešly by tyto série potom převést každá do jednoho .csv souboru, a ty potom prohnat Analyzátorem tady v Trading Room? Kde každá by měla váhu 1/6 portfolia.
Ve starém dashboardu jsou signály MR3000 short filtrovány - neobchoduji přes earnings, neobchoduji akcie které není možné shortovat a ty, které mají příliš vysoké short fee. Cílem bylo, aby obchody byly méně volatililní.
Signály, které jsou ve starém dashboardu zadává sám do IB. Ovšem průběžně jsem trochu upravoval alokace a v rámci celého portfolia i řízení obchodu (popisoval jsem to dříve - začal pracovat s profit targety).
Aby bylo porovnání odpovídající a porovnatelné např. s vašimi statistikami, vzal jsem tak své filly z IB pro MR3000S (ty odpovídají starému dashboardu) a PnL vypočítal na základě historických cen (výstup pokud je close nižší než předcházející close, nebo výstup druhý den. Výstup vždy MOC). A tady jsou hotové výsledky:
Červená linka představuje živé obchodování MR3000S (tedy ze starého dashboardu, vstupy na základě mých skutečných plnění v IB), šedá linka výkonnost průběžného backtestu z nového dashboardu.
Zde vyjádřeno číselně:
V principu je vidět, že filtrování odvádí svou práci. V živém obchodování jsem měl nižší volatilitu i drawdown. Ale samozřejmě i výnnosy jsou nižší (u nefiltrovaných obchodů je nicméně třeba brát v potaz, že ne všechny obchody v dasboardu jsou reálně shortovatelné.
Každopádně pokud byste obchodoval podle starého dashboardu, alokoval strategii 15000, každé pozici přiřadil 10% kapitálu (tedy otevíral obchod s alokací 1500 dolarů na short), pak byste měl mít velmi podobné zhodnocení - cca +13,7% za 2024. Průměrné využití kapitálu bylo cca 15%.
Zde je pak srovnání výkonnosti od startu Trading Room. Jsou to výsledky bez reinvestování:
Sharpe ratio v live tradingu 0.98, simulované (včetně neshortovatelných titulů) 1.2
Při filtrování akcí s vysokým shorting fee a vynechání signálů přes earings vydělala strategie ročně průměrně 10,8% (při průměrné využití kapitálu cca 19,2%), průběžný hypotetický backtest je na hodnotě 21,68% (kde ale ne všechny signály jsou reálně shortovatelné). Předpokládám, že pokud by se shorty nefiltrovaly na earings a short fee, mohlo by by zhodnocení být někde mezi na cca 15% ročně, ale zase s vyšším riskem.
Zdravím Petře,
mohl by jste prosím porovnat výkonnost MR3000 Short variant ze starého a nového dasboardu za rok 2024 ? Zajímal by mě rozdíl v profitu / drawdownu.
díky moc
Michal
Podobný test určitě dává smysl, ale jednoduché to nebude. Jde defacto o test portolia portfolií.
Aktuálně toto otestovat se stávajícími skripty nemohu, ale podívám se na to, jak takový test vytvořit.
Petr
Dobrý den, moc děkuji za zajímavé testy. Bylo by možné zveřejnit i úpravu kódu pro Tradestation, pomocí které jste testoval aktivaci posouvaného SL (pokud jsou tedy testy z TS)?
Petře, díky, analýza různých způsobení nastavení trailing stop je opět velmi přinosná.
Když už máte tyhle testy hotové, dokázal byste bez velkého množství další práce vyjádřit, jaké by bylo Sharpe ratio, případně i Max DD a NetProfit takového "portfolia" systémů, kde bychom zamýšlený risk na obchod rovnoměrně rozdělili mezi všech 6 způsobů posouvání stop lossu? Berme v úvahu jen ty varianty, které připouští long i short vstupy v jeden den.
Tedy namísto toho, abychom udělali vždy jeden obchod s riskem řekněme 0,6 % účtu, a např. posouváním SL o velikosti 0,4 ATR od chvíle, kdy se dosáhne zisku 0,6 ATR bychom dělali toto:
0,1% účtu bychom riskovali v obchodu, který by SL neposouval vůbec. Další 0,1% v obchodu, kde SL o velikosti 0,4 ATR začínáme posouvat hned. Další 0,1% v obchodu, kde se SL o velikosti 0,4 ATR začíná posouvat po dosažení zisku 0,4 ATR. A tak dále, podle tabulky ve Vaší analýze.
Přineslo by to významé zlepšení Sharpe ratio? Nebo co případně kombinace pouze dvou: SL 0,4 ATR, který se začíná posouvat ihned, a SL 0,4 ATR, jehož posouvání začíná na zisku 0,6 ATR?
Praktická aplikace by při obchodování futures nebo opcí přinesla problém s dělením počtu kontraktů mezi subsystémy... risk 0,6% účtu může odpovídat všelijakému počtu kontraktů, a jak je pak rozdělit mezi subsystémy, že. Často bychom nezanedbatelnou část z těch 0,6% nechali "ležet ladem," kvůli zaokrouhlování počtu kontraktů dolů. Nebo by bylo nutné celkový počet kontraktů mezi subsystémy předem rozdělit nějak ručně. ATR známe už od close předchozího dne.
Ale při obchodování ETF nebo CFD s jemným škálováním pozic problém není.
Ahojte traderi, k otázke hľadania edgu by som sa rád opýtal má niekto skúsenosti s SSRN (Social Science Research Network) a teda hľadania tam štúdii alebo projektov rôznych stratégii. Viem že Petr sa na túto stránku pár krát odvolával, tiež som sa tam trochu prehrabal a našiel som celkom zaujímavu štúdiu na Intraday momentum strategiu na S&P500 ETF ktorá dosť používa vwap a upravuje pozície na základe volatility tu je link: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4824172. Ďalšia bola svojim spôsobom breakout stratégia ktorá používala vwap a obchodovala QQQ. Taktiež si myslím že má cenu to pozrieť. Tu je link: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4631351. A teda moja otázka na vás všetkých, môžem túto stránku brať ako čiastočnú inšpiráciu pri vytváraní strategií ? Čo si myslíte o týchto dvoch stratégiach vyššie ? Je vwap taký dobrý pomocník ? Mal by sa viac používať ?
Ďakujem za odpovede a prajem vám všetkým pekné sviatky. 🙂
Do akciových trhů se nám po zasedání FEDu vrátila volatilita a zejména ve středu si trhy užily pěkný pokles.
Aktualizované výsledky strategií dashboardu:
Pěkné zisky byly poslední týden zejména v shortech. Osobně mi MR3000S také vydělávala, ale úplně nejziskovější obchody jsem na účtu neměl díky například filtrům na short fee (shortuji jen akcie, které mají short fee do cca 15).
Prodělával mi zejména MicroBreakout.
Celkově jsem za prosinec zatím na svém účtu v lehkém zisku.
Breakout porftolio mělo jen drobné obchody, hlavní propad byl v den FEDu, kdy systémy stejně neobchoduji (a ani nebyl signál).
Aktuální equity křivka mých živých obchodů z IB:
Ještě lépe se mi dařilo s portfoliem v Darwinex zero, kde systém chytl pěkný short v ropě:
Na samostatné účtu pro opční breakout je nyní equity na hodnotě cca 20% zhodnocení a výrazně převyšuje benchmark (SP500):
(část profitů je zde i díky posilování dolaru). Ale celkově vypadá equity slušně.
Zdravím Petře,
díky za analýzu. Ještě mě napadlo jestli jste nezkoušel testovat variantu, kde je fixní stop loss 0.4 * ATR, co se trh dostane do profitu 0.6 * ATR tak trailing SL a bez PT, ale s tím, že bychom neuzavírali pozici na konci dne. A nechali trh jet přes noc dokud nenarazí na trailing SL? Asi se pak může stát, že trh gapne a budeme mít vyšší ztrátu .... ale celkem by mě zajímali výsledky.
Díky. Tomáš.
Server od roku 2003 vydává
Centrum finančního vzdělávání, s.r.o. info@financnik.cz
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!