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.
Sortino a sharpe jsou si velmi podobné. Rozdíl je v tom, že sortino měří jen zápornou volatilitu (ztráty), sharpe měří celkovou volatilitu. Sám jsem zvyklý na sharpe, ale dokáži si představit, že někdo jiný bude vše posuzovat podle sortino.
Zdravím Petře, mám jen takový obecný dotaz. V kurzu Workshop profitabilního obchodování od A do Z jste ve výukových videích ukazoval co sledujete u svého portfolia. Myslím tím win rate, denní drowdown v %, celkový drowdown v %, zisk v %, sharpe ratio atp. A já při různém studiu o tradingu jsem narazil na tzv. Sortino ratio a jen mě zajímá jestli člověk vašich zkušeností sleduje a zohledňuje i toto nebo ne a proč. Děkuji
Ano, exekuce jsou klíčové. A myslím, že v tomto nám právě aktuální situace s AI nahrává, protože si lze stavět exekuce podle vlastních potřeb a které nejsou v běžných retailových řešení třeba vůbec dostupné (zejména u opcí). Já tuto strategii exekuuji výhradně limitem - a to i na stopu. Na stopu tedy limit posouvám.
Co se srovnání týče - určitě záleží jak to backtestujete. Já i stop backtestuji jako limit. Na druhou stranu nbbo data mám jen za poslední rok, takže delší backtesty jsem dělal na vteřinových close datech (s tím, že jsem tam "kalibroval" určitý skluz, který jsem odhadoval s porovnáním s nbbo daty). Celkově mi vychází srovnání live vs. backtest příznivě. Hlavně u stopu jsem byl překvapený, jak dobře funguje a sedí s backtesty.
Sám jsem tuto strategii bral hlavně jako ověření konceptu. Podle mě je to dlouhodobě profitabilně udržitelné, nicméně sám také dál toto rozvíjím do podoby, kde bude průměrný obchod vyšší.
Věřím že to už bude ok. Já mám své autotradery postavené dost na principu, že co není dovoleno je zakázáno, takže když se objeví něco specifického a nového, raději se zastaví. To negativní id obchodu ho zmátlo, stím jsem nepočítal..
Zkoušel jsem otestovat jestli se tam objeví ty hlášky ohledně té FX pozice hned při spuštění a vypadá to, že ok ... moc díky za update.
2026-11-11 07:07:28,617 - INFO - Logging initialized: version=2.13 level=INFO debug=False
2026-11-11 07:07:28,645 - INFO - Trade log trade_log.csv loaded: 15 rows.
2026-11-11 07:07:28,646 - WARNING - Telegram configured incompletely; running without it.
2026-11-11 07:07:28,647 - INFO - Heartbeat disabled (healthchecks_url not set).
2026-11-11 07:07:29,792 - INFO - IB trade connection up (port=xx clientId=68574, generation 1).
2026-11-11 07:07:30,511 - INFO - IB data connection up (port=xx clientId=68575).
2026-11-11 07:07:30,687 - INFO - Daily limiter rebuilt for 2026-11-11: sequences=[] premium_base=0.00 (log=0.00 ib=0.00 tracker=0.00) close_only=False
2026-11-11 07:07:30,690 - INFO - ==== 0DTE bot startup summary ====
2026-11-11 07:07:30,690 - INFO - markets: ['QQQ']
2026-11-11 07:07:30,691 - INFO - risk: mode=fixed_usd fixed_usd=2000 percent=0.01
2026-11-11 07:07:30,691 - INFO - strike: rule=OTM1 window_pct=1.0 min_distance_usd=0.00 (from the trigger)
2026-11-11 07:07:30,692 - INFO - times NY: warmup=9:28 start=9:31 last_order=14:00 end=15:58
2026-11-11 07:07:30,692 - INFO - entry: confirmation=bar_close_1m price_source=bid level_comparison=strict max_attempts=0 quote_max_age_s=30 max_spread_pct=0
2026-11-11 07:07:30,693 - INFO - close: ladder=[('ask', 10), ('mid', 10), ('mid', 10), ('bid', 10), ('bid', 10), ('bid_minus_pct', 1, 15)] chase_pct=10 expire_recheck_every_s=30 (no market orders - final = last ladder pct; chase limit re-pegged every 10 s, paused while the order shows no progress at IB)
2026-11-11 07:07:30,693 - INFO - settle: trade residuals on the bot's own conIds until 16:13 NY, keep watching + alerting until 16:16; a residual (short or long) is closed with the SAME close ladder + chase (no market orders); cover_shorts=True
2026-11-11 07:07:30,693 - INFO - safety: max_trades_per_day=100 max_contracts_per_trade=200 check_available_funds=True state_file=state/fired_signals.json
2026-11-11 07:07:30,693 - INFO - broker: host=127.0.0.1 trade_port=xxx/clientId=68574 data_port=xxx/clientId=68575 account=U1*****11
2026-11-11 07:07:30,694 - INFO - telegram: enabled=False
2026-11-11 07:07:30,695 - INFO - healthchecks: enabled=False (ping every 300 s)
2026-11-11 07:07:30,695 - INFO - ==== End of startup summary ====
2026-11-11 07:07:31,605 - INFO - FX CZK->USD = 0.045817 (fetched fresh for 2026-11-11).
2026-11-11 07:07:31,606 - INFO - account reads primed: NetLiq=4XXX CZK AvailFunds=xx0.81 fx_cached=True
2026-11-11 07:07:31,609 - INFO - Waiting for premarket warmup (09:28:00 NY)...
Aktualizovali jsme verzi bota na 2.13
Update řeší problémy, které má se spuštěním @flyboy - tedy že konverze vygenerovala negativní ID. Nově bot ignoruje záporné id obchodu pokud to není s jeho orderref a současně ignoruje informace z ostatních účtů (pokud jich je v rámci TWS několik).
Update je trochu větší - sám budu testovat následující dny na paper účtu. Nepředpokládám ale, že by se měla předchozí funkcionalita jakkoliv pokazit.
Zrovna jsem to měl rozepsané, jelikož v tom teď ležím a snažím se na to přijít. Ano botovi se nelíbí FX obchod směny korun na dolary viz screen s jeho permId.
Navíc tato transakce proběhla na jiném účtu než má bot obchodovat opce. Tak je otázka jestli je to takto správně? Že se bot kouká do všech účtů u IB?
T.
Teď už je v logu vidět, na čem se to seká - je to to negativní permId -999726117 u té forexové exekuce. Toto jsme tedy opravovali v 2.12, ale ještě je to v kódu na jednom místě. V průběhu večera publikujeme opravu a zítra už by to mělo fungovat.
Zdravím,
omlouvám se, odkaz měl omylem předvolenou Latest verzi.
Osobně používám raději odladěnou Stable verzi, pro případnou reinstalaci přepněte odkaz na Stable v menu a nainstalujte TWS případně ještě jednou. Starou verzi stačí odinstalovat a nahradit novou.
B
Tak jsem aktualizoval verzi na 2.12 a bohužel pořád to stejné ... zasílám výpis z logu. Vidím tam, že je problém s nějakou otevřenou pozicí a připojení s IB, ale vůbec nechápu čím to může být. TWS mám klasicky spuštěné pořád stejně. V logu je zmíněná nějaká otevřená pozice, ale nedokážu identifikovat co to může být.
Je tam zmíněná forexová pozice USD.CZK, což nevím kde by mohla viset.
Má někdo nějakou radu?
T.
2026-11-10 15:27:23,806 - INFO - Logging initialized: version=2.12 level=INFO debug=False
2026-11-10 15:27:23,920 - INFO - Trade log trade_log.csv loaded: 15 rows.
2026-11-10 15:27:23,923 - WARNING - Telegram configured incompletely; running without it.
2026-11-10 15:27:23,924 - INFO - Heartbeat disabled (healthchecks_url not set).
2026-11-10 15:27:24,613 - WARNING - evidence: ignored an execution that is not the bot's, with an unreadable identity field (execId 0000d5db.6f3463fe.01.01 2026-11-05 19:33:26+00:00 CASH USD USD.CZK BOT 0.5 orderRef '' account U2*****74 clientId 0 orderId 0 permId -999726117)
2026-11-10 15:27:24,627 - INFO - IB trade connection up (port=7xx clientId=68574, generation 1).
2026-11-10 15:27:24,856 - INFO - IB data connection up (port=7xx clientId=68575).
2026-11-10 15:27:24,906 - WARNING - IB evidence unavailable: malformed execution record (permId missing): execId 0000d5db.6f3463fe.01.01 2026-11-05 19:33:26+00:00 CASH USD USD.CZK BOT 0.5 orderRef '' account U2*****74 clientId 0 orderId 0 permId -999726117
2026-11-10 15:27:24,907 - CRITICAL - CLOSE-ONLY MODE for the rest of the day: startup evidence unavailable: IB evidence read failed. Entries are disabled; closing, /stop and alerts keep running.
2026-11-10 15:27:24,908 - CRITICAL - Startup: IB evidence UNAVAILABLE (IB evidence read failed) - close-only, the post-close watch will not trade, known quantities preserved. MANUAL ATTENTION.
2026-11-10 15:27:24,917 - WARNING - Close-only already active (startup evidence unavailable: IB evidence read failed); also: IB evidence (executions/open orders) unavailable
2026-11-10 15:27:24,918 - INFO - Daily limiter rebuilt for 2026-11-10: sequences=[] premium_base=0.00 (log=0.00 ib=0.00 tracker=0.00) close_only=True
2026-11-10 15:27:24,918 - INFO - ==== 0DTE bot startup summary ====
2026-11-10 15:27:24,920 - INFO - markets: ['QQQ']
2026-11-10 15:27:24,920 - INFO - risk: mode=fixed_usd fixed_usd=2000 percent=0.01
2026-11-10 15:27:24,921 - INFO - strike: rule=OTM1 window_pct=1.0 min_distance_usd=0.00 (from the trigger)
2026-11-10 15:27:24,921 - INFO - times NY: warmup=9:28 start=9:31 last_order=14:00 end=15:58
2026-11-10 15:27:24,921 - INFO - entry: confirmation=bar_close_1m price_source=bid level_comparison=strict max_attempts=0 quote_max_age_s=30 max_spread_pct=0
2026-11-10 15:27:24,922 - INFO - close: ladder=[('ask', 10), ('mid', 10), ('mid', 10), ('bid', 10), ('bid', 10), ('bid_minus_pct', 1, 15)] chase_pct=10 expire_recheck_every_s=30 (no market orders - final = last ladder pct; chase limit re-pegged every 10 s, paused while the order shows no progress at IB)
2026-11-10 15:27:24,923 - INFO - settle: trade residuals on the bot's own conIds until 16:13 NY, keep watching + alerting until 16:16; a residual (short or long) is closed with the SAME close ladder + chase (no market orders); cover_shorts=True
2026-11-10 15:27:24,924 - INFO - safety: max_trades_per_day=100 max_contracts_per_trade=200 check_available_funds=True state_file=state/fired_signals.json
2026-11-10 15:27:24,925 - INFO - broker: host=127.0.0.1 trade_port=xxx/clientId=68574 data_port=xxx/clientId=68575 account=U1*****11
2026-11-10 15:27:24,929 - INFO - telegram: enabled=False
2026-11-10 15:27:24,929 - INFO - healthchecks: enabled=False (ping every 300 s)
2026-11-10 15:27:24,931 - INFO - ==== End of startup summary ====
2026-11-10 15:27:25,587 - INFO - FX CZK->USD = 0.045967 (fetched fresh for 2026-11-10).
2026-11-10 15:27:25,590 - INFO - account reads primed: NetLiq= CZK AvailFunds=fx_cached=True
2026-11-10 15:27:25,591 - INFO - Waiting for premarket warmup (09:28:00 NY)...
2026-11-10 15:28:00,857 - INFO - Waiting for trading start (09:31:00 NY)...
2026-11-10 15:31:03,320 - INFO - QQQ: today's open = 672.59
2026-11-10 15:31:03,331 - INFO - Evaluating individual sub-conditions:
2026-11-10 15:31:03,341 - INFO - abs(Open - CloseD1) > abs(OpenD1 - CloseD1) => False
2026-11-10 15:31:03,342 - INFO - Open > CloseD1 => False
2026-11-10 15:31:03,342 - INFO - Open > 0 => True
2026-11-10 15:31:03,343 - INFO - Complete context condition: 'abs(Open - CloseD1) > abs(OpenD1 - CloseD1) and Open > CloseD1 and Open > 0' => False
2026-11-10 15:31:03,343 - INFO - **** QQQ: context negative - not trading today.
2026-11-10 15:31:03,344 - CRITICAL - CLOSE-ONLY mode ACTIVE (startup evidence unavailable: IB evidence read failed) - no new entries today; closing, /stop and alerts keep running.
Měl jsem to samé – stačí v menu „Add Account“ vybrat paper a odeslat žádost. Myslím, že IBKR obvykle vytvoří účet rychle, ale záleží na různých faktorech. Pokud nechcete hned přispívat peníze, můžete využít jejich Free‑Trial, který je zdarma a neomezený.
Poslal jsem vám e-mail - update co jsem dával včera by to měl vyřešit. Podle všeho si bot nerozumí s nějakým jiným obchodem, který máte v historii. Nově se bot stará jen o obchody se svým orderref.
Posílal jsem vám log do mailu ... dneska mi bohužel bot kvůli výše zmíněné chybě neotevřel pozice. Chci říct, že TWS normálně spuštěné mám a bot také. Zkoušel jsem ho restartovat, ale nepomohlo .... tak nevím.
Dobrý den,
aktuální offline verze TWS najdete na stránce https://www.interactivebrokers.com/en/trading/download-tws.php?p=offline-latest
Já jsem původní verzi nejdříve odinstaloval a pak spustil instalátor nové.
B.
Aktualizovali jsme 0DTE opční autotrader na verzi 2.12.
Úpravy od poslední verze:
- v konfiguraci je možnost zadat healthchecks_url pro ping URL kontroly běhu skriptu na healthchecks.io. Pokud skript spadne v průběhu dne, tak můžeme dostat info o tom, že bot neběží (dá se nastavit posílání avíz mnoha různými kanály). Klíčové hlavně v momentech, kdy bot drží ziskovou ITM opci, kterou musí na konci dne zavřít. Pokud je bot spadlý, pak dojde k jejímu uplatnění (což nechceme).
- při startu nyní bot ignoruje exekuce, které nemají jeho orderRef. Odpadá tak možnost, aby bot nenastartoval, kvůli tomu, že některá exekuce v histori TWS má záporné nebo nulové ID.
Připravili jsme on-line backtester používající reálné opční ceny pro simulaci různých nastavení, které nyní bot umožňuje:
https://0dte-backtester.financnik.cz/
Dá se backtestovat ITM/OTM opce
Zapínat i vypínat kontextový filtr - při vypnutém kontextovém filtru tedy breakout obchoduje každý den a je zajímavé, že to nevychází tak špatně, jak bych čekal. Kontextový filtr představuje nastavení breakout strategie tak, jak si ji zde sdílíme.
Lze simulovat profit targety, různém nastavení ATR a breakout úrovní.
Plus se dá nastavit různý rozpočet na obchod a pak sledovat, kolik obchodů bude přeskočeno kvůli tomu, že budou opce příliš drahé.
Aktualizovaná výkonnost strategií dashboardu k 8.11.2026:
Čtvrtek přinesl jeden z nejvýraznějších poklesů technologických titulů, což se na mém účtu promítlo zejména do SMO NDX plus long mean reversion strategií.
Vývoj mého živého účtu u IBKR:
Největší ztráty mám aktuálně z rotačních strategií, kde probíhají různé sektorové rotace, které strategie zachytí až se zpožděním - v NDX jsem tak hodně long v AI/povodičních v TSX zase v titulech spojených s energiemi.
Dobrý den, Petře,
díky za sobotní prezentaci. Zkusil jsem si strategii STROP0DTE (bear call vertikál w25, close ≤ MA20 − 2×ATR5) přetestovat v Option Omega na datech SPX a vyšlo to velmi podobně jako na slidu: 3 409 obchodů, průměr cca 34 USD na obchod bez skluzu, PF 1,30. Hrana na obchod je ale tenká a už skluz 0,05 na vstupu a 0,10 na stopu ji sníží zhruba o čtvrtinu, takže podle mě rozhoduje hlavně exekuce. Chtěl bych se proto zeptat:
Jak bot zadává vstup – limit na střed spreadu s posouváním? Jaký krok a jak dlouho čeká?
Jak exekuuje stop – market, nebo limit s posouváním?
Jaký vám vychází v živém obchodování průměrný skluz proti středu na vstupu a na stopu?
Psal jste, že živé výsledky na desítkách obchodů sedí s backtestem přesně – platí to i pro průměr na obchod včetně stopů?
Díky, Ondřej
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!