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.
Dobrý den, od nového roku se mi zase přestal načítat Benchmark v obchodním deníku, můžete někdo prosím pomoci?
Performance Metrics
Strategy Benchmark
------------------ ---------- -----------
Start Period 2024-09-02 2024-09-02
End Period 2026-01-08 2026-01-08
Risk-Free Rate 0.0% 0.0%
Time in Market 100.0% 0.0%
Cumulative Return 3.33% 0.0%
CAGR﹪ 2.45% 0.0%
Sharpe 0.27 nan
Sortino 0.38 nan
Sortino/√2 0.27 nan
Omega 1.07 1.07
Max Drawdown -17.81% nan%
Longest DD Days - -
Gain/Pain Ratio 0.07 nan
Gain/Pain (1M) 0.19 nan
Payoff Ratio nan nan
Profit Factor 1.07 nan
Common Sense Ratio 1.48 nan
CPC Index nan nan
Tail Ratio 1.37 nan
Outlier Win Ratio 2.98 inf
Outlier Loss Ratio 2.7 nan
MTD 0.78% 0.0%
3M 7.24% 0.0%
6M 6.81% 0.0%
YTD 0.78% 0.0%
1Y -5.3% 0.0%
3Y (ann.) 2.45% 0.0%
5Y (ann.) 2.45% 0.0%
10Y (ann.) 2.45% 0.0%
All-time (ann.) 2.45% 0.0%
Avg. Drawdown -2.59% nan%
Avg. Drawdown Days - -
Recovery Factor 0.19 nan
Ulcer Index 0.11 0.0
Serenity Index 0.01 nan
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\scipy\stats\_distn_infrastructure.py:2162: RuntimeWarning: invalid value encountered in multiply
lower_bound = _a * scale + loc
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\scipy\stats\_distn_infrastructure.py:2163: RuntimeWarning: invalid value encountered in multiply
upper_bound = _b * scale + loc
Performance Metrics
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\scipy\stats\_distn_infrastructure.py:2162: RuntimeWarning: invalid value encountered in multiply
lower_bound = _a * scale + loc
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\scipy\stats\_distn_infrastructure.py:2163: RuntimeWarning: invalid value encountered in multiply
upper_bound = _b * scale + loc
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\scipy\stats\_distn_infrastructure.py:2162: RuntimeWarning: invalid value encountered in multiply
lower_bound = _a * scale + loc
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\scipy\stats\_distn_infrastructure.py:2163: RuntimeWarning: invalid value encountered in multiply
upper_bound = _b * scale + loc
Strategy Benchmark
------------------------- ---------- -----------
Start Period 2024-09-02 2024-09-02
End Period 2026-01-08 2026-01-08
Risk-Free Rate 0.0% 0.0%
Time in Market 100.0% 0.0%
Cumulative Return 3.33% 0.0%
CAGR﹪ 2.45% 0.0%
Sharpe 0.27 nan
Smart Sharpe 0.26 nan
Sortino 0.38 nan
Smart Sortino 0.36 nan
Sortino/√2 0.27 nan
Smart Sortino/√2 0.26 nan
Omega 1.07 1.07
Max Drawdown -17.81% nan%
Longest DD Days - -
Volatility (ann.) 14.95% 0.0%
R^2 0.0 0.0
Calmar 0.14 nan
Skew -0.75 0.0
Kurtosis 26.85 0.0
Expected Daily % 0.01% 0.0%
Expected Monthly % 0.19% 0.0%
Expected Yearly % 1.1% 0.0%
Kelly Criterion nan% nan%
Risk of Ruin 0.0% 1.0%
Daily Value-at-Risk -1.53% nan%
Expected Shortfall (cVaR) -1.53% nan%
Gain/Pain Ratio 0.07 nan
Gain/Pain (1M) 0.19 nan
Payoff Ratio nan nan
Profit Factor 1.07 nan
Common Sense Ratio 1.48 nan
CPC Index nan nan
Tail Ratio 1.37 nan
Outlier Win Ratio 2.98 inf
Outlier Loss Ratio 2.7 nan
MTD 0.78% 0.0%
3M 7.24% 0.0%
6M 6.81% 0.0%
YTD 0.78% 0.0%
1Y -5.3% 0.0%
3Y (ann.) 2.45% 0.0%
5Y (ann.) 2.45% 0.0%
10Y (ann.) 2.45% 0.0%
All-time (ann.) 2.45% 0.0%
Best Day 6.1% 0.0%
Worst Day -7.81% 0.0%
Best Month 9.4% 0.0%
Worst Month -8.38% 0.0%
Best Year 7.3% 0.0%
Worst Year -4.44% 0.0%
Avg. Drawdown -2.59% nan%
Avg. Drawdown Days - -
Recovery Factor 0.19 nan
Ulcer Index 0.11 0.0
Serenity Index 0.01 nan
Avg. Up Month nan% nan%
Avg. Down Month nan% nan%
Win Days % 49.13% 0.0%
Win Month % 52.94% 0.0%
Win Quarter % 85.71% 0.0%
Win Year % 66.67% 0.0%
Beta 0.0 -
Alpha 0.0 -
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\scipy\stats\_distn_infrastructure.py:2162: RuntimeWarning: invalid value encountered in multiply
lower_bound = _a * scale + loc
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\scipy\stats\_distn_infrastructure.py:2163: RuntimeWarning: invalid value encountered in multiply
upper_bound = _b * scale + loc
C:\Users\todar\AppData\Local\Programs\Python\Python310\lib\site-packages\quantstats\stats.py:816: RuntimeWarning: invalid value encountered in double_scalars
beta = matrix[0, 1] / matrix[1, 1]
zdravím všechny, co se o něco snaží
S minulým rokem jsem celkem spokojený. Výsledná výkonnost za minulý rok (graf je k 9.1.)
Samozřejmě co do výkonu to není až tak oslnivé, ale je to do plusu, s použitím pětiny kapitálu účtu. Takto to zní pohádkově (x5 mohl být dobrý výdělek). Střízlivý pohled je ale takový, že jsem měl obavy z možných propadů a jedná se o výkonnost rotační strategie bez zajištění a bez filtrace kontextem. Krom výdělku bychom museli samozřejmě také násobit DD... Samotné realizaci obchodů jsem věnoval absolutní minimum času - vše automaticky. Pouze když jsem z nějakého důvodu nerealizoval obchody první den v měsíci, tak jsme musel nastavit strategii aby zobchodovala druhý den.
Věnoval jsem se zejména python skriptům (a trochu sql). Mé plány (sepsané výše před cca rokem) mě nakonec zavedly po trochu jiných úkolech. Obchodním deníkem to začalo. Většinu roku jsem pak strávil skriptováním střídavě factory_lab (testováním prvních nápadů a zjišťováním co vlastně od testování mám chtít) a rozvojem vlastního python backtesteru. Namísto rotačních strategií (které jsem původně chtěl rozvíjet) jsem se díky minikurzu na long strategii věnoval zejména maen reversion strategiím. Dále jsem si vylepšil zpracování a předávání dat pro backtester a factory_lab. Začal jsem hojně využívat ke skriptování AI.
Shrnuto, minimum úsilí k realizaci obchodů, a z mého pohledu určitě posun v oblasti vývoje a testování strategií.
Těším se na pokrok v dalším roce. Mé nejbližší plány jsou: nasadit brzy svou první strategii (long mean reversion), dále rozvíjet backtester, otestovat short variantu mean reversion.
přeji úspěšný rok
Dobrý den, potřeboval bych skutečně od začátku, nevím ani jak se spouští, co dělá.........vše dělám ručně.......mám pouze obchodní deník tomu rozumím.
Automatizaci bych chtěl, ale nevím jak začít, přístup mám ke všemu. Potřeboval bych úplný manuál od začátku. Nebo poskládat odkazy chronologicky za sebe .
Předem děkuji.
Takto to musí vypadat:
Ve sloupci OCA Group musí být vyplněné u toho prodeje číslo a současně musí být u prodeje ve sloupci key číslo s desetinou tečkou - to znamená, že tento příkaz se pošle do trhu až poté, co dojde k exekuci vstupu. Pokud tam ta vazba není, jde o samostatné příkazy a může dojít nejprve ke vstupu do shortu (což nechceme).
U basketů je potřeba po nahrání kontrolovat, že byla vytvořena OCO vazba (tj. že jsou vyplněná stejná čísla ve sloupci OCO). TWS to z nějakých důvodů občas v tom importu nepřijme a pomůže až reimport. Ideálně případný další import nascreenshotuje a mohu se na to podívat na konkrétním příkladu.
Obecně je zkušenost, že API (tedy obchodování skrz autotrader, funguje 100%). U obchodování přes baskety je potřeba věnovat OCO vazbě pozornost, protože ta se někdy naimportuje a někdy ne.
Zdravím Petře,
dnes jsem nahrál basket order startegie MRZ do IB a exekuce proběhla obráceně, nakoupila se short pozice tickeru MGM. Předpokládám, že mám někde špatné nastavení API a nákup a prodej se podmíněně nepropojily ale IB to bralo jako dvě samostané objednávky.. Můžete prosím poradit ?
díky Michal
9:30 je čas otevření burzy. Většinu roku to odpovídá 15:30 našeho času.
Skript je potřeba spustit až po otevření trhů (tedy po 15:30), protože si musí načíst otevírací ceny obchodovaných trhů.
Osobně jej spouštím v 15:31 - je to proto, že hned po otevření (například 15:30:10) proudí skrz IB hodně dat a už se mi stalo, že se otevírací cena nenačetla správně. Se spouštěním v 15:31 jsem neměl žádný problém.
Pochopitelně nikdo patrně nechce celý rok sedět u počítače a každý den na minutu přesně spouštět skript. Toto se dá posouvat hned několika způsoby - při obchodování například jen MES a MNQ systém obchoduje cca 1/3 obchodních dnů. Kdy to bude je vesměs patrné před otevřením trhu (když už v premarketu vidíme, jestli trhy otevřou gapem). Spouštět tedy cca skript 7x v měsíci ručně v daný čas už není tak nepředstavitelné.
Plus se samozřejmě spouštění dá zautomatizovat skrz různé nástroje pro časování - ale je potřeba chápat, že toto není kompletní autotrader, který by řešil vše špatné, co může nastat.
Já tak kombinuji v praxi obě zmíněné cesty - vím, který den bude skript obchodovat (protože se podívám na trhy v premarketu), nechám ho spustit časovač windows, ale pak zadané příkazy zkontroluji.
Dobrý večer, ještě bych se ráda zeptala ohledně spuštění skriptu - ve Vašem souboru je uvedeno session first bar 9,30 - to tedy, jak jsem pochopila, souvisí s časem otevření trhů, má ale toto nějaký zásadní vliv na to kdy zadám v počítači spuštění skriptu?
Musím tedy skript spustit až po 9.30, tedy po otevření trhů, aby v daný den fungoval? Nebo jej můžu spustit i před 9,30, tedy když ještě trh není otevřen?
Děkuji za trpělivost a Vaše rady, programování je pro mě novinkou...
Dobrý den, pokud to správně chápu, je potřeba tedy python skript každý den spustit ručně a je tudíž potřeba být každý den v daný čas u konkrétního PC pro spuštění skriptu? Poté už se tedy asi vše děje automaticky... děkuji.
ano, data mam pro vsechny ctyri ucty ( tri jsou asi poducty ).. ale priradilo mi to prikazy do uctu, ktery mam zadany pod trading_broker_account: "U173......", takze vse v poradku..
ja se loguji jen jednou a po prihlaseni mam v TWS ctyri ucty mezi kterymi se prepinam.. ale script mi obchody pro MBT, MES a MNQ priradil spravne do uctu, ktery jsem mel zadan v souboru bracket.yaml, asi staci ta identifikace pomoci - trading_broker_account: "U173......"
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!